Machine acceptance is existential second-order definable #
The membership half of the machine bridge: NTMAccept is Σ₁-definable, hence
in NP. This is Fagin's tableau argument, and – unlike the certificate of a
weighted problem – it needs no arithmetic at all: one existential block guesses
the run, and a first-order kernel checks it clause by clause.
What is guessed #
Three relation variables, indexed by the positions, which are simultaneously the tape cells and the time steps:
Q t q– at timetthe machine is in stateq;H t p– at timetthe head is on the cellp;T t p a– at timetthe cellpholds the symbola.
That the guess is a run is exactly DescriptiveComplexity.TMData.RelWalk, and
DescriptiveComplexity.TMData.exists_relWalk_iff_exists_walk together with
DescriptiveComplexity.TMData.accepts_iff_exists_walk is what connects it back to
acceptance. So this file is a transcription: every clause below mirrors one
field of RelWalk or one conjunct of DescriptiveComplexity.TMData.WellFormed, and each
has its own realization lemma. Nothing here does mathematics; the mathematics is
in DescriptiveComplexity.Problems.Machine.Walk.
The clauses #
Seventeen of them, conjoined into DescriptiveComplexity.tqKernel: four saying the
order is linear, four more for the remaining promises of WellFormed, six for
the functionality of the guess, then the initial clause, the step clause and
the accepting clause. The step clause is the largest formula in the library –
an existential over a transition element with seven conjuncts, against a
stutter alternative – and is kept manageable by parameterizing its body
(DescriptiveComplexity.tqStepBodyF) over the three variables it reads, so that no
Sum nesting goes deeper than two levels.
The order predicates #
MinPos, MaxPos and SuccPos are relativized to the positions, so they are
not the ordered-structure guards of DescriptiveComplexity.OrderWalk but formulas over
the instance's own le and posn symbols, defined here as
DescriptiveComplexity.tqMinPosF and friends.
The block #
The relation variables of the certificate: the state, the head and the tape of the configuration at each time.
- state : TMIdx
The state at a time.
- head : TMIdx
The head cell at a time.
- tape : TMIdx
The tape contents at a time.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
The single existential block: the run, guessed as a state, a head position and a tape contents for each time.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The symbol of the state relation variable.
Equations
Instances For
Dependency graph
The symbol of the head relation variable.
Equations
Instances For
Dependency graph
The symbol of the tape relation variable.
Equations
Instances For
Dependency graph
The vocabulary of the kernel: machine instances together with the guessed run.
Equations
Instances For
Dependency graph
The position symbol in the kernel's vocabulary.
Instances For
Dependency graph
The transition symbol in the kernel's vocabulary.
Instances For
Dependency graph
The start-state symbol in the kernel's vocabulary.
Instances For
Dependency graph
The accepting-state symbol in the kernel's vocabulary.
Instances For
Dependency graph
The blank symbol in the kernel's vocabulary.
Instances For
Dependency graph
The move-right symbol in the kernel's vocabulary.
Instances For
Dependency graph
The order symbol in the kernel's vocabulary.
Instances For
Dependency graph
The transition-source symbol in the kernel's vocabulary.
Instances For
Dependency graph
The transition-read symbol in the kernel's vocabulary.
Instances For
Dependency graph
The transition-destination symbol in the kernel's vocabulary.
Instances For
Dependency graph
The transition-write symbol in the kernel's vocabulary.
Instances For
Dependency graph
The input symbol in the kernel's vocabulary.
Instances For
Dependency graph
The guessed-state symbol in the kernel's vocabulary.
Instances For
Dependency graph
The guessed-head symbol in the kernel's vocabulary.
Instances For
Dependency graph
The guessed-tape symbol in the kernel's vocabulary.
Instances For
Dependency graph
Formula builders #
x is a position, as a formula.
Equations
Instances For
Dependency graph
x is a transition, as a formula.
Equations
Instances For
Dependency graph
x is a start state, as a formula.
Equations
Instances For
Dependency graph
x is an accepting state, as a formula.
Equations
Instances For
Dependency graph
x is the blank symbol, as a formula.
Equations
Instances For
Dependency graph
x moves the head right, as a formula.
Equations
Instances For
Dependency graph
x ≤ y, as a formula.
Equations
Instances For
Dependency graph
x = y, as a formula.
Equations
Instances For
Dependency graph
The transition x applies in the state y, as a formula.
Equations
Instances For
Dependency graph
The transition x reads the symbol y, as a formula.
Equations
Instances For
Dependency graph
The transition x moves to the state y, as a formula.
Equations
Instances For
Dependency graph
The transition x writes the symbol y, as a formula.
Equations
Instances For
Dependency graph
The cell x initially holds y, as a formula.
Equations
Instances For
Dependency graph
The state at time x is y, as a formula.
Equations
Instances For
Dependency graph
The head at time x is on y, as a formula.
Equations
Instances For
Dependency graph
At time x the cell y holds z, as a formula.
Equations
Instances For
Dependency graph
x is the lowest position, as a formula.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
x is the highest position, as a formula.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
y is the position immediately above x, as a formula.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The head moves from its cell at t to its cell at t', in the direction
dir.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The step body: the transition τ takes the configuration at t to the
one at t'. Its seven conjuncts are those of DescriptiveComplexity.TMData.RelStep.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The stutter body: an accepting configuration repeated.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The cell x may initially hold y: the input where it is defined, the
blank elsewhere.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Realization of the builders #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The clauses of the kernel #
Each mirrors one field of DescriptiveComplexity.TMData.RelWalk.
There is a state at each time.
Equations
Instances For
Dependency graph
There is only one state at each time.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The head is somewhere at each time.
Equations
Instances For
Dependency graph
The head is in only one place at each time.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Every cell holds a symbol at each time.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Every cell holds only one symbol at each time.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Consecutive times are related by a step or by an accepting stutter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
At the lowest time the configuration is initial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The order is reflexive.
Equations
Instances For
Dependency graph
The order is transitive.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The order is antisymmetric.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The order is total.
Equations
Instances For
Dependency graph
There is a position.
Equations
Instances For
Dependency graph
The input is functional.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
There is a blank symbol.
Equations
Instances For
Dependency graph
There is only one blank symbol.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
At the highest time the state is accepting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The kernel: well-formedness of the instance, then that the guess is a run – the six functionality clauses, the initial clause, the step clause and the accepting clause.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The kernel says exactly what it should: the instance is well formed and the guessed relations are a run.
Dependency graph
The definability theorems #
Machine acceptance is Σ₁-definable: one existential block guesses the
run – the state, the head cell and the tape contents at each time – and the
first-order kernel checks that it is one.