|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
A IsLattice whose join and meet each carry an identity: the bottom \(\bot\) (unit<T>(Join{})) and top \(\top\) (unit<T>(Meet{})).
More...
A IsLattice whose join and meet each carry an identity: the bottom \(\bot\) (unit<T>(Join{})) and top \(\top\) (unit<T>(Meet{})).
A lattice is bounded when it has a least and a greatest element, \(a \vee \bot = a\) and \(a \wedge \top = a\); equivalently its join- and meet-semilattices are each an IsMonoid (commutativity is already forced by IsLattice, so only the identity is new here). For bool the bounds are false ( \(\bot\), the logical_or identity) and true ( \(\top\), the logical_and identity). Adding the bounds expands the signature from Alg(∧,∨) to Alg(∧,∨,⊥,⊤) (two nullary constants), so bounded lattices are a variety over the expanded signature, not a subvariety of Alg(∧,∨) — compare a unital ring expanding Alg(+,×) with the constant 1.
dedekind::sets::IsBoundedLattice (1-param, :mereology) is the IsSet / powerset-specific bounded lattice, and dedekind::category::IsBoundedLatticeCategory (:lattice) is the relation-based categorical reading. This one is the operation-parametric variety concept (matching the un-suffixed ring-ladder names IsRing / IsField in this partition). The :mereology sibling is only used within namespace dedekind::sets, where its own declaration wins unqualified lookup, so the shared name does not collide in practice.