NLBA Languages ⊆ Turing Machine Languages #
We show that every language recognized by a nondeterministic linearly bounded automaton (NLBA) is also recognized by a Turing machine, adapting the LBA ⊆ TM proof for the nondeterministic case.
Strategy #
The key challenge is that NLBAs are nondeterministic: there may be multiple possible successor configurations at each step. We handle this by BFS determinization: the simulating Turing machine tracks the entire set of currently reachable NLBA configurations, expanding it by one nondeterministic step at a time.
Part 1: BFS Determinization #
We define stepFinset M S, which expands a Finset of configurations by one NLBA step,
and iterStepFinset M S k, which applies k expansion steps. We prove:
- Monotonicity: the configuration sets grow over time
- Correctness: if
Reaches M cfg cfg'andcfg ∈ S, thencfg' ∈ iterStepFinset M S kfor somek
Part 2: Concrete TM0 Simulation #
We construct a Turing.TM0.Machine that simulates a given NLBA via BFS:
- Reading phase: Same as the LBA simulation — read input symbols into the state.
- Simulation phase: Track a
Finset (DLBA.Cfg Γ Λ n)of reachable configurations. At each step, expand the set viastepFinset. If any configuration is accepting, halt. If the set reaches a fixpoint (no new configurations), loop forever.
The TM0 halts if and only if the NLBA accepts the input.
Main Results #
LBA.reaches_mem_iterStepFinset— multi-step reachability is captured by BFSLBA.reading_phase_complete— reading phase reaches the initial simulation stateLBA.lba_language_subset_tm0_language— every word accepted by the NLBA is accepted by the simulating TM0 machine
Initialization #
The language recognized by an NLBA at a fixed input length.
Equations
- LBA.LanguageN M n = {w : Fin (n + 1) → Γ | LBA.Accepts M (LBA.initCfg M w)}
Instances For
Part 1: BFS Determinization #
Equations
One-step BFS expansion: union of S with all configurations reachable in one
NLBA step from any configuration in S.
Equations
- LBA.stepFinset M S = S ∪ {cfg' : DLBA.Cfg Γ Λ n | ∃ cfg ∈ S, LBA.Step M cfg cfg'}
Instances For
Iterated BFS expansion.
Equations
- LBA.iterStepFinset M S 0 = S
- LBA.iterStepFinset M S k.succ = LBA.stepFinset M (LBA.iterStepFinset M S k)
Instances For
Part 2: Concrete TM0 Simulation #
Equations
- LBA.NSimState.instInhabited = { default := LBA.NSimState.reading [] }
The TM0 machine that simulates a given NLBA via breadth-first search.
Equations
- One or more equations did not get rendered due to their size.
- LBA.nToTM0 M n (LBA.NSimState.reading acc) (some a) = some (LBA.NSimState.reading (acc ++ [a]), Turing.TM0.Stmt.move Turing.Dir.right)
- LBA.nToTM0 M n LBA.NSimState.loop sym = some (LBA.NSimState.loop, Turing.TM0.Stmt.write sym)
Instances For
The TM0 step function for the NLBA simulation machine.
Equations
- LBA.ntm0Step M n = Turing.TM0.step (LBA.nToTM0 M n)
Instances For
Abbreviation for TM0 configurations in the NLBA simulation.
Equations
- LBA.NSimCfg Γ Λ n = Turing.TM0.Cfg (Option Γ) (LBA.NSimState Γ Λ n)
Instances For
The initial TM0 configuration for a given encoded input.
Equations
- LBA.ntm0Init _M w = Turing.TM0.init (LBA.encodeInput w)
Instances For
Tape Helper Lemmas #
Reading Phase #
Simulation Phase #
Main Theorem #
Main theorem: Every word accepted by the NLBA is also accepted by the simulating TM0 machine. This establishes that NLBA languages are a subset of TM0-recognizable languages.