|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Integral carriers under the bitwise Boolean algebra (#710). More...
Public Member Functions | |
| constexpr bool | operator() (T a, T b) const noexcept |
Integral carriers under the bitwise Boolean algebra (#710).
An integral carrier T (int, unsigned, std::size_t, …) has TWO distinct lattice readings on the same underlying set:
IsOrderLattice<bool> above already pins this for bool): (XOR, AND) — additive group under XOR, multiplicative monoid under AND. Algebraic / field- flavoured.a ⊆_bit b ⟺ (a & b) == a; meet = &; join = |; complement = ~; bottom = 0; top = ~T(0). Order-theoretic / Form-chain-row-7 flavoured.The two readings are equivalent on Boolean algebras (XOR is the symmetric difference (a | b) & ~(a & b)), but they expose different concept surfaces — IsOrderLattice (Boolean-ring) above vs. :category::IsBooleanLatticeCategory (Form-chain row 7) here. Naming both makes the equivalence navigable rather than implicit.
:algebra::galois.cppm carries the Galois field machinery (bool = 𝔽_2 under (XOR, AND); 𝔽64 = GF(2^6) with polynomial multiplication mod x^6+x+1; IsGaloisField concept; GaloisFieldRegistration CRTP). For wider integral T (size_t etc.), the field claim requires a specific primitive polynomial — the project does not witness GF(2^N) for arbitrary N as field-on-the-primitive type without a struct wrapper.
Cross-reading: the bitwise Boolean lattice on integral T here is the lattice of subsets of {0, …, std::numeric_limits<T>::digits-1}; the (would-be) Galois field on GF(2^N) (with N the carrier bit-width) on the same carrier is a different algebraic structure on the same underlying set. Don't conflate them.
Bit-subset relation: a ⊆_bit b ⟺ (a & b) == a. Form-chain Rel slot for the bitwise Boolean lattice on integral carriers (#710).