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