|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Concepts | |
| concept | dedekind::category::IsQuotientAlgebra |
Q is declared as a quotient of some base algebra. | |
| concept | dedekind::category::IsCongruenceQuotient |
Q is a quotient of a carrier V by a declared congruence R for Op and reduces from V — the relational reading of the H leg. | |
| concept | dedekind::category::IsProductAlgebra |
Q is declared as a finite direct product of some base algebra. | |
| concept | dedekind::category::IsSubalgebra |
Subobject S of A is a subalgebra under operation Op when it is closed under Op. | |
| concept | dedekind::category::IsSubalgebraOf |
S is declared as a subalgebra of some base algebra. | |
| concept | dedekind::algebra::IsInitialRing |
R is the initial object in Ring — for every ring S there exists a unique ring homomorphism R → S. | |
| concept | dedekind::algebra::IsGrothendieckGroup |
G is the Grothendieck group of the commutative monoid M — the free abelian group on M, equivalently the left adjoint of the forgetful functor Ab → CMon applied at M. | |
| concept | dedekind::algebra::HasGroupOperatorsAdd |
Pure syntactic shape: T closes strictly under the additive-group operator surface +, binary -, unary -. | |
| concept | dedekind::algebra::HasGroupOperatorsMul |
Pure syntactic shape: T closes strictly under the multiplicative-group operator surface *, /, and exposes the multiplicative unit T{1}. | |
| concept | dedekind::algebra::HasSuccessorOperators |
| Pure syntactic shape: T supports the successor / predecessor operator surface (pre- and post-increment / -decrement, all four). | |
| concept | dedekind::algebra::HasCompoundGroupOperatorsAdd |
Pure syntactic shape: T supports the in-place additive-group operator surface +=, -=. | |
| concept | dedekind::algebra::HasCompoundGroupOperatorsMul |
Pure syntactic shape: T supports the in-place multiplicative-group operator surface *=, /=. | |
| concept | dedekind::algebra::IsGroup |
Proposition: a set object X whose carrier X::Domain forms a group — the set-indexed lift of category::IsGroup. | |
| concept | dedekind::algebra::IsAdditiveGroup |
Proposition: a set object X whose carrier is a group under +. | |
| concept | dedekind::algebra::IsMultiplicativeGroup |
Proposition: a set object X whose carrier is a group under *. | |
| concept | dedekind::algebra::IsArithmeticAdditiveGroup |
The ℤ-deal: a carrier that is an additive group AND whose group structure agrees with the standard C++ +, -, unary - operators. | |
| concept | dedekind::algebra::IsVectorSpace |
| The Gold Standard: A Module where the Scalar is a Field. | |
| concept | dedekind::algebra::IsFieldElement |
| A bona fide element of a field is a 1D vector space over itself. | |
| concept | dedekind::algebra::HasVectorSpaceOperators |
| Pragmatic vector-space check used by first reified vector carriers. | |
| concept | dedekind::algebra::SatisfiesVectorSpaceAxioms |
| Operational witness of the core vector-space axiom signatures. | |
| concept | dedekind::algebra::IsGaloisField |
A finite field, as an algebraic set: an ETCS set X whose carrier X::Domain is an axiomatic field with the carrier-author finite-cardinality opt-in. | |
| concept | dedekind::algebra::IsOrderedAdditiveGroup |
| An additive group whose order is translation-invariant. | |
| concept | dedekind::algebra::IsOrderedMultiplicativeGroup |
| An ordered field — the textbook home of multiplicative scaling of halfspaces. | |
| concept | dedekind::algebra::IsOrderedCommutativeRing |
| A commutative ring whose carrier is ordered under the additive translation marker. | |
| concept | dedekind::algebra::IsTropical |
A dioid: an IsSemiring whose additive monoid Add is idempotent (a semilattice). This is the algebraic gate for the tropical carriers, refining IsSemiring exactly by ⊕-idempotence. | |
| concept | dedekind::algebra::IsMonoid |
Proposition: a set object X whose carrier X::Domain forms a monoid — the set-indexed lift of category::IsMonoid. | |
| concept | dedekind::algebra::IsAdditiveMonoid |
Proposition: a set object X whose carrier is a monoid under +. | |
| concept | dedekind::algebra::IsMultiplicativeMonoid |
Proposition: a set object X whose carrier is a monoid under *. | |
| concept | dedekind::algebra::HasRingOperators |
Pure syntactic shape: T closes strictly under +, -, * (binary and unary -). Textbook closure — results are exactly T, not just convertible to T. | |
| concept | dedekind::algebra::IsSemiring |
The set-indexed lift of category::IsSemiring (an exact alias of category::IsRig): the "rig" rung of the tower. | |
| concept | dedekind::algebra::IsRig |
| concept | dedekind::algebra::IsRng |
| concept | dedekind::algebra::IsRing |
The set-indexed lift: a set object X whose carrier X::Domain is both a Semiring AND an Abelian Group under addition. | |
| concept | dedekind::algebra::IsArithmeticRing |
| The seal: a carrier that is a ring AND whose ring structure agrees with the standard C++ arithmetic operators. | |
| concept | dedekind::algebra::IsCommutativeRing |
| A Ring where multiplication is also commutative. | |
| concept | dedekind::algebra::HasSemiringOperators |
Pure syntactic shape: T closes strictly under + and *, with structural identities T{} and T{1}. | |
| concept | dedekind::algebra::IsRingHomomorphism |
A callable φ from Source to Target that carries the ring structure: \(\varphi(a + b) = \varphi(a) + \varphi(b)\), \(\varphi(a b) = \varphi(a) \varphi(b)\), \(\varphi(0) = 0\) and \(\varphi(1) = 1\) (Lang, Algebra, §II.1). | |
| concept | dedekind::algebra::IsClosedAlgebra |
The closure-only tier of an (A, F) algebra: each Op closes on T, without the value-semantics requirement. | |
| concept | dedekind::algebra::IsAlgebra |
| The universal-algebra (A, F) pattern at the closure tier. | |
| concept | dedekind::algebra::IsAlgebraOnSet |
An algebraic set: a Tarski set whose carrier is closed under a family of operations. This is the Ddk = Trsk ∩ Alg layer, spelt out as its two conjuncts. | |
| concept | dedekind::algebra::IsTotalAlgebra |
| 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). | |
| concept | dedekind::algebra::HasCarrier |
The HAS-A posture in code: an Algebra HAS-A Carrier (under operations Ops) iff the carrier closes the operations (IsAlgebra), the carrier is mereologically a part of the algebra, and the algebra exposes the part via the arrow_drill_down projector. | |
| concept | dedekind::algebra::AlgebraAsProduct |
Set-level sibling of HasCarrier: an algebra is a product of (set object, operations on the underlying type). | |
| concept | dedekind::algebra::IsHomomorphism |
An arrow \(f : A \to B\) between two algebras that carries each operation of the signature S on \(A\) to the one in the same place of T on \(B\): \(f(x \odot y) = f(x) \circledast f(y)\) and \(f(e) = e'\) for each (Burris and Sankappanavar, A Course in Universal Algebra, §II.6). | |
| concept | dedekind::algebra::IsQuotientMorphism |
An arrow that is both a homomorphism of the signatures and surjective (via category::is_epic_arrow_v). | |
| concept | dedekind::algebra::EmbedsAsSubalgebra |
| The Birkhoff S leg as an arrow: a monic homomorphism, i.e. a structure-preserving embedding whose image is a subalgebra. | |
| concept | dedekind::algebra::IsIntegralScalar |
| Internal bridge for std::integral scalar carriers. | |
| concept | dedekind::algebra::IsUnsignedIntegralScalar |
| Internal bridge for std::unsigned_integral scalar carriers. | |
| concept | dedekind::algebra::IsFloatingScalar |
| Internal bridge for std::floating_point scalar carriers. | |
| concept | dedekind::algebra::IsModule |
| An Abelian Group participating in a Linear Action by a Ring. | |
| concept | dedekind::algebra::IsScalar |
| A bona fide scalar is a 1D semi-module over itself. | |
| concept | dedekind::algebra::HasFieldOperators |
Pure syntactic shape: T closes strictly under the full field operator surface +, binary -, unary -, *, /, and exposes the multiplicative unit T{1}. | |
| concept | dedekind::algebra::IsField |
The set-indexed lift of the axiomatic category::IsField: a set object X whose carrier X::Domain is a field. | |
| concept | dedekind::algebra::IsAlgebraicallyClosed |
| The "Soul" of the Field: Every polynomial has a root in the species. | |
| concept | dedekind::category::IsFreeAlgebra |
F is declared as the free algebra over some base R. | |
| concept | dedekind::algebra::IsDivisionRing |
| A Ring establishing the existence of Multiplicative Inverses. | |
| concept | dedekind::algebra::IsEuclidean |
| A Commutative Ring endowed with a division algorithm. | |
| concept | dedekind::algebra::IsMagma |
Proposition: a set object X whose carrier X::Domain forms a magma — the set-indexed lift of category::IsMagma. | |
Classes | |
| struct | dedekind::category::quotient_algebra_base< Q > |
quotient_algebra_base<Q>: carrier-side declaration that Q is a quotient of some base algebra. Specialise the ::type member at the carrier-defining partition (e.g.\ Complex<R> in numbers:complex records quotient_algebra_base<Complex<R>>::type = R). More... | |
| struct | dedekind::category::quotient_congruence< Q > |
quotient_congruence<Q>: carrier-side declaration of the congruence witnessing Q = V/R. ::type is the relation R, ::carrier is the carrier V that R lives on (R is a homogeneous relation on V). Mirrors the S-leg's subalgebra_base. More... | |
| struct | dedekind::category::product_algebra_base< Q > |
product_algebra_base<Q>: carrier-side declaration that Q is a finite direct product of some base algebra (the P operation in Birkhoff HSP). Specialise the ::type member at the carrier-defining partition (e.g.\ Vec2V<T> in linear_algebra:vec2 records product_algebra_base<Vec2V<T>>::type = T). More... | |
| struct | dedekind::category::subalgebra_base< S > |
subalgebra_base: carrier-side declaration that S is a subalgebra of some base algebra (the S operation in Birkhoff HSP). Specialise the ::type member at the carrier-defining partition; the propagation specs below then lift the species-trait pins from base to S. More... | |
| struct | dedekind::algebra::Inverse< G, Op > |
The group inverse under Op, reified as an arrow (an endomorphism G → G). More... | |
| struct | dedekind::algebra::Bit2U64Action |
Scalar action \(\mathbb{F}_2 \times \mathbb{F}_2^{64} \to
\mathbb{F}_2^{64}\) on (bool, uint64_t). More... | |
| struct | dedekind::algebra::𝔽64 |
| The Galois field of order 64, \(\mathrm{GF}(2^6) =
\mathbb{F}_2[x] / (x^6 + x + 1)\). More... | |
| struct | dedekind::algebra::is_translation_invariant_ordered< T > |
Marker trait: T is a non-cyclic ordered additive group whose order is translation-invariant, with the saturating escape contract for values that would exceed representable capacity. More... | |
| struct | dedekind::algebra::is_translation_invariant_ordered< dedekind::sets::SignedCardinality > |
sets::SignedCardinality is the project's bona-fide saturating proxy for \(\mathbb{Z}\): arithmetic escalates to \(\pm \aleph_0\) on overflow and propagates NaZ on indeterminate forms, rather than wrapping modulo capacity (cf. cardinality.cppm:923-967). This is the structural guarantee the marker certifies: translation preserves the partial order \(\le\) on the finite fragment; saturation collapses ordering past the boundary into the \(\pm \aleph_0\) sentinel (the meet still holds: both sides land at the same sentinel). The finite-fragment carrier SignedExtensionalCardinal is intentionally not opted in: it is cyclic (mod \(2^w\)), so its addition would reverse the order at the wrap boundary. The variant SignedCardinality is what callers should use whenever they want translation-invariance at the type level (i.e. the halfspace pipe). More... | |
| struct | dedekind::algebra::is_scaling_invariant_ordered< T > |
The MULTIPLICATIVE order-compatibility axiom marker (O2): the positive cone is closed under *, i.e. 0≤a ∧ 0≤b ⟹ 0≤a·b — equivalently, scaling by a positive preserves the order. The multiplicative sibling of is_translation_invariant_ordered (O1, scaling ↔ translation). More... | |
| struct | dedekind::algebra::Tropical< T, Max > |
Tropical carrier T ∪ {∞}. finite==false is the ⊕-identity sentinel (−∞ for Max, +∞ for Min), absorbing under ⊗. operator+ is ⊗ (honest addition); ⊕ is TropicalPlus. More... | |
| struct | dedekind::algebra::TropicalPlus |
⊕: the tropical addition, the order-extremum (a semilattice join for Max, meet for Min). Named, not an operator, so a+b never silently means max. More... | |
| struct | dedekind::algebra::Monomial< N > |
A monomial in N variables: its exponents, one per slot (π is the slot 0; π_1, π_2, π_3 the slots 1, 2, 3). The free commutative monoid on N generators, written multiplicatively (the exponents add, as natural numbers: leaving the word raises), and a chain under the graded lexicographic order: by total degree, then by exponents. More... | |
| class | dedekind::algebra::Polynomial< R, M > |
The monoid algebra R[M]: a finitely supported function from the monomials to the coefficients, stored as its support sorted along the monomials' chain, no coefficient zero. A net (Domain the monomials, Codomain the coefficients, p(m) the coefficient of m), a commutative rig over a commutative rig, a ring over a ring (- where R has additive inverses). More... | |
| struct | dedekind::algebra::Poly< C, N > |
The polynomial reading of a term on the carrier C, an algebra for cata: a projection is its variable, a constant a coefficient, + - * the polynomial's where the carrier admits them, a division by a nonzero constant on a field the multiplication by its inverse. Any other node (//, %, a division by a term, an applied arrow, a conditional) has no free algebra catalogued here and is refused. Expanding into polynomials uses commutativity of * and its distributivity over +, so the carrier must be a certified commutative rig. More... | |
| struct | dedekind::algebra::semiring_ops< S > |
Canonical semiring operations of a carrier, so combinators can default their Add / Mult without a call site spelling them. The default (this primary) is the ordinary ring (+, ×), which is correct for any carrier whose native operators are its semiring ops; carriers whose ops differ specialize (the burden of proof sits at the implementation site): Tropical → (⊕ = TropicalPlus, ⊗ = +), bool → (∨, ∧) — bool must NOT take the default (bool
| |
| struct | dedekind::algebra::Signature< Ops > |
A signature, the \(F\) of an \((A, F)\) algebra named as one type: the Ops... of IsAlgebra, IsAlgebraOnSet and HasCarrier, which a concept can then take as a parameter and default. More... | |
| struct | dedekind::algebra::OneDimensionalVector< S, Tag > |
| Reified carrier for a 1D module/vector-space coordinate. More... | |
| struct | dedekind::algebra::BoolLineJoin |
| Additive join on 1D Boolean vectors (OR). More... | |
| struct | dedekind::algebra::BoolLineMeetAction |
| Scalar action on 1D Boolean vectors via meet (AND). More... | |
| struct | dedekind::category::free_algebra_base< F > |
free_algebra_base<F>: carrier-side declaration that F is the free algebra over some base R (the textbook companion to HSP; cf. Burris–Sankappanavar §II.11). Specialise the ::type member at the carrier-defining partition (e.g. Polynomial<R, M> in algebra:polynomial records free_algebra_base<Polynomial<R, M>>::type = R). More... | |
Typedefs | |
| template<typename Q> | |
| using | dedekind::category::quotient_algebra_base_t = typename quotient_algebra_base<Q>::type |
Convenience alias for quotient_algebra_base<Q>::type. | |
| template<typename Q> | |
| using | dedekind::category::quotient_congruence_t = typename quotient_congruence<Q>::type |
Convenience alias for quotient_congruence<Q>::type (the congruence relation R). | |
| template<typename Q> | |
| using | dedekind::category::quotient_congruence_carrier_t = typename quotient_congruence<Q>::carrier |
Convenience alias for quotient_congruence<Q>::carrier (the carrier V that the congruence lives on). | |
| template<typename Q> | |
| using | dedekind::category::product_algebra_base_t = typename product_algebra_base<Q>::type |
Convenience alias for product_algebra_base<Q>::type. | |
| template<typename S> | |
| using | dedekind::category::subalgebra_base_t = typename subalgebra_base<S>::type |
Convenience alias for subalgebra_base<S>::type. | |
| template<typename G> | |
| using | dedekind::algebra::AdditiveInverse = Inverse<G, std::plus<G>> |
The additive inverse x ↦ -x — the additive instance of the reified group-inverse arrow Inverse (:group). | |
| template<typename T> | |
| using | dedekind::algebra::MaxPlus = Tropical<T, true> |
| template<typename T> | |
| using | dedekind::algebra::MinPlus = Tropical<T, false> |
| template<typename S> | |
| using | dedekind::algebra::semiring_signature |
The semiring signature a carrier registers, (⊕, ⊗) off semiring_ops: the default family of a homomorphism. | |
| using | dedekind::algebra::RealLine = OneDimensionalVector<dedekind::ieee::IEEE<double>> |
| Alias: reals seen as a canonical 1D vector carrier. | |
| using | dedekind::algebra::UnsignedLine = OneDimensionalVector<unsigned int> |
| using | dedekind::algebra::BoolLine = OneDimensionalVector<bool> |
| using | dedekind::algebra::RealLineScalar = decltype(RealLine{}.coordinate()) |
| template<typename F> | |
| using | dedekind::category::free_algebra_base_t = typename free_algebra_base<F>::type |
Convenience alias for free_algebra_base<F>::type. | |
Functions | |
| constexpr 𝔽64 | dedekind::algebra::operator* (bool s, 𝔽64 v) noexcept |
Scalar action of \(\mathbb{F}_2\) (witnessed on bool) on 𝔽64, via the natural embedding \(\mathbb{F}_2 \hookrightarrow \mathbb{F}_{64}\) ( \(0 \mapsto 0\), \(1 \mapsto 1\)). | |
| constexpr 𝔽64 | dedekind::algebra::inverse (𝔽64 a, std::plus< 𝔽64 >) noexcept |
The additive (group) inverse of 𝔽64, spelled as the computable inverse(a, std::plus) free function that category::inverse_v routes through by ADL. | |
| auto | dedekind::algebra::f64_primitive_powers () |
| Enumerate \(\mathbb{F}_{64}^{\times}\) as the cyclic walk \(\alpha^0, \alpha^1, \ldots, \alpha^{62}\). | |
| template<typename C, typename T> | |
| constexpr auto | dedekind::algebra::canonical (const T &t) |
The normal form of the term t in the polynomials over C: the fold of Poly<C>. Two terms are equal in the free algebra iff their normal forms are. | |
| template<typename K, typename C, std::size_t N, typename Lift> | |
| dedekind::sets::Term< K > | dedekind::algebra::as_term (const Polynomial< C, Monomial< N > > &p, const Lift &lift) |
| A polynomial written back as a term of the grammar: its terms from the leading monomial down, each the coefficient times the product of its variables (a coefficient 1 omitted), summed; the zero polynomial is the constant 0. | |
| template<typename C> | |
| constexpr C | dedekind::algebra::unit_normaliser (const C &) |
A unit u of the carrier with u·c the chosen representative of c's associates (the elements c times a unit): the hook the normal form of an equation divides by. 1 by default, nothing divided out; a carrier with more units states its own overload, found by ADL. | |
| template<std::unsigned_integral W> requires (!std::same_as<W, bool>) && (sizeof(W) >= sizeof(unsigned)) | |
| constexpr W | dedekind::algebra::unit_normaliser (const W &c) |
On a word, ℤ/2ⁿ: c = 2ᵏ·o with o odd, and the odd elements are the units, so o⁻¹ (Newton's iteration, 2-adic: each step doubles the correct low bits) makes u·c = 2ᵏ. 0 has no unit part. | |
| template<typename P, typename K, typename Lift> | |
| dedekind::sets::Pred< K > | dedekind::algebra::canonical (const dedekind::sets::Pred< K > &p, const Lift &lift, const P &rep=P{}) |
The normal form of a predicate at points of P: its conditionals lifted out of the atoms (lift_conditionals, so an applied set ap(S, t) reads as S's predicate at t), then atom by atom, each atom in its operands' sort (a point of one carrier has one; a pair of two carriers two, each axis its own), a decided atom ⊤ or ⊥ and folded into its connective. Equal normal forms cut out equal sets; different ones need not (πᵖ = π everywhere on 𝔽ₚ). An atom outside the catalogue is refused (not_admitted). | |
| template<typename S> requires requires(S&& s) { dedekind::sets::image(embed_𝔹_𝕂3_, std::forward<S>(s)); } | |
| constexpr auto | dedekind::algebra::embed_𝔹_𝕂3 (S &&s) |
Set-level lift of embed_𝔹_𝕂3_: image of a Boolean set S under the canonical mono 𝔹 ↪ 𝕂3. | |
| template<IsUnsignedIntegralScalar S, typename Tag> | |
| constexpr OneDimensionalVector< S, Tag > | dedekind::algebra::scale_strength_reduced (const OneDimensionalVector< S, Tag > &v, S factor) |
| Strength-reduced scaling for unsigned 1D vectors. | |
|
template<typename C> requires dedekind::category::IsField<C, std::plus<C>, std::multiplies<C>> && dedekind::category::IsClosedUnder<C, std::divides<>> | |
| constexpr bool | dedekind::sets::admits (On< C >, FieldDivision, bool divisor_is_constant) |
Division by a nonzero constant is in a field's signature: multiplication by the inverse (category::IsField, the axiomatic claim; the carrier closes under /). Its free algebra is the field's polynomials, with the constant's inverse a coefficient (:polynomial). | |
|
template<typename T, typename K, typename L, typename C> requires dedekind::category::IsGroup<T, std::plus<T>> | |
| constexpr auto | dedekind::order::inverse (const Comprehension< 𝔸< std::pair< T, T >, L, C >, Translation< K > > &g) |
inverse of a translation graph = its CONVERSE, the translation by the group inverse of the shift, again a graph. The inverse is the group's unary inverse (category::inverse_v), not the carrier's operator-: IsGroup guarantees a group inverse, not a negation operator, and on a characteristic-two field the two differ. Gated on IsGroup under the very std::plus the graph evaluates. On a wrapping group such as unsigned the inverse folds modulo capacity, the correct converse of a bijection; so the inverse is taken in the carrier, after the shift is cast into it. | |
|
template<typename T, typename K, typename L, typename C> requires dedekind::category::IsAbelianGroup<T, std::plus<T>> | |
| constexpr auto | dedekind::order::image (const Comprehension< 𝔸< std::pair< T, T >, L, C >, Translation< K > > &) |
image of a translation graph = the whole carrier: a translation is a bijection on any additive group (a cyclic one included), hence onto. On ℕ (not a group) x+k misses {0,…,k−1}, so the gate is the group. | |
|
template<IsTotallyOrdered T, typename K, Rel R, typename V, IsOckhamAlgebra L, IsCardinality C> requires (is_order_rel(R) && (dedekind::algebra::IsOrderedAdditiveGroup<T> || std::same_as<T, dedekind::sets::Cardinality>)) | |
| constexpr auto | dedekind::order::image (const Comprehension< 𝔸< std::pair< T, T >, L, C >, ProductRestrict< Translation< K >, Cylinder< R, 1, V > > > &s) |
image of a translation graph restricted to {x⋈p}: the affine pushforward {y⋈p+k}, a halfspace of the same shape. Order comparisons only (equality restricts to a point, not a halfspace), and only where the translation preserves the order: an ordered additive group, or ℕ (a constant cannot be negative there); a wrapping carrier is excluded. | |
|
template<IsTotallyOrdered T, typename K, Rel R, typename V, IsOckhamAlgebra L, IsCardinality CU> requires (is_order_rel(R)) | |
| constexpr Interval< T, L > | dedekind::order::image (const Comprehension< 𝔸< std::pair< T, T >, L, CU >, ProductRestrict< Scaling< K >, Cylinder< R, 1, V > > > &s) |
image of a restricted scaling x↦c·x, c=±1, on {x⋈p}: the ray scaled by c, its sense flipped when c<0. The sense depends on the constant's value, so the result is the value leaf Interval. c=−1 needs a genuine order-reversing additive inverse (IsOrderedAdditiveGroup); any other scale has no ray for an image here and is refused. | |
|
template<typename R> requires dedekind::category::is_right_unique_v<R> && dedekind::category::is_left_total_v<R> | |
| consteval bool | dedekind::order::is_function (const R &) |
is_function(R) for a relation the certificates decide: functional and entire. No overload where they are silent. | |
|
template<typename R> requires dedekind::category::is_left_total_v<R> | |
| consteval bool | dedekind::order::is_entire (const R &) |
is_entire(R): true for a relation certified entire; a codomain bound (alone or with a residue) on the unbounded ℤ-like carrier pulls the domain back to a proper subset. ℕ is not matched for the codomain cases: a lower bound there can be vacuous, so no false non-entire claim is made. | |
|
template<typename T, typename K, Rel R, typename V, typename L, typename C> requires dedekind::algebra::IsOrderedAdditiveGroup<T> | |
| consteval bool | dedekind::order::is_entire (const Comprehension< 𝔸< std::pair< T, T >, L, C >, ProductRestrict< Translation< K >, Cylinder< R, 2, V > > > &) |
|
template<typename T, typename K, Rel R, typename V, typename M, typename W, typename L, typename C> requires dedekind::algebra::IsOrderedAdditiveGroup<T> | |
| consteval bool | dedekind::order::is_entire (const Comprehension< 𝔸< std::pair< T, T >, L, C >, ProductRestrict< Translation< K >, RelAnd< Cylinder< R, 2, V >, Residue< 2, M, W > > > > &) |
|
template<typename T, typename K, typename V, typename M, typename W, IsOckhamAlgebra L, IsCardinality C> requires (dedekind::algebra::IsOrderedAdditiveGroup<T> && dedekind::sets::IsRingIntegral<T>) | |
| constexpr auto | dedekind::order::argmax (const Comprehension< 𝔸< std::pair< T, T >, L, C >, ProductRestrict< Translation< K >, RelAnd< Cylinder< Rel::Le, 2, V >, Residue< 2, M, W > > > > &s) |
argmax over a partial function: the translation x↦x+k into a codomain bounded above (π_2≤P) and restricted to a residue class (π_2≡W mod M), read off structurally. Gated on an ordered additive group of integers: the domain is unbounded below, so the feasible set is never empty and the read-off is the optimum. | |
|
template<typename T, typename K, IsOckhamAlgebra LG, IsCardinality C, IsOckhamAlgebra L> requires dedekind::algebra::IsOrderedAdditiveGroup<T> | |
| constexpr Interval< T, L > | dedekind::order::preimage (const Comprehension< 𝔸< std::pair< T, T >, LG, C >, Translation< K > > &g, const Interval< T, L > &h) |
preimage of an interval under \(x\mapsto x+k\): both sides moved by −k, strictness kept. Gated on a translation-invariant order. | |
| template<typename T, typename K, IsOckhamAlgebra LG, IsCardinality CU, IsOckhamAlgebra L> | |
| constexpr Interval< T, L > | dedekind::order::preimage (const Comprehension< 𝔸< std::pair< T, T >, LG, CU >, Scaling< K > > &g, const Interval< T, L > &h) |
preimage of an interval under \(x\mapsto c\cdot x\), c=±1: the interval itself, or reflected (each side to the other, negated, strictness kept). c=−1 needs an order-reversing additive inverse. | |
Variables | |
| template<typename S, typename A, typename Op> | |
| constexpr bool | dedekind::category::is_closed_under_v = false |
User-declared closure witness: subobject S of A is closed under operation Op. | |
| template<typename R> | |
| constexpr bool | dedekind::algebra::is_initial_ring_v = false |
Opt-in trait: R is the initial object in the category of (commutative, unital) rings. | |
| template<typename G, typename M> | |
| constexpr bool | dedekind::algebra::is_grothendieck_group_v = false |
Opt-in trait: G is the Grothendieck group of the commutative monoid M. | |
| template<typename V, typename F> | |
| constexpr bool | dedekind::algebra::is_vector_space_v = IsVectorSpace<V, F> |
is_vector_space_v<V, F>: V is an F-vector-space. Concept-based dispatch — fires automatically when IsVectorSpace<V, F> holds (which composes IsModule<V, F> + IsField<F>). Companion to is_module_v in :modules. (#498/#499 trait registry.) | |
| template<typename T, typename Add = std::plus<T>, typename Mult = std::multiplies<T>> | |
| constexpr bool | dedekind::algebra::is_galois_field_v = is_galois_field<T, Add, Mult>::value |
| template<typename T, typename Add = std::plus<T>, typename Mult = std::multiplies<T>> | |
| constexpr std::size_t | dedekind::algebra::galois_order_v = galois_order<T, Add, Mult>::value |
| constexpr 𝔽64 | dedekind::algebra::f64_primitive_α = 𝔽64{static_cast<std::uint8_t>(2)} |
| template<typename T> | |
| constexpr bool | dedekind::algebra::is_translation_invariant_ordered_v |
| template<typename T> | |
| constexpr bool | dedekind::algebra::is_scaling_invariant_ordered_v |
| constexpr auto | dedekind::algebra::embed_𝔹_𝕂3_ |
Canonical embedding 𝔹 ↪ 𝕂3: bool → Ternary. | |
| template<typename M, typename R> | |
| constexpr bool | dedekind::algebra::is_module_v = IsModule<M, R> |
is_module_v<M, R>: M is an R-module. Concept-based dispatch — fires automatically when IsModule<M, R> holds. | |
| constexpr auto | dedekind::algebra::𝕂3 = 𝔸<Ternary, Boole, Finite>{} |
The canonical Kleene universe 𝕂3 = 𝔸<Ternary, Boole, Finite> (the three-valued sibling of 𝔹 = 𝔸<bool>). | |
Files | |
| file | src/main/modules/dedekind/algebra/algebra.cppm |
| Groups ⊂ Rings ⊂ Modules ⊂ Polynomials. | |
| file | src/main/modules/dedekind/algebra/boolean.cppm |
Boolean Starter Package: the algebra on the carrier bool and the canonical embedding 𝔹 ↪ 𝕂3. | |
| file | src/main/modules/dedekind/algebra/division.cppm |
| The Euclidean Engine (Division Rings and Domains). | |
| file | src/main/modules/dedekind/algebra/field.cppm |
| The Rules of Harmony (Groups, Rings, and Fields). | |
| file | src/main/modules/dedekind/algebra/free.cppm |
| Free-algebra constructions — the textbook companion to HSP. | |
| file | src/main/modules/dedekind/algebra/galois.cppm |
| Galois fields (finite fields). | |
| file | src/main/modules/dedekind/algebra/group.cppm |
| The Symmetry of Numbers (ℤ, ℚ*). | |
| file | src/main/modules/dedekind/algebra/halfspace_transport.cppm |
Transport of halfspaces along the additive group: the ordered-group slice of the point-free relational DSL (image / inverse / argmax and the entireness inference). | |
| file | src/main/modules/dedekind/algebra/initial_ring.cppm |
ℤ as a Form — Initial Ring and Grothendieck group of ℕ. | |
| file | src/main/modules/dedekind/algebra/kleene.cppm |
| Kleene starter: the three-valued truth surface 𝕂3 as an algebra on a set (the downstream sibling of the Boolean 𝔹). | |
| file | src/main/modules/dedekind/algebra/magma.cppm |
| The Magma: base rung of the algebra tower (an algebraic set). | |
| file | src/main/modules/dedekind/algebra/modules.cppm |
| The Linear Synthesis (Modules and Vector Spaces). | |
| file | src/main/modules/dedekind/algebra/monoid.cppm |
| The Additive and Multiplicative Monoids (ℕ). | |
| file | src/main/modules/dedekind/algebra/ordered_algebra.cppm |
| Ordered-algebra markers and concepts: carriers whose order is compatible with their group / ring / field structure (#664, #895). | |
| file | src/main/modules/dedekind/algebra/polynomial.cppm |
| The monoid algebra R[M]: polynomials as finitely supported nets over the monomials, and the normal form of a rig's, ring's or field's terms. | |
| file | src/main/modules/dedekind/algebra/quotient.cppm |
HSP structure-preserving operations on algebras — H (quotient, with a relational congruence reading) + P (direct product) + S (subalgebra) carrier-side concepts; their laws and totality are read off the construction in category:total. | |
| file | src/main/modules/dedekind/algebra/ring.cppm |
| The Rules of Harmony (The Semiring Synthesis). | |
| file | src/main/modules/dedekind/algebra/tropical.cppm |
The tropical semiring Tropical<T> = T ∪ {∞}, a dioid. | |
| file | src/main/modules/dedekind/algebra/universal.cppm |
| The universal-algebra (A, F) meta-pattern: carrier + finitary operations. | |
| file | src/main/modules/dedekind/algebra/vectorspace.cppm |
| vector-space concepts + concrete witnesses. | |