Bounded-degree circuit consistency polynomials #
In characteristic two, 1 + w + rhs is the indicator of Boolean gate
consistency. Input-copy routing bounds the uses of external variables as well
as gate variables. The output literal is included explicitly.
A gate's right-hand-side polynomial, with routed input copies.
Equations
- C.gateArith k (MIPRE.SAT.Gate.input i) = MvPolynomial.X (C.inputRef k i)
- C.gateArith k (MIPRE.SAT.Gate.const b) = MvPolynomial.C (MIPRE.LowDegree.ofBool b)
- C.gateArith k (MIPRE.SAT.Gate.and u v) = MvPolynomial.X (Sum.inr u) * MvPolynomial.X (Sum.inr v)
- C.gateArith k (MIPRE.SAT.Gate.or u v) = 1 - (1 - MvPolynomial.X (Sum.inr u)) * (1 - MvPolynomial.X (Sum.inr v))
- C.gateArith k (MIPRE.SAT.Gate.not u) = 1 - MvPolynomial.X (Sum.inr u)
Instances For
The consistency factor for gate k.
Equations
- C.consistencyFactor k = 1 + MvPolynomial.X (Sum.inr k) + C.gateArith k (C.gates.getD k (MIPRE.SAT.Gate.const false))
Instances For
All gate-consistency factors, together with the output literal.
Equations
- C.routedArith = (∏ k ∈ Finset.range C.size, C.consistencyFactor k) * MvPolynomial.X (Sum.inr (C.size - 1))
Instances For
Contribution from an external-input copy link.
Equations
- C.inputWeight k v = match C.gates.getD k (MIPRE.SAT.Gate.const false) with | MIPRE.SAT.Gate.input i => if v = C.inputRef k i then 1 else 0 | x => 0
Instances For
Contribution from ordinary gate references, counting repeated references.
Equations
- MIPRE.SAT.Circuit.refWeight g (Sum.inl val) = 0
- MIPRE.SAT.Circuit.refWeight g (Sum.inr j) = List.count j g.refs
Instances For
Copy routing contributes at most one occurrence of any variable.
A degree-five bound for the characteristic-two construction, stronger than the degree-six bound required by the PCP interface.
Boolean evaluation of a gate's polynomial.
In characteristic two, the factor is exactly the Boolean consistency indicator.
The polynomial is one precisely on consistent accepting Boolean assignments.
Every Boolean assignment gives a Boolean field value, including rejected ones.