The machine, written in first-order logic #
DescriptiveComplexity.Exponential.GameMachine builds the machine of a
specification as an DescriptiveComplexity.ATMData on tagged tuples; this file
writes it down, as an DescriptiveComplexity.FOInterpretation of the
alternating-machine vocabulary in the ordered source vocabulary.
Why the reduction is not relativized #
One might expect the unused coordinates of a tagged tuple to be pinned by a
domain formula. The machine as built does not need that: its Posn is
machPosn ∧ machDom, so the junk tuples are already excluded by a relation
rather than by the universe, and every promise – the order is linear, the input
is functional, there is one blank – was proved on the whole tagged-tuple type.
So the interpretation is an ordinary one, and
DescriptiveComplexity.OrderedFOReduction.toRel widens it at the very end.
What is static and what is not #
A defining formula receives the tags of its arguments, so anything decided
by a tag is decided when the formula is built: that is posn, acc, right,
blank, start, the block marks, and the family of every transition rule. What
is left is small:
- the order, which is
DescriptiveComplexity.lexLeF; CanonandAgreeon the coordinates, which areDescriptiveComplexity.canonFandDescriptiveComplexity.agreeF;- an address read off a transition's tuple, which is
DescriptiveComplexity.padTupF; - and the two hooks into the source structure,
concOkandisTarget.
Side conditions decided by the tags #
A condition decided when the formula is built.
Instances For
Dependency graph
Dependency graph
The formulas #
The coordinates of the i-th argument.
Equations
- DescriptiveComplexity.GameProg.argVar n i j = (i, j)
Instances For
Dependency graph
Being a position: a tape tag whose coordinates beyond its own arity are pinned.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Being an accepting state: decided by the tag.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Moving the head right: decided by the tag.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Being the blank: the left mark, at the constant tuple.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Being the start state: the initial sweep, at the constant tuple.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The i-th block mark: which player owns a state is a function of its
tag.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The state a transition applies in: the tags name it, and the tuple must agree with the transition's below the arity the phase declares.
Instances For
Dependency graph
The state a transition moves to, the same with dst.
Instances For
Dependency graph
The coordinates of a transition's tuple that hold the address of a cell of
the relation variable i.
Equations
- DescriptiveComplexity.GameProg.addrIx i l = ⟨V + ↑l, ⋯⟩
Instances For
Dependency graph
The coordinates of a cell's own tuple that hold its address.
Equations
Instances For
Dependency graph
The symbol a transition reads: a mark, or a cell's symbol at the address the transition's own tuple carries.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.GameProg.treadF t t' = ⊥
Instances For
Dependency graph
The symbol a transition writes, the same with wr.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.GameProg.twriteF t t' = ⊥
Instances For
Dependency graph
The initial contents of a cell: every cell starts empty, carrying its own address, and the sentinels carry their marks.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.GameProg.inpF t t' = ⊥
Instances For
Dependency graph
Two families of coordinates of the same argument are equal, as a formula.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The guard of a concluding transition: the residual formula of the question, relabeled onto the coordinates the phase declares. This is the one place a defining formula reads the source structure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The test a seek makes: the symbol is the one the challenged atom addresses, and the address is the atom's arguments at the valuation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The nine rule families, written down: seven of them are decided by the transition's tag, and the two hooks into the source structure are the guard of a concluding transition and the seek's test.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Being a transition: a transition tag whose rule fires.
Instances For
Dependency graph
Their realization #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The interpretation, and the machines agree #
The machine of a program, written down: an interpretation of the alternating-machine vocabulary in the ordered source vocabulary, tagged by the machine's own tags.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The interpreted universe is the machine's own, with nothing added.
Equations
- prog.gameMapEquiv = Equiv.refl (DescriptiveComplexity.GamePt B V M A)
Instances For
Dependency graph
Dependency graph
The machines agree #
The instance, and the reduction #
The interpreted structure is a yes-instance exactly when the game is
won. The machine is well formed and its marks split its states by
construction, so the only content is the simulation
DescriptiveComplexity.altAcceptsSpace_iff_accepts, carried across the
identity by DescriptiveComplexity.ATMData.AltAgree. The bottom element the
machine is built over is the structure's own minimum, which exists because the
universe is finite and nonempty.
Dependency graph
A second-order alternating game reduces to alternating acceptance in bounded space: the machine of the program, written down.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
EXPTIME-hardness #
Every SO-GAME definable problem reduces to alternating acceptance in bounded space.
Dependency graph
Alternating acceptance in bounded space is EXPTIME-hard. Every SO(≤, LFP)
definable problem is a second-order alternating game
(DescriptiveComplexity.SOLFPDefinable.soGameDefinable), every such game has a
program (DescriptiveComplexity.exists_gameProg), and the machine of that
program is first-order definable in the instance.
Dependency graph
Alternating acceptance in bounded space is EXPTIME-complete, which is
Chandra, Kozen and Stockmeyer's APSPACE = EXPTIME: an alternating machine that
may use as much space as its input has positions decides exactly the problems
of deterministic exponential time.
Registered in the Lax archive as
Lax480241.APSPACEIsEXPTIME.atmAcceptSpace_EXPTIME_complete.