Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.Transition.Predecessor.Internal

Direct predecessor-head formula generation -- proof internals #

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPredecessorHeadMembers_emitted_internal (stateCount directionCode : ) (values : BinaryValues WorkCount) (hclean : PredecessorHeadClean values) (hhorizon : 0 < values Work.horizon) (htarget : values Work.position values Work.horizon) :
(emitPredecessorHeadMembers stateCount directionCode).emitted values = List.flatMap CircuitCode.RawGate.encode (predecessorHeadMemberGates stateCount (values Work.horizon) (values Work.configBase) (values Work.tapeIndex) (values Work.position) directionCode)
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPredecessorHeadConnectors_emitted_internal (values : BinaryValues WorkCount) (available count : ) (hloop₀ : values Work.loop₀ = 0) (hlimit : values Work.limit₀ = count) (hloop₁ : values Work.loop₁ = 0) (hreference₀ : values Work.reference₀ = 0) (hreference₁ : values Work.reference₁ = 0) (havailable : values Work.available = available + count + 1) (htemporary : values Work.temporary₃ = 2) :
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPredecessorHeadFormula_emitted_internal (stateCount directionCode : ) (values : BinaryValues WorkCount) (hclean : PredecessorHeadClean values) (hhorizon : 0 < values Work.horizon) (htarget : values Work.position values Work.horizon) :
(emitPredecessorHeadFormula stateCount directionCode).emitted values = List.flatMap CircuitCode.RawGate.encode (predecessorHeadFormulaSchedule stateCount (values Work.horizon) (values Work.configBase) (values Work.available) (values Work.tapeIndex) (values Work.position) directionCode)
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPredecessorHeadMembers_requires_internal (stateCount directionCode : ) (values : BinaryValues WorkCount) (hclean : PredecessorHeadClean values) (hhorizon : 0 < values Work.horizon) (htarget : values Work.position values Work.horizon) :
(emitPredecessorHeadMembers stateCount directionCode).requires values

Pointwise all-prefix width certificates #

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitPredecessorHeadFormula_spaceBoundByWidth_internal (stateCount directionCode : ) {initialSpace : } {values : BinaryValues WorkCount} {width : } (hclean : ∀ (inputLength : ), PredecessorHeadClean (values inputLength)) (hhorizon : ∀ (inputLength : ), 0 < values inputLength Work.horizon) (htarget : ∀ (inputLength : ), values inputLength Work.position values inputLength Work.horizon) (hvalues : ∀ (inputLength : ) (index : Fin WorkCount), values inputLength index width inputLength) (hfrontier : ∀ (inputLength : ), values inputLength Work.available + movedHeadPredecessorSize (values inputLength Work.horizon) width inputLength) (hcap : ∀ (inputLength : ), transitionHeadRef stateCount (values inputLength Work.horizon) (values inputLength Work.configBase) (values inputLength Work.tapeIndex) (values inputLength Work.horizon + 1) + values inputLength Work.tapeIndex + values inputLength Work.horizon + 1 + 2 * (values inputLength Work.horizon + 2) width inputLength) :
(emitPredecessorHeadFormula stateCount directionCode).SpaceBoundByWidthAt initialSpace values width