Boolean Algebras.

[info] + OK, passed 100 tests.     a ∧ (b ∧ c) = (a ∧ b) ∧ c                 Boolean
[info] + OK, passed 100 tests.     a ∨ (b ∨ c) = (a ∨ b) ∨ c                 Boolean
[info] + OK, passed 100 tests.     a ∧ b = b ∧ a                             Boolean
[info] + OK, passed 100 tests.     a ∨ b = b ∨ a                             Boolean
[info] + OK, passed 100 tests.     a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)           Boolean
[info] + OK, passed 100 tests.     a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)           Boolean
[info] + OK, passed 100 tests.     a ∧ (a ∨ b) = a                           Boolean
[info] + OK, passed 100 tests.     a ∨ (a ∧ b) = a                           Boolean
[info] + OK, passed 100 tests.     a ∨ 0 = a                                 Boolean
[info] + OK, passed 100 tests.     a ∧ 1 = a                                 Boolean
[info] + OK, passed 100 tests.     a ∨ ¬a = 1                                Boolean
[info] + OK, passed 100 tests.     a ∧ ¬a = 0                                Boolean
[info] + OK, passed 100 tests.     a ∧ (b ∧ c) = (a ∧ b) ∧ c                 Predicate[Int]
[info] + OK, passed 100 tests.     a ∨ (b ∨ c) = (a ∨ b) ∨ c                 Predicate[Int]
[info] + OK, passed 100 tests.     a ∧ b = b ∧ a                             Predicate[Int]
[info] + OK, passed 100 tests.     a ∨ b = b ∨ a                             Predicate[Int]
[info] + OK, passed 100 tests.     a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)           Predicate[Int]
[info] + OK, passed 100 tests.     a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)           Predicate[Int]
[info] + OK, passed 100 tests.     a ∧ (a ∨ b) = a                           Predicate[Int]
[info] + OK, passed 100 tests.     a ∨ (a ∧ b) = a                           Predicate[Int]
[info] + OK, passed 100 tests.     a ∨ 0 = a                                 Predicate[Int]
[info] + OK, passed 100 tests.     a ∧ 1 = a                                 Predicate[Int]
[info] + OK, passed 100 tests.     a ∨ ¬a = 1                                Predicate[Int]
[info] + OK, passed 100 tests.     a ∧ ¬a = 0                                Predicate[Int]
[info] + OK, passed 100 tests.     a ∧ (b ∧ c) = (a ∧ b) ∧ c                 Set[Int]
[info] + OK, passed 100 tests.     a ∨ (b ∨ c) = (a ∨ b) ∨ c                 Set[Int]
[info] + OK, passed 100 tests.     a ∧ b = b ∧ a                             Set[Int]
[info] + OK, passed 100 tests.     a ∨ b = b ∨ a                             Set[Int]
[info] + OK, passed 100 tests.     a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)           Set[Int]
[info] + OK, passed 100 tests.     a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)           Set[Int]
[info] + OK, passed 100 tests.     a ∧ (a ∨ b) = a                           Set[Int]
[info] + OK, passed 100 tests.     a ∨ (a ∧ b) = a                           Set[Int]
[info] + OK, passed 100 tests.     a ∨ 0 = a                                 Set[Int]
[info] + OK, passed 100 tests.     a ∧ 1 = a                                 Set[Int]
[info] + OK, passed 100 tests.     a ∨ ¬a = 1                                Set[Int]
[info] + OK, passed 100 tests.     a ∧ ¬a = 0                                Set[Int]