|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The committed algebraic tower for the truth objects (#901). More...
The committed algebraic tower for the truth objects (#901).
Register-agnostic concepts: each gates the species' named ops (L::AND / L::OR / L::RFL) and their laws, NOT any particular C++ operator, so a raw carrier like int qualifies via Chain<int> without overloading (int's own && stays boolean).
IsDeMorganAlgebra: a logical species whose reflection is a certified involution (bounded distributive lattice + De Morgan ¬; ¬¬=id).IsBoundedDeMorganChain: adds that the truth carrier Ω is totally ordered. By the chain-normality theorem (on a chain min(a,¬a) ≤ max(b,¬b)), this is automatically a Kleene lattice.IsBooleanLogic: adds that the reflection is a genuine complement (a∧¬a=⊥, a∨¬a=⊤), which on a chain forces the 2-element case (𝔹).Species-level twin of the value-level IsPst (bounded-chain truth object): IsPst gates a truth value type (bool, Ternary), these gate the species / algebra, so Chain<int> qualifies although int is not IsΩ.
A logical species whose reflection ¬ is a certified involution (¬¬=id): a De Morgan algebra (bounded distributive lattice with an order-reversing involution).
IsΩ / IsPst): they certify the operation SIGNATURES plus the involution law (¬¬=id), NOT the full semantic De Morgan / distributivity / order-reversal laws. Those are pinned by the static_assert witnesses below (and, for the reducer, by category:lattice). So a pathological species could pass without every law; the concept recognises the intended family (Boole, Kleene, Chain<T>) and the witnesses hold the laws.