18#ifndef PROVSQL_HAVING_SEMANTICS_HPP
19#define PROVSQL_HAVING_SEMANTICS_HPP
21#include <unordered_map>
39 std::unordered_map<gate_t, std::string> &mapping
53 std::unordered_map<gate_t, unsigned> &mapping
67 std::unordered_map<gate_t, semiring::why_provenance_t> &mapping
83 std::unordered_map<gate_t, gate_t> &mapping
97 std::unordered_map<gate_t, bool> &mapping
Boolean-expression (lineage formula) semiring.
Boolean provenance circuit with support for knowledge compilation.
gate_t
Strongly-typed gate identifier.
Template implementation of GenericCircuit::evaluate().
Why-provenance semiring (set of witness sets).
In-memory provenance circuit with semiring-generic evaluation.
Provenance-as-Boolean-circuit semiring.
void provsql_try_having_why(GenericCircuit &c, gate_t g, std::unordered_map< gate_t, semiring::why_provenance_t > &mapping)
Evaluate the HAVING sub-circuit at g over the Why-provenance semiring.
void provsql_try_having_counting(GenericCircuit &c, gate_t g, std::unordered_map< gate_t, unsigned > &mapping)
Evaluate the HAVING sub-circuit at g over the Counting semiring.
void provsql_try_having_boolean(GenericCircuit &c, gate_t g, std::unordered_map< gate_t, bool > &mapping)
Evaluate the HAVING sub-circuit at g over the Boolean semiring.
void provsql_try_having_formula(GenericCircuit &c, gate_t g, std::unordered_map< gate_t, std::string > &mapping)
Evaluate the HAVING sub-circuit at g over the Formula semiring.
void provsql_try_having_boolexpr(GenericCircuit &c, semiring::BoolExpr &be, gate_t g, std::unordered_map< gate_t, gate_t > &mapping)
Evaluate the HAVING sub-circuit at g over the BoolExpr semiring.