|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The Discrete Infrastructure (Points as Arrows). More...

Classes | |
| struct | dedekind::category::ConstantMorphism< A, B > |
| The Constant Morphism f: A -> B. More... | |
| struct | dedekind::category::Equals< A > |
The equality test against one value as an arrow \(A \to 2\), the characteristic map of the point x: the condition a guard asks of a state (the Jlt paper's Listing 3, until(equals(1), step)). More... | |
| struct | dedekind::category::DiscreteCategory< T > |
| DiscreteCategory realization using the Identity Morphism. Lifts a species T into a category where every arrow is the Identity<T>. More... | |
Namespaces | |
| namespace | dedekind::category |
Concepts | |
| concept | dedekind::category::IsDiscreteCategory |
Typedefs | |
| template<typename X, typename Y = X> | |
| using | dedekind::category::Constant = ConstantMorphism<X, Y> |
| The constant arrow by its short name, the paper's spelling. | |
| using | dedekind::category::IntCat = DiscreteCategory<int> |
Functions | |
| template<typename A, typename B> | |
| constexpr auto | dedekind::category::constant (B y) |
The constant arrow's factory, beside id<A>() and endo<A>(f): the domain named, the codomain the value's. | |
| template<std::equality_comparable A> | |
| constexpr Equals< A > | dedekind::category::equals (A x) |
| The equality test's factory. | |
Variables | |
| template<typename A, typename B, typename Op> | |
| constexpr bool | dedekind::category::is_associative_v< ConstantMorphism< A, B >, Op > = true |
| template<typename A, typename B> | |
| constexpr bool | dedekind::category::is_constant_arrow_v< ConstantMorphism< A, B > > = true |
The Discrete Infrastructure (Points as Arrows).
@partition :discrete
This partition reifies the simplest possible categorical structure: the Discrete Category, where the only morphisms are identities. In our structuralist framework, this provides the "Point" (1) and the "Empty" (0) objects, as well as the means to treat any species element as a constant mapping.
While Level 0 (:morphism) provides the syntax of the Arrow, Level 0.25 provides the "Discrete Points" that populate the objects:
By establishing the Discrete Floor here, we enable Level 0.5 (:limit) to define universal properties (Initiality/Terminality) and Level 1 (:total) to define algebraic identities (Zero/Unit) without circular dependencies.
IsDiscreteCategory.