TM-to-RAM step layout -- proof internals #
theorem
Complexity.RAM.TMConfig.Step.scratch_lt_registerLimit_internal
(n bound : ℕ)
:
zeroReg n bound < registerLimit n bound ∧ oneReg n bound < registerLimit n bound ∧ stateScratchReg n bound < registerLimit n bound ∧ addressReg n bound < registerLimit n bound ∧ valueReg n bound < registerLimit n bound ∧ ∀ (tape : Fin (n + 2)), symbolReg n bound tape < registerLimit n bound
theorem
Complexity.RAM.TMConfig.Step.encodeRegs_storeBounded_internal
{n : ℕ}
(tm : TM n)
(bound : ℕ)
(cfg : Complexity.Cfg n tm.Q)
(hheads : HeadsBounded cfg bound)
:
StoreBounded tm bound (encodeRegs tm bound cfg)
theorem
Complexity.RAM.TMConfig.Step.loadTapeOps_represents_internal
{n : ℕ}
{tm : TM n}
{bound : ℕ}
{cfg : Complexity.Cfg n tm.Q}
{store : Structured.Store}
(hrepresents : Represents tm bound cfg store)
(tape : Fin (n + 2))
:
Represents tm bound cfg (Structured.Basic.execList (loadTapeOps n bound tape) store)
theorem
Complexity.RAM.TMConfig.Step.loadTapeOps_symbol_internal
{n : ℕ}
{tape : Fin (n + 2)}
{tm : TM n}
{bound : ℕ}
{cfg : Complexity.Cfg n tm.Q}
{store : Structured.Store}
(hrepresents : Represents tm bound cfg store)
(hhead : (tapeAt cfg tape).head ≤ bound)
:
Structured.Basic.execList (loadTapeOps n bound tape) store (symbolReg n bound tape) = symbolCode (tapeAt cfg tape).read