Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::algebra::is_translation_invariant_ordered< T > Struct Template Referenceexport

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...

Inheritance diagram for dedekind::algebra::is_translation_invariant_ordered< T >:
Collaboration diagram for dedekind::algebra::is_translation_invariant_ordered< T >:

Detailed Description

template<typename T>
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.

Defaults to false. Carriers opt in via specialisation when their arithmetic is not cyclic — i.e. they saturate or escalate (e.g. to \(\pm \aleph_0\) sentinels) rather than wrapping at the representable bound. Saturation preserves the partial order \(\le\) under translation (if a <= b then a+c <= b+c, including the case where both saturate to the same sentinel); wrapping does not (the modular wrap reverses the order at the boundary).

Note
The structural fact this marker discriminates is not boundedness (every C++ carrier is bounded), but cyclicity. A saturating carrier is bounded but non-cyclic: arithmetic past the bound escalates to a distinguishable sentinel ( \(\pm \aleph_0\) or NaZ for indeterminate forms in the project's SignedCardinality variant), keeping translation-invariance honest including at the boundary. Modular carriers (unsigned int, the finite sets::SignedExtensionalCardinal) wrap, reversing order; they fail the marker by default.
The project put deliberate effort into the saturating variants (sets::SignedCardinality, sets::Cardinality) precisely so they would be bona-fide proxies for \(\mathbb{Z}\) / \(\mathbb{N}\) rather than cyclic (cf. cardinality.cppm:878-967 — "@c SignedCardinality is the signed counterpart of @c Cardinality (the ℕ ∪ ℵ_0 variant): ... saturating ... not periodic ... the library's bona-fide proxy for ℤ modulo physical limits"). The marker opt-in below honours that effort: it is specialised for SignedCardinality, not for the cyclic finite-fragment SignedExtensionalCardinal.

The documentation for this struct was generated from the following file: