|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
An ordered field — the textbook home of multiplicative scaling of halfspaces. More...
An ordered field — the textbook home of multiplicative scaling of halfspaces.
A field with a total order compatible with BOTH operations. Composed, symmetrically with the additive sibling, from the field axioms plus the two order-compatibility axiom markers — NOT from order::IsTotallyOrdered:
category::IsField<T, ...> — the type-indexed field axioms on T (the multiplicative group on the non-zero cone (T \ {0}, *) is abelian with inverses).is_translation_invariant_ordered_v<T> — O1, the additive compatibility axiom (a≤b ⟹ a+c≤b+c).is_scaling_invariant_ordered_v<T> — O2, the multiplicative compatibility axiom (0≤a,0≤b ⟹ 0≤a·b).O1 ∧ O2 on a field is exactly an ORDERED FIELD, hence (Artin–Schreier) FORMALLY REAL: −1 is not a sum of squares. That is the precondition for halfspace-pivot transport under scaling ( \(\{x \mid x > k\}\) scaled by k_E>0 yields \(\{y \mid y > k\cdot k_E\}\); k_E<0 flips direction), and for Complex<T>=T[i]/(x²+1) being a field (x²+1 irreducible).
order::IsTotallyOrdered here. It is mere syntactic comparability and does not prove O2: a field can be std::totally_ordered by representatives yet have −1 a square ( \(\mathbb{F}_5\)), which this concept must reject. Compatibility is a value-law, carried by the markers at their per-carrier opt-in sites — the same design as IsOrderedAdditiveGroup. Rational, QuadraticReal, Real all opt into both markers; Complex<R> never opts into O2 (no order compatible with complex *).