15 template <
typename ValueSet>
16 typename ValueSet::value_t
18 const typename ValueSet::value_t& lhs,
19 const typename ValueSet::value_t& rhs)
21 return vs.infiltrate(lhs, rhs);
29 template <
typename ValueSetLhs,
typename ValueSetRhs,
34 auto join_elts = join<ValueSetLhs, ValueSetRhs>(lhs, rhs);
35 return {std::get<0>(join_elts),
37 std::get<1>(join_elts),
38 std::get<2>(join_elts))};
53 template <
typename ExpSetLhs,
typename ExpSetRhs>
57 return infiltrate_value<ExpSetLhs, ExpSetRhs>(lhs, rhs);
71 template <
typename SetLhs,
typename SetRhs>
75 return infiltrate_value<SetLhs, SetRhs>(lhs, rhs);
Value infiltrate_value(const Value &lhs, const Value &rhs)
auto infiltrate(const A1 &a1, const A2 &a2) -> tuple_automaton< decltype(join_automata(a1, a2)), A1, A2 >
The (accessible part of the) infiltration product.
expression infiltrate_expression(const expression &lhs, const expression &rhs)
Bridge (infiltrate).
value_impl< detail::expression_tag > expression
polynomial infiltrate_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (infiltrate).