Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::IsDistributiveLattice Concept Referenceexport

compatibility alias for distributive order lattices. More...

Concept definition

template<typename T, typename Join std::bit_or<>, typename Meet std::bit_and<>>
compatibility alias for distributive order lattices.
Definition total.cppm:919
compatibility alias for order-lattice refinement.
Definition total.cppm:893
Distributive lattice refinement over IsOrderLatticeOperations.
Definition posetal.cppm:200

Detailed Description

compatibility alias for distributive order lattices.

Formal Laws:

  1. a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c) [Join over Meet]
  2. a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) [Meet over Join]

Std namespace mappings:

  • bool with (std::logical_or, std::logical_and) is a Distributive Lattice. This corresponds to the classical two-element Boolean lattice {false < true}.
  • int with (Sup, Inf) is a Distributive Lattice. This corresponds to the total order on integers.
  • double is not a lattice carrier: NaN breaks reflexivity / totality, so the :species lattice-law blanket is gated on a certified total order (SupInfLattice) and excludes raw floats (see #934).

Note: (unsigned int, XOR, AND) is a Ring, not a Lattice, because XOR is not idempotent.