Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::order::Sub< C, L > Struct Template Referenceexport

Sub(C) for an ordered carrier: a subobject reified as a runtime interval value. Bounds are C values with ±∞ (unbounded) flags and an empty flag; the convex families coerce in via the converting constructors below (which also are the 𝔓 gate — no constructor ⇒ no Sub(C)). Folds onto SetExpr (so it is itself a first-class IsSubobject / IsSet) and is std::regular, so Set<Sub,…> is an IsSet and Sub values are usable in generic set APIs. More...

Inheritance diagram for dedekind::order::Sub< C, L >:
Collaboration diagram for dedekind::order::Sub< C, L >:

Public Member Functions

constexpr Sub (const dedekind::sets::Ø< C, L > &)
template<typename Card>
constexpr Sub (const dedekind::sets::𝔸< C, L, Card > &)
constexpr Sub (const Singleton< C, L > &s)
constexpr Sub (const Interval< C, L > &iv)
constexpr L::Ω operator() (const C &x) const
 χ: is x in this interval?
constexpr bool operator== (const Sub &o) const
 Value equality with canonical emptiness: every empty interval denotes \(\emptyset\) regardless of the (dead) bound fields, so all empties compare equal (and no empty equals a non-empty). Non-empty intervals compare fieldwise (bounds already in canonical form). Keeps Sub a proper std::regular value whose == matches its extension.
Public Member Functions inherited from dedekind::sets::SetExpr< Sub< C, Boole >, C, Boole >
constexpr C ι (const Member &m) const

Friends

constexpr L::Ω operator<= (const Sub &a, const Sub &b)
 \(a \subseteq b\) — homogeneous interval nesting (the #835 endpoint comparison on the canonical runtime bounds). A hidden friend so it reads the private state; \(\emptyset \subseteq X\); a non-empty interval is no subset of ∅; otherwise a's ends sit inside b's.

Additional Inherited Members

Public Types inherited from dedekind::sets::SetExpr< Sub< C, Boole >, C, Boole >
using Domain
using Codomain
using logic_species

Detailed Description

template<IsTotallyOrdered C, IsOckhamAlgebra L = Boole>
struct dedekind::order::Sub< C, L >

Sub(C) for an ordered carrier: a subobject reified as a runtime interval value. Bounds are C values with ±∞ (unbounded) flags and an empty flag; the convex families coerce in via the converting constructors below (which also are the 𝔓 gate — no constructor ⇒ no Sub(C)). Folds onto SetExpr (so it is itself a first-class IsSubobject / IsSet) and is std::regular, so Set<Sub,…> is an IsSet and Sub values are usable in generic set APIs.

Template Parameters
Cthe carrier, a registered chain.
Lthe species.

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