Finite anti-checkers -- proof internals #
theorem
Complexity.AntiChecker.samplesFunction_ofInputs_iff_agreesOn_internal
{arity threshold : ℕ}
[NeZero arity]
(target : BitString arity → Bool)
(inputs : List (BitString arity))
{internalGates : ℕ}
(circuit : Circuit Basis.andOr2 arity 1 internalGates)
:
((SuccinctMCSP.Instance.ofInputs threshold target inputs).SamplesFunction
fun (input : BitString (SuccinctMCSP.Instance.ofInputs threshold target inputs).arity) => circuit.eval input 0) ↔ AgreesOn circuit target inputs
theorem
Complexity.AntiChecker.isFor_iff_not_hasCircuitAtMost_internal
{arity threshold : ℕ}
[NeZero arity]
(target : BitString arity → Bool)
(inputs : List (BitString arity))
:
IsFor target threshold inputs ↔ ¬(SuccinctMCSP.Instance.ofInputs threshold target inputs).HasCircuitAtMost
theorem
Complexity.AntiChecker.encode_not_mem_iff_isFor_internal
{arity threshold : ℕ}
[NeZero arity]
(target : BitString arity → Bool)
(inputs : List (BitString arity))
:
(SuccinctMCSP.Instance.ofInputs threshold target inputs).encode ∉ SuccinctMCSP ↔ IsFor target threshold inputs