Numeric initialization schedule -- proof internals #
theorem
Complexity.CircuitUnrolling.Serializer.length_indexedGateBlocks_internal
(count width : ℕ)
(blockAt : ℕ → CircuitCode.RawCircuit)
(hlen : ∀ index < count, List.length (blockAt index) = width)
:
theorem
Complexity.CircuitUnrolling.Serializer.getElem_indexedGateBlocks_internal
(count width : ℕ)
(blockAt : ℕ → CircuitCode.RawCircuit)
(hlen : ∀ index < count, List.length (blockAt index) = width)
(blockIndex offset : ℕ)
(hblock : blockIndex < count)
(hoffset : offset < width)
:
theorem
Complexity.CircuitUnrolling.Serializer.length_directInitDataCell_internal
(inputIndex : ℕ)
:
theorem
Complexity.CircuitUnrolling.Serializer.length_directInitStateGates_internal
{k : ℕ}
(tm : TM k)
:
theorem
Complexity.CircuitUnrolling.Serializer.length_directInitInputCellGates_internal
(T n : ℕ)
(hn : n ≤ T + 1)
:
theorem
Complexity.CircuitUnrolling.Serializer.getElem_directInitSchedule_configIndex_internal
{k : ℕ}
(tm : TM k)
(T n : ℕ)
[NeZero n]
(hn : n ≤ T + 1)
(atom : ConfigAtom tm.toNTM T)
:
(directInitSchedule tm T n)[configIndex tm.toNTM T atom] = (initSource tm.toNTM T n n (deterministicInputWires T n) atom).gate