|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The set-indexed lift of the axiomatic category::IsField: a set object X whose carrier X::Domain is a field.
More...
The set-indexed lift of the axiomatic category::IsField: a set object X whose carrier X::Domain is a field.
| X | The set object (category::IsSet). |
| Add | Additive operation witness (defaults to std::plus). |
| Mult | Multiplicative operation witness (defaults to std::multiplies). |
The faithful lift, matching every other rung: IsAlgebraOnSet supplies the carrier discipline (IsLSet roots std::semiregular on X::Domain, IsClosedAlgebra pins strict closure) and category::IsField<X::Domain, Add, Mult> supplies the axioms — a commutative ring whose non-zero elements are multiplicatively invertible (via is_invertible_v / IsAbelianGroup<X::Domain, Mult>).
operator/, .inverse(), std::divides) is deliberately not required here. It is a syntactic concern carried by the separate concepts HasFieldOperators (shape only) and IsDivisionRing (ring + surface). Keeping it out makes IsField a pure axiomatic lift, so a genuine field with no division operator — \(\mathbb{F}_2 = \mathbb{A}\langle\texttt{bool}\rangle\) under (bit_xor, bit_and) — qualifies. A callsite that needs to write a/b on field elements constrains additionally on HasFieldOperators.