Documentation

Complexity.Computability.Circuit.Boolean.Tableau.Space

The gates of the uniform tableau within linear work space #

The gate with number g of the tableau of a multi-tape machine for T steps on inputs of length n (Cslib.Circuits.Boolean.Tableau.gateCode) is computable within work space linear in the binary lengths of n, T and g (Cslib.Circuits.Boolean.Tableau.gateCode_inSpace): its position is found by divisions with remainder, its operation and its references by tables of constant size, and its wires by additions and multiplications. This is the uniformity of the tableau, used to write the circuit down in logarithmic space.

Main results #

References #

The layout in normal form #

The gates within a budget #

theorem Cslib.Circuits.Boolean.Tableau.gfStart_inSpace {k : ℕ} {State : Type} [Fintype State] {α : Type} {encIn : α ↪ List Bool} {Bs T : α → ℕ} (hT : Turing.MultiTapeTM.ComputableInSpace T encIn Turing.MultiTapeTM.encNat Bs) (hin : Turing.MultiTapeTM.BigOLe (fun (x : α) => (encIn x).length) Bs) :
theorem Cslib.Circuits.Boolean.Tableau.blockSize_inSpace {k : ℕ} {State : Type} [Fintype State] {α : Type} {encIn : α ↪ List Bool} {Bs T : α → ℕ} (hT : Turing.MultiTapeTM.ComputableInSpace T encIn Turing.MultiTapeTM.encNat Bs) (hin : Turing.MultiTapeTM.BigOLe (fun (x : α) => (encIn x).length) Bs) :
theorem Cslib.Circuits.Boolean.Tableau.gateCode_inSpace {k : ℕ} {State : Type} [Fintype State] [DecidableEq State] (tm : Turing.MultiTapeTM k Bool State) {α : Type} {encIn : α ↪ List Bool} {Bs n T : α → ℕ} (hn : Turing.MultiTapeTM.ComputableInSpace n encIn Turing.MultiTapeTM.encNat Bs) (hT : Turing.MultiTapeTM.ComputableInSpace T encIn Turing.MultiTapeTM.encNat Bs) (hin : Turing.MultiTapeTM.BigOLe (fun (x : α) => (encIn x).length) Bs) {g : α → ℕ} (hg : Turing.MultiTapeTM.ComputableInSpace g encIn Turing.MultiTapeTM.encNat Bs) :
Turing.MultiTapeTM.ComputableInSpace (fun (x : α) => gateCode tm (n x) (T x) (g x)) encIn encGate Bs

The gate with a given number, within a budget covering n, T and the number.