Arithmetic leaves for proof-carrying binary routines -- proof internals #
theorem
Complexity.BinaryRoutine.evalPolynomial_sound_internal
{n : ℕ}
(inputIdx resultIdx scratchIdx mulCounterIdx addCounterIdx : Fin n)
(p : Polynomial ℕ)
:
(evalPolynomial inputIdx resultIdx scratchIdx mulCounterIdx addCounterIdx p).Sound
theorem
Complexity.BinaryRoutine.emitNatCode_sound_internal
{n : ℕ}
(counterIdx valueIdx : Fin n)
:
(emitNatCode counterIdx valueIdx).Sound
theorem
Complexity.BinaryRoutine.emitRawGate_sound_internal
{n : ℕ}
(op : AndOrOp)
(negated₀ negated₁ : Bool)
(emitCounterIdx input₀Idx input₁Idx : Fin n)
:
(emitRawGate op negated₀ negated₁ emitCounterIdx input₀Idx input₁Idx).Sound