|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The normal form of a set term as the algebra of cata: an interval's sides, a stored run list read in place, the boundaries as constants; a meet or join the merge of its legs' steps under ∧ or ∨, a complement their relabelling by ¬. Lazy: nothing is stored, the steps are pulled by the query that reads them.
More...
Public Member Functions | |
| template<typename V> | |
| constexpr SpanSteps< V, L > | operator() (const Interval< V, L > &s) const |
| template<typename V> | |
| constexpr SourceRef< Runs< V, L > > | operator() (const Runs< V, L > &r) const |
| template<typename V> | |
| constexpr SpanSteps< V, L > | operator() (const Ø< V, L > &) const |
| template<typename V, typename C> | |
| constexpr SpanSteps< V, L > | operator() (const 𝔸< V, L, C > &) const |
| template<IsTotallyOrdered V, typename C> | |
| constexpr SpanSteps< V, L > | operator() (const Comprehension< 𝔸< V, L, C >, Point< V > > &c) const |
The point 𝔸 | (π == v) of the set grammar: the interval \([v, v]\), on a chain. | |
|
template<typename V, typename C> requires std::same_as<L, classifier_logic_t<V>> && requires { IdentitySteps<V>{}; } | |
| constexpr IdentitySteps< V > | operator() (const Comprehension< 𝔸< V, L, C >, Identity< V > > &) const |
| χ = id on a finite chain, valued in the chain's own species. | |
| template<IsTotallyOrdered V, typename C, typename K> | |
| Runs< V, L > | steer (const Comprehension< 𝔸< V, L, C >, Pred< K > > &c) const |
A predicate built at run time over a chain: its run list, read in the order fragment (order_fragment), materialised. | |
|
template<typename V, typename C, typename P> requires IsStepSource<decltype(steps(std::declval<const P&>()))> | |
| constexpr auto | operator() (const Comprehension< 𝔸< V, L, C >, P > &c) const |
A set brought into this species (sets::lift_to): its predicate's steps, each value lifted along the dominance. | |
| template<typename A, typename B, IsStepSource RA, IsStepSource RB> | |
| constexpr MergeSteps< RA, RB, detail_runs::And< L > > | operator() (const Meet< A, B > &, RA a, RB b) const |
| template<typename A, typename B, IsStepSource RA, IsStepSource RB> | |
| constexpr MergeSteps< RA, RB, detail_runs::Or< L > > | operator() (const Join< A, B > &, RA a, RB b) const |
| template<typename A, IsStepSource RA> | |
| constexpr RelabelSteps< RA, detail_runs::Rfl< L > > | operator() (const Not< A > &, RA a) const |
| template<typename X, typename... R> | |
| constexpr Opaque | operator() (const X &, const R &...) const |
The normal form of a set term as the algebra of cata: an interval's sides, a stored run list read in place, the boundaries as constants; a meet or join the merge of its legs' steps under ∧ or ∨, a complement their relabelling by ¬. Lazy: nothing is stored, the steps are pulled by the query that reads them.
| L | the species. |