-
Notifications
You must be signed in to change notification settings - Fork 0
/
bool.txt
55 lines (50 loc) · 1.3 KB
/
bool.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
max expr size = 5
|- on ineqs = 4
|- on conds = 4
max #-tests = 500
min #-tests = 25 (to consider p ==> q true)
max #-vars = 2 (for inequational and conditional laws)
_ :: Bool
False :: Bool
True :: Bool
not :: Bool -> Bool
(&&) :: Bool -> Bool -> Bool
(||) :: Bool -> Bool -> Bool
(==) :: Bool -> Bool -> Bool
(p && p) == p
(p || p) == p
not (not p) == p
(p && True) == p
(p || False) == p
(p == p) == True
(p == True) == p
(p && False) == False
(p || True) == True
(p && not p) == False
(p == False) == not p
(p && q) == (q && p)
(p || q) == (q || p)
(p && (p || q)) == p
(p || p && q) == p
(p && p == q) == (p && q)
(p == not q) == not (p == q)
not (p || q) == (not p && not q)
(p || not q) == not (q && not p)
((p && q) && r) == (p && (q && r))
((p || q) || r) == (p || (q || r))
(p == (p && q)) == not (p && not q)
(p || p == q) == not (q && not p)
(p == (p || q)) == not (q && not p)
p ==> True
False ==> p
p ==> p || q
p && q ==> p
p && q ==> p == q
not p ==> not (p && q)
not (p || q) ==> p == q
not (p == q) ==> p || q
p && not q ==> q || p
p == q ==> p || not q
p && not q ==> not (q && p)
not (p == q) ==> not (p && q)
p && not q ==> not (p == q)