Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true (equivalently, double-negation is true).
Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true (equivalently, double-negation is true).
This means that in addition to the laws Heyting algebras obey, boolean algebras also obey the following:
- (a ∨ ¬a) = 1
- ¬¬a = a
Boolean algebras generalize classical logic: one is equivalent to
"true" and zero is equivalent to "false". Boolean algebras provide
additional logical operators such as xor
, nand
, nor
, and
nxor
which are commonly used.
Every boolean algebras has a dual algebra, which involves reversing true/false as well as and/or.
- Companion
- object
Value members
Concrete methods
Every Boolean algebra is a BoolRing, with multiplication defined as
and
and addition defined as xor
. Bool does not extend BoolRing
because, e.g. we might want a Bool[Int] and CommutativeRing[Int] to
refer to different structures, by default.
Every Boolean algebra is a BoolRing, with multiplication defined as
and
and addition defined as xor
. Bool does not extend BoolRing
because, e.g. we might want a Bool[Int] and CommutativeRing[Int] to
refer to different structures, by default.
Note that the ring returned by this method is not an extension of
the Rig
returned from BoundedDistributiveLattice.asCommutativeRig
.
- Definition Classes
Inherited methods
Return a CommutativeRig using join and meet. Note this must obey the commutative rig laws since meet(a, one) = a, and meet and join are associative, commutative and distributive.
Return a CommutativeRig using join and meet. Note this must obey the commutative rig laws since meet(a, one) = a, and meet and join are associative, commutative and distributive.
- Inherited from
- BoundedDistributiveLattice