Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.Transition.Step.Internal.Space.Common

Common packed-step width helpers #

This module supplies the shared list-trajectory and position-limit certificates used to assemble the auxiliary-space proof for direct packed-step generation.

The complete step schedule is the formula frontier followed by one packed copy for every configuration atom.

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.seqList_ofFn_spaceBoundByWidthAt_internal {n : } (count : ) (routineAt : Fin countBinaryRoutine n) (trajectory : BinaryValues n) {initialSpace : } {values : BinaryValues n} {width : } (hzero : trajectory 0 = values) (hspace : ∀ (index : Fin count), (routineAt index).SpaceBoundByWidthAt initialSpace (trajectory index) width) (hstep : ∀ (index : Fin count) (inputLength : ), (routineAt index).effect (trajectory (↑index) inputLength) = trajectory (index + 1) inputLength) :
BinaryRoutine.SeqListSpaceBoundByWidthAt (List.ofFn routineAt) initialSpace values width

A finite family of routines has a sequential width certificate when each routine is certified along an explicit trajectory and its effect advances that trajectory by one step.

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.setStepPositionLimit_spaceBoundByWidthAt_internal (extra : ) {initialSpace : } {values : BinaryValues WorkCount} {width : } (hvalues : ∀ (inputLength : ) (index : Fin WorkCount), values inputLength index width inputLength) (hresult : ∀ (inputLength : ), values inputLength Work.horizon + extra width inputLength) :
(setStepPositionLimit extra).SpaceBoundByWidthAt initialSpace values width

Replacing the outer position limit by horizon + extra preserves a common width bound when the input vector and the replacement value fit that width.