|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The universal-algebra (A, F) pattern at the totality tier — every operation closes on the carrier and is total under the carrier's chosen totality path (Periodic / Idempotent / Saturating). More...
The universal-algebra (A, F) pattern at the totality tier — every operation closes on the carrier and is total under the carrier's chosen totality path (Periodic / Idempotent / Saturating).
Refines IsAlgebra<T, Ops...> by additionally requiring each operation to satisfy the totality gate from category:species (IsTotal<T, Op>, the IsPeriodic / IsIdempotent / is_saturating_v disjunction — the saturation arm is the variable-template trait directly, with IsSaturating being the mereology-layer concept wrapper around it). This is the structural anchor between the closure tier (this partition) and the laws tier (category:total — IsRing, IsField, etc.): the laws partition's per-axiom hierarchy is built on IsTotal-gated operations, so IsTotalAlgebra names exactly the slice of IsAlgebra that the laws partition can refine.
The three tiers compose as:
IsAlgebra<T, Ops...> — closure tier: each Op closes on T; T is std::semiregular.IsTotalAlgebra<T, Ops...> — totality tier: closure plus each Op satisfies IsTotal<T, Op>. This concept.IsRing<T, Add, Mult>, IsField<T, Add, Mult>, etc. — laws tier: per-axiom refinements in category:total, built on IsTotal-gated operations. Every IsRing model is therefore an IsTotalAlgebra<T, Add, Mult> instance.The math-wins-over-C++ stance applies at this tier: carriers that don't clear the totality gate (signed-overflow UB on int / long; IEEE rounding non-associativity on double) close at the operator surface (HasRingOperators) but refuse IsTotalAlgebra. The strict laws-tier concepts (IsRing, IsField) refuse them for the same reason — and now the refusal is named at this intermediate tier rather than only inside each laws-tier concept.
| T | The carrier type (std::semiregular). |
| Ops | Family of operations that close on T and are total under one of the IsTotal paths. |
category:total for the declared paths IsPeriodic / is_saturating_v and for IsTotal, and category:species for IsIdempotent. category:total for the per-axiom laws hierarchy (IsRing, IsField, IsAbelianGroup, etc.) built on IsTotal. IsAlgebra above (closure tier — the more permissive ancestor).Filed under the #573 follow-up.