|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Bundled lattice witness: the strict commutative-ring proof under (std::bit_xor<T>, std::bit_and<T>) AND the bitwise/lattice operator surface on T, by definition.
More...
Bundled lattice witness: the strict commutative-ring proof under (std::bit_xor<T>, std::bit_and<T>) AND the bitwise/lattice operator surface on T, by definition.
The Boolean-ring reading of "lattice": a commutative ring where the additive operation plays the role of symmetric difference (join modulo absorption) and the multiplicative operation plays the role of meet. This bundle locks the (Add, Mult) functors to (std::bit_xor<T>, std::bit_and<T>) — the operator pair the HasLatticeOperators shape concept describes — so the two halves of the bundle (categorical proof + operator surface) refer to the same algebraic structure.
Earlier drafts parameterised the bundle by (Add, Mult) and defaulted them to (std::bit_xor<T>, std::bit_and<T>); the parameters were unused by the operator-surface clause (which is hard-wired to the bitwise operators), so a caller could pass non-bitwise (Add, Mult) and still satisfy the concept on a carrier with bitwise ops. The current form pins the bundle to the Boolean-ring reading; callers wanting other (Add, Mult) pairs should reach for the underlying category::IsCommutativeRing<T, Add, Mult> directly.
Meaning shift (#393): this concept previously re-exported category::IsCertifiedOrderLatticeOperations<T, Join, Meet> with Inf / Sup as the order-theoretic Join/Meet defaults. The order-theoretic certified lattice machinery still lives at category::IsCertifiedOrderLatticeOperations and is reachable directly; IsOrderLattice now bundles the Boolean-ring lattice reading instead — which is the canonical HasLatticeOperators shape↔concept mapping the audit recorded. The Boolean ring and Boolean lattice are equivalent categories, so either reading recovers the other on Boolean-flavoured carriers.