Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true (equivalently, double-negation is true).
Every Boolean ring gives rise to a Boolean algebra:
Every Boolean ring gives rise to a Boolean algebra:
times
) corresponds to and
;plus
) corresponds to xor
;a or b
is then defined as a xor b xor (a and b)
;¬a
) is defined as a xor 1
.
A bounded distributive lattice is a lattice that both bounded and distributive
A bounded lattice is a lattice that additionally has one element that is the bottom (zero, also written as ⊥), and one element that is the top (one, also written as ⊤).
A bounded lattice is a lattice that additionally has one element that is the bottom (zero, also written as ⊥), and one element that is the top (one, also written as ⊤).
This means that for any a in A:
join(zero, a) = a = meet(one, a)
Or written using traditional notation:
(0 ∨ a) = a = (1 ∧ a)
A distributive lattice a lattice where join and meet distribute:
A distributive lattice a lattice where join and meet distribute:
Generalized Boolean algebra, that is, a Boolean algebra without the top element.
Generalized Boolean algebra, that is, a Boolean algebra without the top element. Generalized Boolean algebras do not (in general) have (absolute) complements, but they have relative complements (see GenBool.without).
Every Boolean rng gives rise to a Boolean algebra without top:
Every Boolean rng gives rise to a Boolean algebra without top:
times
) corresponds to and
;plus
) corresponds to xor
;a or b
is then defined as a xor b xor (a and b)
;a\b
is defined as a xor (a and b)
.BoolRng.asBool.asBoolRing
gives back the original BoolRng
.
Heyting algebras are bounded lattices that are also equipped with
an additional binary operation imp
(for impliciation, also
written as →).
Heyting algebras are bounded lattices that are also equipped with
an additional binary operation imp
(for impliciation, also
written as →).
Implication obeys the following laws:
In heyting algebras, and
is equivalent to meet
and or
is
equivalent to join
; both methods are available.
Heyting algebra also define complement
operation (sometimes
written as ¬a). The complement of a
is equivalent to (a → 0)
,
and the following laws hold:
However, in Heyting algebras this operation is only a pseudo-complement, since Heyting algebras do not necessarily provide the law of the excluded middle. This means that there is no guarantee that (a ∨ ¬a) = 1.
Heyting algebras model intuitionistic logic. For a model of
classical logic, see the boolean algebra type class implemented as
Bool
.
A join-semilattice (or upper semilattice) is a semilattice whose operation is called "join", and which can be thought of as a least upper bound.
A lattice is a set A
together with two operations (meet and
join).
A lattice is a set A
together with two operations (meet and
join). Both operations individually constitute semilattices (join-
and meet-semilattices respectively): each operation is commutative,
associative, and idempotent.
Join can be thought of as finding a least upper bound (supremum), and meet can be thought of as finding a greatest lower bound (infimum).
The join and meet operations are also linked by absorption laws:
meet(a, join(a, b)) = join(a, meet(a, b)) = a
A meet-semilattice (or lower semilattice) is a semilattice whose operation is called "meet", and which can be thought of as a greatest lower bound.
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:
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
, andnxor
which are commonly used.Every boolean algebras has a dual algebra, which involves reversing true/false as well as and/or.