|
|
using | Domain = T |
| | The carrier: 𝔸 is the subobject \(T \hookrightarrow T\).
|
|
using | Codomain = typename L::Ω |
| | The classifier's truth object L::Ω.
|
|
using | cardinality_type = C |
| | The cardinality class of the carrier (Finite for bool, ℵ_0 by default; see default_cardinality_t).
|
|
using | base_set_type = 𝔸<T, L, C> |
|
using | is_universal_boundary = void |
| | Tag read by the boundary-object dispatch (Ø carries its dual).
|
|
using | logic_species = L |
| | The logic species L the classifier is valued in.
|
|
using | is_terminal_object_tag = void |
| | 𝔸 is the terminal object of the subobject poset Sub(U): the top ⊤, classified by the always-true predicate χ_U ≡ ⊤, with the unique arrow S → U from every subobject. Dual to Ø's initiality tag; opts U into :limit's IsTerminalObject (the tag-discovery branch :lattice::LatticeTop already uses). #881.
|
|
|
constexpr T | ι (const Member &m) const |
| | ι: U ↣ T — the canonical identity inclusion. Every member of the universal set is by construction an element of the ambient T; ι unwraps the Member's T-value.
|
|
constexpr auto | operator! () const |
| | The duality ¬⊤ = ⊥: the complement of the universe is Ø.
|
| constexpr L::Ω | operator<= (const 𝔸 &) const |
|
constexpr bool | operator== (const 𝔸 &) const |
| | Two universes over one carrier are equal (the type is the set).
|
template<typename L2, typename C2>
requires (!std::same_as<L2, L> || !std::same_as<C2, C>) |
| constexpr bool | operator== (const 𝔸< T, L2, C2 > &) const |
| | Cross-(L, C) identity: the universe of a carrier T is the universe regardless of logic species or cardinality annotation, so 𝔸<T>{} == r holds when a complement-pair join elevates r to an 𝔸<T,L2,C2> — the same spirit as Ø's cross-carrier equality.
|
|
constexpr L::Ω | operator() (const T &) const |
| | The axiom of total presence: χ(x) = ⊤ for every x.
|
template<typename D = T>
requires IsPairing<D> |
| constexpr L::Ω | operator() (const leg_1_t< D > &, const leg_2_t< D > &) const |
| | χ on the components: over a product carrier the universe is the full relation, r(a, b) = r(⟨a, b⟩) (#1047).
|
|
constexpr L::Ω | contains (const T &v) const |
| | Membership as a named query: 𝔸<T>{}.contains(v) reads more directly than 𝔸<T>{}(v) at listing sites. Returns L::Ω so the contract matches sets::Set::contains.
|
|
constexpr cardinality_type | cardinality () const |
| | The cardinality class as a value (Finite / ℵ_0 tag).
|
|
template<HasSetComplement S> |
| constexpr auto | operator^ (const S &s) const |
| | Symmetric difference with the universe is complement: \(\top \,\triangle\, S = \neg S\) (every x is in ⊤, so it is in exactly one of the two iff it is not in S). ~ is the SET complement (a set object, found by ADL at instantiation); ! would be the predicate complement, an arrow.
|
template<typename T, IsOckhamAlgebra L = Boole, IsCardinality C = default_cardinality_t<T>>
struct dedekind::sequences::𝔸< T, L, C >
The universal set over the carrier T: the terminal object ⊤ of Sub(T), the reified type constraint.
Intentional but decidable: the rule "x ∈ 𝔸" always returns True. The topos-theoretic reading is direct: 𝔸 is the universal (top) set over carrier T; the subobject classifier is L::Ω. One name for the type and the value, symmetric with Ø: the value spelling is 𝔸<T>{} (paper Listing 6 reads auto 𝔹 = 𝔸<bool>{}), the type spelling 𝔸<T> (so IsSetObject<𝔸<T>>, no decltype).
- Template Parameters
-
| T | the carrier (unconstrained on purpose: a non-regular carrier makes IsLSet / IsSet false rather than the name ill-formed). |
| L | the logic species the classifier is valued in (IsOckhamAlgebra). |
| C | the cardinality class (IsCardinality); defaults to default_cardinality_t. |
template<typename T, IsOckhamAlgebra L = Boole, IsCardinality C = default_cardinality_t<T>>
template<typename S>
requires (!requires { typename S::T; }) && (!requires { typename S::is_variable; })
| L::Ω operator<= |
( |
const S & | , |
|
|
const 𝔸< T, L, C > & | ) |
|
friend |
boundaries__Lattice_Axiom_2
Everything is a part of the universe 𝔸. Constraint: Exclude Variables (which have a member T) to let symbolic expressions handle their own comparisons.