|
template<typename... X>
requires requires(const A& l, const B& r, const X&... x) { l(x...); r(x...); } |
| constexpr auto | operator() (const X &... x) const |
| | Evaluate the meet at x, through the π_1 / π_2 accessors (operand storage touched in one place). With a logic_species the combination is that logic's AND (honouring Kleene / Heyting Ω); for plain bool-returning callables (comprehension lambdas) it is the bare &&.
|
◆ operator()()
template<typename A, typename B>
template<typename... X>
requires requires(const A& l, const B& r, const X&... x) { l(x...); r(x...); }
Evaluate the meet at x, through the π_1 / π_2 accessors (operand storage touched in one place). With a logic_species the combination is that logic's AND (honouring Kleene / Heyting Ω); for plain bool-returning callables (comprehension lambdas) it is the bare &&.
- Note
- LAYERING: the node stays LATTICE ALGEBRA only; the Set-specific subobject lift (
Member / ι / IsSet) lives DOWNSTREAM in sets.
-
The
logic_species branch feeds operand results straight to L::AND, so it assumes operands return the RAW L::Ω. The :sets surface always does (membership is lift_logic<L>, which yields L::Ω, never a Truth<L> wrapper), so this is sound there. A callable whose codomain is Truth<L> would need unwrapping first; that path is not reached through sets.
The documentation for this struct was generated from the following file: