Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.PolynomialOffset.Internal

Polynomial recent-wire offsets -- proof internals #

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.preparePolynomialOffset_spaceBoundByWidth_internal (polynomial : Polynomial ) (extra : ) {initialSpace : } {values : BinaryValues WorkCount} {width : } (hpolynomialCap : ∀ (inputLength : ), 2 * TM.binaryPolynomialValueCap polynomial (values inputLength Work.horizon) width inputLength) (hoffset : ∀ (inputLength : ), Polynomial.eval (values inputLength Work.horizon) polynomial + extra width inputLength) :
(preparePolynomialOffset polynomial extra).SpaceBoundByWidthAt initialSpace values width
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPolynomialRecentGate_spaceBoundByWidth_internal (polynomial : Polynomial ) (extra : ) (op : AndOrOp) (negated₀ negated₁ : Bool) (fixedOffset₁ : ) {initialSpace : } {values : BinaryValues WorkCount} {width : } (hpolynomialCap : ∀ (inputLength : ), 2 * TM.binaryPolynomialValueCap polynomial (values inputLength Work.horizon) width inputLength) (havailable : ∀ (inputLength : ), values inputLength Work.available width inputLength) (hreference₀ : ∀ (inputLength : ), values inputLength Work.reference₀ width inputLength) (hreference₁ : ∀ (inputLength : ), values inputLength Work.reference₁ width inputLength) (hloop : ∀ (inputLength : ), values inputLength Work.loop₃ = 0) (hoffsetAvailable : ∀ (inputLength : ), Polynomial.eval (values inputLength Work.horizon) polynomial + extra values inputLength Work.available) (hfixedOffset₁ : ∀ (inputLength : ), fixedOffset₁ values inputLength Work.available) :
(emitPolynomialRecentGate polynomial extra op negated₀ negated₁ fixedOffset₁).SpaceBoundByWidthAt initialSpace values width
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPolynomialRecentGate_sound_internal (polynomial : Polynomial ) (extra : ) (op : AndOrOp) (negated₀ negated₁ : Bool) (fixedOffset₁ : ) :
(emitPolynomialRecentGate polynomial extra op negated₀ negated₁ fixedOffset₁).Sound
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPolynomialRecentGate_requires_internal (polynomial : Polynomial ) (extra : ) (op : AndOrOp) (negated₀ negated₁ : Bool) (fixedOffset₁ : ) (values : BinaryValues WorkCount) :
(emitPolynomialRecentGate polynomial extra op negated₀ negated₁ fixedOffset₁).requires values values Work.temporary₃ = 0 values Work.polynomialScratch = 0 values Work.multiplyCounter = 0 values Work.addCounter = 0 values Work.copyCounter = 0 values Work.loop₃ = 0 Polynomial.eval (values Work.horizon) polynomial + extra values Work.available fixedOffset₁ values Work.available values Work.emitCounter = 0
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPolynomialRecentGate_emitted_internal (polynomial : Polynomial ) (extra : ) (op : AndOrOp) (negated₀ negated₁ : Bool) (fixedOffset₁ : ) (values : BinaryValues WorkCount) (hloop : values Work.loop₃ = 0) :
(emitPolynomialRecentGate polynomial extra op negated₀ negated₁ fixedOffset₁).emitted values = { op := op, input₀ := values Work.available - (Polynomial.eval (values Work.horizon) polynomial + extra), input₁ := values Work.available - fixedOffset₁, negated₀ := negated₀, negated₁ := negated₁ }.encode