Binary storage for the inductive-counting controller #
The controller stores ten binary natural registers, a finite instruction label and two bits. The choice history used in its semantic proofs is absent from the encoding.
Main definitions #
Turing.InductiveCounting.encState: the fixed encoding of a controller state.
References #
Fixed labels for the controller's finite phases.
Instances For
Only ten binary registers are stored; there is no stored walk or round list.
Instances For
The encoded finite phase, binary registers and flags.
Instances For
@[simp]
theorem Turing.InductiveCounting.mem_registers_lt {N width : ℕ} {s : Cslib.InductiveCounting.State} (h : Cslib.InductiveCounting.Bounded N width s) (r : ℕ) :
r ∈ registers s → r < Cslib.InductiveCounting.registerBound N width
theorem Turing.InductiveCounting.length_encState_le {s : Cslib.InductiveCounting.State} {L : ℕ} (h : ∀ r ∈ registers s, (MultiTapeTM.encNat r).length ≤ L) :
A uniform bit bound on each of the ten registers bounds the complete stored state.
theorem Turing.InductiveCounting.length_encState_le_log {N width : ℕ} {s : Cslib.InductiveCounting.State} (h : Cslib.InductiveCounting.Bounded N width s) :
Every bounded controller state has logarithmic size in its register bound.
theorem Turing.InductiveCounting.length_encState_le_of_registerBound_le {N width n A D : ℕ} {s : Cslib.InductiveCounting.State} (h : Cslib.InductiveCounting.Bounded N width s) (hbound : Cslib.InductiveCounting.registerBound N width ≤ A * (n + 1) ^ D) :
Polynomial register bounds give native logarithmic-space storage, including on rejecting branches. This estimate concerns the state alone, not a supplied choice history.