|
| virtual value_type | zero () const override |
| | Return the additive identity \(\mathbb{0}\).
|
| virtual value_type | one () const override |
| | Return the multiplicative identity \(\mathbb{1}\).
|
| virtual value_type | plus (const std::vector< value_type > &v) const override |
| | Apply the additive operation to a list of values.
|
| virtual value_type | times (const std::vector< value_type > &v) const override |
| | Apply the multiplicative operation to a list of values.
|
| virtual value_type | monus (value_type x, value_type y) const override |
| | Apply the monus (m-semiring difference) operation.
|
| virtual value_type | delta (value_type x) const override |
| | Apply the \(\delta\) operator.
|
| virtual bool | absorptive () const override |
| | Return true if this semiring is absorptive ( \(\mathbb{1} \oplus a = \mathbb{1}\) for all \(a\)).
|
| virtual bool | compatibleWithBooleanRewrite () const override |
| | The identity map BoolFunc(X) →+* Bool (evaluating a free Boolean function at a valuation) is an m-semiring homomorphism, so the safe-query Boolean rewrite preserves evaluation results in this semiring.
|
| value_type | parse_leaf (const char *v) const |
| virtual value_type | cmp (value_type s1, ComparisonOperator op, value_type s2) const |
| | Evaluate a comparison gate.
|
| virtual value_type | semimod (value_type x, value_type s) const |
| | Apply a semimodule scalar multiplication.
|
| virtual value_type | agg (AggregationOperator op, const std::vector< value_type > &s) |
| | Evaluate an aggregation gate.
|
| virtual value_type | value (const std::string &s) const |
| | Interpret a literal string as a semiring value.
|
| virtual | ~Semiring ()=default |
| virtual bool | certifying () const |
| | Whether this semiring builds certified exclusive enumerations (see the three hooks below).
|
| virtual bool | independent_literal (const value_type &) const |
| | Whether v is an independent literal for certification purposes: a base Bernoulli variable (or a constant), so that distinct literals have disjoint supports and an AND over them is decomposable.
|
| virtual value_type | certified_world_term (const std::vector< value_type > &, const std::vector< value_type > &) const |
| | Build one complete world term: the conjunction of the present literals and the negations of the missing literals, certified decomposable.
|
| virtual value_type | certified_exclusive_plus (const std::vector< value_type > &) const |
| | Build the disjunction of pairwise-exclusive disjuncts, certified deterministic.
|
The Boolean semiring over bool.
Provides the standard Boolean interpretation of provenance circuits.
Definition at line 40 of file Boolean.h.
| virtual bool semiring::Boolean::absorptive |
( |
| ) |
const |
|
inlineoverridevirtual |
Return true if this semiring is absorptive ( \(\mathbb{1} \oplus a = \mathbb{1}\) for all \(a\)).
When true, the circuit evaluator and HAVING-semantics machinery may exploit the resulting idempotency ( \(a \oplus a = a\), implied by absorptivity) to deduplicate children of plus gates and to short-circuit over the multiplicative identity.
- Returns
false by default; override to return true.
Reimplemented from semiring::Semiring< bool >.
Definition at line 67 of file Boolean.h.
| virtual bool semiring::Boolean::compatibleWithBooleanRewrite |
( |
| ) |
const |
|
inlineoverridevirtual |
The identity map BoolFunc(X) →+* Bool (evaluating a free Boolean function at a valuation) is an m-semiring homomorphism, so the safe-query Boolean rewrite preserves evaluation results in this semiring.
Lean: Provenance.Semirings.Bool.homomorphism_to_BoolFunc and Bool.homomorphism_from_BoolFunc (provenance-lean/Provenance/Semirings/Bool.lean).
Reimplemented from semiring::Semiring< bool >.
Definition at line 80 of file Boolean.h.