File tree Expand file tree Collapse file tree 2 files changed +13
-13
lines changed Expand file tree Collapse file tree 2 files changed +13
-13
lines changed Original file line number Diff line number Diff line change 339
339
:args (x1 y1 zs1)
340
340
:conclusion (= (not (and x1 y1 zs1)) (or (not x1) (not ($singleton_elim (and y1 zs1)))))
341
341
)
342
- (declare-rule bool-or-and-distrib ((y1 Bool) (y2 Bool) (y3 Bool :list) (zs1 Bool :list))
343
- :args (y1 y2 y3 zs1)
344
- :conclusion (= ($singleton_elim (or (and y1 y2 y3 ) zs1)) (and ($singleton_elim (or y1 zs1)) ($singleton_elim (or ($singleton_elim (and y2 y3 )) zs1))))
342
+ (declare-rule bool-or-and-distrib ((y1 Bool) (y2 Bool) (ys1 Bool :list) (zs1 Bool :list))
343
+ :args (y1 y2 ys1 zs1)
344
+ :conclusion (= ($singleton_elim (or (and y1 y2 ys1 ) zs1)) (and ($singleton_elim (or y1 zs1)) ($singleton_elim (or ($singleton_elim (and y2 ys1 )) zs1))))
345
345
)
346
- (declare-rule bool-implies-or-distrib ((y1 Bool) (y2 Bool) (y3 Bool :list) (zs1 Bool))
347
- :args (y1 y2 y3 zs1 )
348
- :conclusion (= (=> (or y1 y2 y3) zs1 ) (and (=> y1 zs1 ) (=> ($singleton_elim (or y2 y3 )) zs1 )))
346
+ (declare-rule bool-implies-or-distrib ((y1 Bool) (y2 Bool) (ys1 Bool :list) (z1 Bool))
347
+ :args (y1 y2 ys1 z1 )
348
+ :conclusion (= (=> (or y1 y2 ys1) z1 ) (and (=> y1 z1 ) (=> ($singleton_elim (or y2 ys1 )) z1 )))
349
349
)
350
350
(declare-rule bool-xor-refl ((x1 Bool))
351
351
:args (x1)
Original file line number Diff line number Diff line change 42
42
43
43
; We only permit distributing from the first child, or otherwise this rule
44
44
; could apply to fix point on all AND children of an OR at once.
45
- (define-rule* bool-or-and-distrib ((y1 Bool) (y2 Bool) (y3 Bool :list) (zs Bool :list))
46
- (or (and y1 y2 y3 ) zs)
47
- (or (and y2 y3 ) zs)
45
+ (define-rule* bool-or-and-distrib ((y1 Bool) (y2 Bool) (ys Bool :list) (zs Bool :list))
46
+ (or (and y1 y2 ys ) zs)
47
+ (or (and y2 ys ) zs)
48
48
(and (or y1 zs) _))
49
49
50
50
; Used for diamonds preprocessing
51
- (define-rule* bool-implies-or-distrib ((y1 Bool) (y2 Bool) (y3 Bool :list) (zs Bool))
52
- (=> (or y1 y2 y3) zs )
53
- (=> (or y2 y3) zs )
54
- (and (=> y1 zs ) _))
51
+ (define-rule* bool-implies-or-distrib ((y1 Bool) (y2 Bool) (ys Bool :list) (z Bool))
52
+ (=> (or y1 y2 ys) z )
53
+ (=> (or y2 ys) z )
54
+ (and (=> y1 z ) _))
55
55
56
56
(define-rule bool-xor-refl ((x Bool)) (xor x x) false)
57
57
(define-rule bool-xor-nrefl ((x Bool)) (xor x (not x)) true)
You can’t perform that action at this time.
0 commit comments