A Turing machine, formalizing Sipser's 7-tuple (Q, Σ, Γ, δ, q₀, q_acc, q_rej):
Qis the set of states,Γis the tape alphabet containing a distinguishedblanksymbol,inputAlpha ⊆ Γis the input alphabet (excludingblank),δ : Q × Γ → Q × Γ × {L, R}is the transition function,q₀,qAccept,qRejectare the start, accept and reject states (withqReject ≠ qAccept).
- blank : Γ
- inputAlpha : Set Γ
- q₀ : Q
- qAccept : Q
- qReject : Q
Instances For
A (two-way infinite) Turing-machine tape: a function from cell index ℤ to
tape-alphabet symbols.
Instances For
Iterate M.step starting from configuration c for n steps.
Instances For
The configuration of M after running n steps on input w, starting
from M.initConfig w.
Instances For
M accepts the input w if at some step n the computation enters
qAccept.
Instances For
M rejects the input w (by halting) if at some step n the computation
enters qReject.
Instances For
M halts on input w if it reaches a halting (accept or reject)
configuration after some number of steps.
Instances For
The language L(M) recognized by M: the set of inputs w that M
accepts.
Instances For
c₁ yields c₂ in one step: c₁ is not a halting configuration and
M.step c₁ = c₂.
Instances For
The reflexive-transitive closure of one-step yielding: c₁ reaches c₂
after some finite number of computation steps.
Instances For
M has an accepting computation history on w: at some step n the
configuration is in qAccept. (Same as M.accepts w.)
Instances For
M is a decider: it halts on every input (never loops forever).
Instances For
M decides A if M is a decider and L(M) = A.
Instances For
Stepping an accepting configuration leaves it unchanged.
Stepping a rejecting configuration leaves it unchanged.
Halting configurations (accept or reject) are fixed points of M.step.
Acceptance is stable under further steps: once accepted, always accepted.
Running a TM from any halting configuration for any number of steps leaves the configuration unchanged.
Running for 0 steps returns the same configuration.
A Linearly Bounded Automaton (LBA): a 1-tape Turing machine whose head can
never move off the input portion of the tape. Formally, on every input w and
every step n, the head position lies in [0, max 1 |w|).
- toTM : TM Q Γ
Instances For
An LBA B accepts w iff its underlying TM accepts w.
Instances For
The language recognized by an LBA, inherited from its underlying TM.
Instances For
An LBA is a decider iff its underlying TM halts on every input.
Instances For
A Turing enumerator: a deterministic TM together with a "printing"
predicate prints specifying which strings have been output by step n
(viewing each Config as the state of the enumerator after some number of
steps). The enumerated language is the union of these print sets.
- toTM : TM Q Γ
Instances For
The initial configuration of an enumerator: start state, head at 0, and
an all-blank tape.
Instances For
The configuration of the enumerator after n steps.
Instances For
The language L(E) enumerated by E: all strings w that appear in the
print set of some run-step configuration.
Instances For
An auxiliary "counting" TM with state set ℕ: it starts in state 2, never
halts (it never reaches the accept state 0 or reject state 1), and on each
step increments its state by 1. Used as the driver for enumerators built from
recognizers.
Instances For
One step of countingTM from a non-halting state (state ≥ 2) increments
the state by 1.
Forward direction of the equivalence "T-recognizable ↔ T-enumerable":
every Turing-recognizable language is Turing-enumerable. The proof simulates
the recognizer M step-by-step on every input w, printing w exactly when
M accepts w within the current step budget.
Converse direction: every Turing-enumerable language is Turing-recognizable. A recognizer simulates the enumerator and accepts as soon as it prints the input string.
Sipser's theorem: a language A is Turing-recognizable iff it is
Turing-enumerable (i.e. is the language of some Turing enumerator).
M halts on w within the time bound t: there is some step count
n ≤ t at which M is already in a halting configuration.
Instances For
M decides A in time f: M decides A, and on every input w of
length n it halts within f n steps.
Instances For
The classic non-regular language A = {a^k b^k | k ≥ 0} over the alphabet
{a, b}.
Instances For
The time-bound function n · (⌊log₂ n⌋ + 1), used as an upper estimate for
O(n log n) running times.
Instances For
Sipser's O(n log n) decider: a 1-tape Turing machine decides
A = {a^k b^k | k ≥ 0} in time O(n log n).