speculate-0.4.0: tests/model/bool.out
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)