Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::HasETCSAxioms Concept Referenceexport

Diaconescu's classical direction (#698 Slice 9 review). More...

Concept definition

template<typename T>
ETCS axiom 10 witness: power-object lattice completeness.
Definition etcs.cppm:306
ETCS axiom 1 witness: composition is available for ambient arrows.
Definition etcs.cppm:137
ETCS axiom 2 witness: identity arrow acts neutrally on A.
Definition etcs.cppm:142
ETCS axiom 3 witness: terminal object 1 is present.
Definition etcs.cppm:148
ETCS axiom 4 witness: membership is evaluation through the carrier-as-characteristic-morphism....
Definition etcs.cppm:156
ETCS axiom 5 witness: products exist for ambient species A.
Definition etcs.cppm:160
ETCS axiom 6 witness: exponentials B^A exist (here A^A witness). Uses the named IsArrowExponential re...
Definition etcs.cppm:167
ETCS axiom 7 witness: every set is represented by a subobject.
Definition etcs.cppm:171
ETCS axiom 8 witness: initial object 0 is present.
Definition etcs.cppm:202
ETCS axiom 9 witness: arithmetic species atlas exposes ℕ witness.
Definition etcs.cppm:206
Diaconescu's classical direction (#698 Slice 9 review).
Definition etcs.cppm:362
The categorical witness of a monomorphism ι: S ↣ A — a characteristic morphism χ: A → Ω together with...
Definition topoi.cppm:367

Detailed Description

Diaconescu's classical direction (#698 Slice 9 review).

etcs__Axiom_10_Diaconescu_Note

The standard textbook ETCS Axiom 10 is the Axiom of Choice: every epimorphism splits. Diaconescu (1975) showed that in a topos, AC implies the topos is Boolean (classical internal logic). It is an implication, not a bi-implication: a Boolean topos need not satisfy AC (see etcs__Choice_And_Decidability). The codebase commits to the classifier's side only:

@c L @c = @c Boole @c ⟹ Sub(A) Boolean   (Diaconescu's

classical-Ω direction) L = Kleene ⟹ Sub(A) Heyting (constructive-collapse path)

The Boolean refinement is exposed via the parallel :lattice::IsBooleanSubobjectLattice concept rather than baked into Axiom 10's body. An earlier attempt to gate the conditional inside HasAxiom10PowerObjectLattice triggered instantiation of the set complement, which cascades into default-construction of the capturing-lambda Predicates produced by the comprehension DSL and fails. The parallel-track design avoids that ODR-use cascade; the static asserts in :sets carrier files pin the L-parametric route type-checked at the carrier sites without inducing the cascade.

The reverse direction (Boolean Sub(A) ⟹ full AC) is the splitting-epi witness, which is genuinely aspirational and not yet encoded. The header table's (asp.) marker on row 10 names this remaining gap. Tracked as a separate concept (e.g.\ HasAxiom10AxiomOfChoiceFull) if and when the project commits to it.

Aggregates the 10 ETCS axiom witnesses over a carrier T.

Each axiom is its own concept-level witness (HasAxiom1Composition through HasAxiom10PowerObjectLattice); this concept conjoins them into a single gate. Used by IsSet below as the axioms half of the ETCS set predicate (the other half being the canonical CCC witness over the ambient species).