|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The law algebra: a leaf is its declared profile, a node the law engine on its legs' profiles (:posetal, arrow_node); any other node certifies nothing (sound). The second algebra for the same cata: BetaReduction lands in a normal form (a free algebra, so it decides equality), LawAlgebra in a finite domain of profiles (an abstract interpretation, so it certifies, sound, not complete).
More...
Public Member Functions | |
| template<typename A> | |
| constexpr ArrowLaws | operator() (const A &) const |
| template<typename N, typename R0, typename... R> | |
| constexpr ArrowLaws | operator() (const N &, const R0 &, const R &...) const |
| template<typename F, typename G> | |
| constexpr ArrowLaws | operator() (const Compose< F, G > &, const ArrowLaws &f, const ArrowLaws &g) const |
|
template<typename A, typename F, typename B, typename G> requires (IsPairProjection<A, 1> && IsPairProjection<B, 2>) | |
| constexpr ArrowLaws | steer (const Pairing< Compose< A, F >, Compose< B, G > > &t) const |
The defining forms of × and +, recognised before the fold descends (cata's steer): the product (sum) fact on the factors, which the pairing (copairing) rule alone would lose. | |
| template<typename F, typename G, typename X, typename Y> | |
| constexpr ArrowLaws | steer (const Copairing< Compose< F, Injection< 1, X, Y > >, Compose< G, Injection< 2, X, Y > > > &t) const |
| template<typename F, typename G> | |
| constexpr ArrowLaws | operator() (const Pairing< F, G > &, const ArrowLaws &f, const ArrowLaws &g) const |
| template<typename F, typename G> | |
| constexpr ArrowLaws | operator() (const Copairing< F, G > &, const ArrowLaws &f, const ArrowLaws &g) const |
The law algebra: a leaf is its declared profile, a node the law engine on its legs' profiles (:posetal, arrow_node); any other node certifies nothing (sound). The second algebra for the same cata: BetaReduction lands in a normal form (a free algebra, so it decides equality), LawAlgebra in a finite domain of profiles (an abstract interpretation, so it certifies, sound, not complete).
| Op | the order the variances are read under. |