Documentation

CslibFrontier.Computability.Machines.Turing.MultiTape.Complexity.LogSpace.ConfigurationGraph.Radix

Fixed tuples of radix registers #

The number of registers and their enumeration are fixed independently of the input. Packing and reading a fixed digit therefore require only finitely many binary additions, multiplications, divisions and remainders. The radix itself remains an ordinary binary argument.

The pure operations and their recovery/capacity results live in Cslib.Radix, in the module CslibFrontier.Foundations.Data.Nat.Radix.

Main results #

theorem Turing.MultiTapeNTM.ConfigurationGraph.pack_inSpace {ι : Type} [Fintype ι] {α : Type} {enc : α ↪ List Bool} {S B : α → ℕ} {f : α → ι → ℕ} (hB : MultiTapeTM.ComputableInSpace B enc MultiTapeTM.encNat S) (hf : ∀ (i : ι), MultiTapeTM.ComputableInSpace (fun (a : α) => f a i) enc MultiTapeTM.encNat S) (hin : MultiTapeTM.BigOLe (fun (a : α) => (enc a).length) S) :

Packing a fixed tuple of computed components preserves a common space budget.