|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The injected leaf-combiner (the reducer's Combine policy) for the subobject lattice: at an order-incomparable residual, hand the two set leaves to the carrier's domain ∧ / ∨ on their runtime data and let the reducer fold the result again. Two plain sets over one universe combine through their predicates (structured_and / structured_or via ADL, elevated back to a set); a value leaf (an Interval) combines directly. Each leg is present only where the carrier actually combines the pair, so elsewhere the residual stays a Meet / Join node.
More...
Static Public Member Functions | |
|
template<typename T, typename L, typename C, typename PA, typename PB> requires requires(const PA& a, const PB& b) { structured_and(a, b); } | |
| static constexpr auto | meet_value (const Comprehension< 𝔸< T, L, C >, PA > &a, const Comprehension< 𝔸< T, L, C >, PB > &b) |
|
template<typename T, typename L, typename C, typename PA, typename PB> requires requires(const PA& a, const PB& b) { structured_or(a, b); } | |
| static constexpr auto | join_value (const Comprehension< 𝔸< T, L, C >, PA > &a, const Comprehension< 𝔸< T, L, C >, PB > &b) |
|
template<typename RA, typename RB> requires requires(const RA& a, const RB& b) { structured_and(a, b); } | |
| static constexpr auto | meet_value (const RA &a, const RB &b) |
|
template<typename RA, typename RB> requires requires(const RA& a, const RB& b) { structured_or(a, b); } | |
| static constexpr auto | join_value (const RA &a, const RB &b) |
The injected leaf-combiner (the reducer's Combine policy) for the subobject lattice: at an order-incomparable residual, hand the two set leaves to the carrier's domain ∧ / ∨ on their runtime data and let the reducer fold the result again. Two plain sets over one universe combine through their predicates (structured_and / structured_or via ADL, elevated back to a set); a value leaf (an Interval) combines directly. Each leg is present only where the carrier actually combines the pair, so elsewhere the residual stays a Meet / Join node.