Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Serializer.Transition.Step.Internal

Numeric packed-step schedules -- proof internals #

theorem Complexity.CircuitUnrolling.Serializer.length_stepFormulaBlock_internal (caseCount stateCount workCount T configBase choiceWire available haltStateIndex : ) (kindAt atomStateIndexAt atomTapeIndexAt atomPositionAt atomSymbolIndexAt : ) (selectedAt : Bool) (choiceAt : Bool) (caseStateIndexAt inputSymbolIndexAt outputSymbolIndexAt : ) (workSymbolIndexAt : ) (atomIndex : ) (hindex : atomIndex < stepAtomCount stateCount workCount T) :
List.length (stepFormulaBlock caseCount stateCount workCount T configBase choiceWire available haltStateIndex kindAt atomStateIndexAt atomTapeIndexAt atomPositionAt atomSymbolIndexAt selectedAt choiceAt caseStateIndexAt inputSymbolIndexAt outputSymbolIndexAt workSymbolIndexAt atomIndex) = stepFormulaSizeAt caseCount stateCount workCount T kindAt selectedAt choiceAt atomIndex
theorem Complexity.CircuitUnrolling.Serializer.length_stepFormulaGates_internal (caseCount stateCount workCount T configBase choiceWire available haltStateIndex : ) (kindAt atomStateIndexAt atomTapeIndexAt atomPositionAt atomSymbolIndexAt : ) (selectedAt : Bool) (choiceAt : Bool) (caseStateIndexAt inputSymbolIndexAt outputSymbolIndexAt : ) (workSymbolIndexAt : ) :
List.length (stepFormulaGates caseCount stateCount workCount T configBase choiceWire available haltStateIndex kindAt atomStateIndexAt atomTapeIndexAt atomPositionAt atomSymbolIndexAt selectedAt choiceAt caseStateIndexAt inputSymbolIndexAt outputSymbolIndexAt workSymbolIndexAt) = prefixSize (stepFormulaSizeAt caseCount stateCount workCount T kindAt selectedAt choiceAt) (stepAtomCount stateCount workCount T)
theorem Complexity.CircuitUnrolling.Serializer.length_stepPackedCopies_internal (caseCount stateCount workCount T available : ) (kindAt : ) (selectedAt : Bool) (choiceAt : Bool) :
List.length (stepPackedCopies caseCount stateCount workCount T available kindAt selectedAt choiceAt) = stepAtomCount stateCount workCount T
theorem Complexity.CircuitUnrolling.Serializer.getElem_stepPackedCopies_internal (caseCount stateCount workCount T available : ) (kindAt : ) (selectedAt : Bool) (choiceAt : Bool) (atomIndex : Fin (stepAtomCount stateCount workCount T)) :
(stepPackedCopies caseCount stateCount workCount T available kindAt selectedAt choiceAt)[atomIndex] = stepPackedCopyGate caseCount stateCount workCount T available kindAt selectedAt choiceAt atomIndex
theorem Complexity.CircuitUnrolling.Serializer.length_stepSchedule_internal (caseCount stateCount workCount T configBase choiceWire available haltStateIndex : ) (kindAt atomStateIndexAt atomTapeIndexAt atomPositionAt atomSymbolIndexAt : ) (selectedAt : Bool) (choiceAt : Bool) (caseStateIndexAt inputSymbolIndexAt outputSymbolIndexAt : ) (workSymbolIndexAt : ) :
List.length (stepSchedule caseCount stateCount workCount T configBase choiceWire available haltStateIndex kindAt atomStateIndexAt atomTapeIndexAt atomPositionAt atomSymbolIndexAt selectedAt choiceAt caseStateIndexAt inputSymbolIndexAt outputSymbolIndexAt workSymbolIndexAt) = stepScheduleSize caseCount stateCount workCount T kindAt selectedAt choiceAt
theorem Complexity.CircuitUnrolling.Serializer.stepOutputBase_eq_stepScheduleOutputBase_internal {k : } (tm : NTM k) (T configBase choiceWire available : ) :
stepOutputBase tm T configBase choiceWire available = stepScheduleOutputBase (transitionCases tm).length (Fintype.card tm.Q) k T available (stepAtomKindAt tm T) (stepAtomEffectSelectedAt tm T) (effectCaseChoiceAt tm)
theorem Complexity.CircuitUnrolling.Serializer.stepScheduleOutputRef_configIndex_internal {k : } (tm : NTM k) (T configBase choiceWire available : ) (atom : ConfigAtom tm T) :
stepScheduleOutputRef (transitionCases tm).length (Fintype.card tm.Q) k T available (stepAtomKindAt tm T) (stepAtomEffectSelectedAt tm T) (effectCaseChoiceAt tm) (configIndex tm T atom) = configWire tm T (stepOutputBase tm T configBase choiceWire available) atom