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
A tag and a constant tuple: the shape every mark and every phase of the game has.
Dependency graph
A tuple satisfies DescriptiveComplexity.PadTup exactly when it is the
padding it names.
Dependency graph
The address a symbol reads is the second half of a transition's tuple.
Dependency graph
And a cell's own address is the first half of its tuple.
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 valuation a unary relation's argument supplies.
Dependency graph
The valuation a binary relation's arguments supply.
Dependency graph
The machines agree #
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 interpreted structure describes the machine: every field of
DescriptiveComplexity.atmData on it agrees, along the identity, with the
machine of the program.
Dependency graph
The agreement in the other direction, along the same identity.
Dependency graph
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.