Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::order::detail_steps::Steps< L > Struct Template Reference

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

Detailed Description

template<typename L>
struct dedekind::order::detail_steps::Steps< L >

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.

Template Parameters
Lthe species.

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