|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Density and completeness profiles of orders. More...
#include <concepts>#include <functional>import dedekind.order:total;import dedekind.sets;import dedekind.category;
Namespaces | |
| namespace | dedekind::category |
| namespace | dedekind::sets |
Concepts | |
| concept | dedekind::order::IsSuccessor |
| The algebraic S: T -> T mapping via the Unit element. | |
| concept | dedekind::order::IsArchimedean |
| The scale axiom: Every element can be 'reached' by the Successor. FIXME: misnamed. "Every element reached by the successor" is Peano's and Dedekind's generation of the naturals from one element and a step; the Archimedean property is another axiom, that for x, y > 0 some n has n x > y [1]. Rename to the property it states, and reconcile its algebraic IsSuccessor (x + 1) with the NNO step of dedekind.category (successor, HasNNOStep), which every shipped carrier provides and IsSuccessor's carriers withhold. | |
| concept | dedekind::order::IsDiscrete |
A set where every point is isolated by a step: the carrier provides the NNO steps (successor / predecessor, HasNNOStep), as the machine integers and the ℕ / ℤ proxies do. The step is the honest discreteness signal; the IsSuccessor leg of IsArchimedean is withheld on every shipped carrier and cannot carry the guard. | |
| concept | dedekind::order::IsDense |
| A property where a midpoint always exists (a < c < b). | |
| concept | dedekind::order::IsDividableChain |
| A Totally Ordered species with a partitioning algorithm (/). | |
| concept | dedekind::order::IsDedekindComplete |
| The topological "Soul" of the Continuum (LUB property). | |
Functions | |
|
template<typename C> requires dedekind::order::IsDividableChain<C> | |
| constexpr bool | dedekind::sets::admits (On< C >, EuclideanDivision, bool divisor_is_constant) |
|
template<typename C> requires dedekind::order::IsDividableChain<C> | |
| constexpr bool | dedekind::sets::admits (On< C >, std::modulus<>, bool divisor_is_constant) |
Variables | |
| template<HasNNOStep N> | |
| constexpr bool | dedekind::category::is_monotone_v< Successor< N >, std::less_equal<> > = true |
The step arrows preserve the order of a registered chain, \(x \le y \Rightarrow S(x) \le S(y)\) and likewise for P: the irreducible leaf facts the variance inference starts from. Saturation at a bound is monotone; wrapping is not, and wrapping is the carrier's registered periodicity (is_periodic_v of its +: the unsigned words, ℤ/N), so the fact is read off the algebra, not off the type's name; the chain gate supplies the order. | |
| template<HasNNOStep N> | |
| constexpr bool | dedekind::category::is_monotone_v< Predecessor< N >, std::less_equal<> > = true |
Density and completeness profiles of orders.
@partition :completeness
These concepts classify \emph{how} an ordered carrier fills the gaps between its elements. Together they distinguish the classical ℤ / ℚ / ℝ tower:
The public concepts exported from this partition are IsSuccessor, IsArchimedean, IsDense, IsDividableChain, and IsDedekindComplete. IsDiscrete is a private helper used inside IsDense; see the declaration for the rationale.
Wikipedia: Archimedean property, Dense order, Dedekind completeness.