Evaluation lemmas for circuit cuts #
theorem
Cslib.Circuits.Program.evalCut_not_mem
{σ : Signature}
{n g : ℕ}
{U : Type u_1}
(p : Program σ n g)
(cut : Finset (Fin g))
(I : Interpretation σ U)
(x : Fin n → U)
(guess : ↥cut → U)
(j : Fin g)
(hj : j ∉ cut)
:
An unselected gate is evaluated from its argument wires.
theorem
Cslib.Circuits.Program.evalCut_eq_eval_of_agree
{σ : Signature}
{n g : ℕ}
{U : Type u_1}
(p : Program σ n g)
(cut : Finset (Fin g))
(I : Interpretation σ U)
(x : Fin n → U)
(guess : ↥cut → U)
(agree : ∀ (j : ↥cut), guess j = p.eval I x ↑j)
:
Supplying the actual values at the cut preserves the evaluation everywhere.