|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The slot algebra: the slots a term or a relational predicate mentions, as a bit mask (bit i for π_i, bit 0 for the unary π). A node mentions the union of its legs' slots; a predicate the grammar does not know mentions every slot, so no certificate reads more into it than it says.
More...
Public Member Functions | |
| template<IsRingIntegral auto I> | |
| constexpr std::integral_constant< unsigned,(1u<< static_cast< unsigned >(I))> | operator() (Projection< I >) const |
| template<typename K> | |
| constexpr std::integral_constant< unsigned, 0u > | operator() (const Const< K > &) const |
| template<typename Leaf> | |
| constexpr std::integral_constant< unsigned, ~0u > | operator() (const Leaf &) const |
| template<typename Node, typename... R> | |
| constexpr std::integral_constant< unsigned,(R::value|...|0u)> | operator() (const Node &, R...) const |
The slot algebra: the slots a term or a relational predicate mentions, as a bit mask (bit i for π_i, bit 0 for the unary π). A node mentions the union of its legs' slots; a predicate the grammar does not know mentions every slot, so no certificate reads more into it than it says.