The k-round game: what a Σₖ definition of alternating acceptance guesses #
DescriptiveComplexity.ATMData.AltAcc recurses one step at a time; a Σₖ
sentence has k quantifiers and must therefore commit a whole round at a
time. This file defines the round game – the object the second-order blocks of
the membership proof guess – together with the facts about walks it needs. No
vocabulary appears, as in DescriptiveComplexity.Machines; the file sits under
Problems/Machine only because it reads the rank machinery of
DescriptiveComplexity.Problems.Machine.Walk.
What a round guesses #
A walk is a configuration per position, positions being times as everywhere
in the bridge. Round i's walk is asked for three things
(DescriptiveComplexity.ATMData.LegalBelow):
- it is initial at the lowest position;
- its blocks never decrease along the order
(
DescriptiveComplexity.ATMData.BlkMono) – true of any real run, and needed of a guess so that the times of a block form one stretch rather than several; - at each immediate successor it steps out of a non-accepting configuration,
or stutters in an accepting or stuck one – but only where its state is in a
block below
i.
Acceptance is therefore absorbing: a walk that has accepted may not move again,
so it still accepts at the highest position, and every later round is obliged
to copy it. Without that, a round could step past an acceptance and let a later
player steer the run into rejection, while
DescriptiveComplexity.ATMData.AltAcc grants an accepting configuration
outright.
The last restriction is what keeps the game cheap. Round i answers for the
blocks up to i and no further, so its walk may be arbitrary from the moment
it hands over; that is why building a witness never needs a legal continuation
to the end of time. Stuttering must be allowed at a stuck configuration, not
only at an accepting one as in DescriptiveComplexity.TMData.IsWalk: otherwise
a machine that stops has no legal walk at all, the universal rounds become
vacuous, and getting stuck would count as accepting – the opposite of the
convention of DescriptiveComplexity.MachinesAlt.
What a round inherits #
DescriptiveComplexity.ATMData.AgreeBelow makes round i reproduce what the
earlier rounds committed: the configuration at every time whose block – in the
previous round's walk – is below i, and the configuration at the immediate
successor of such a time. The second clause is not redundant: the move out of
the last configuration of block i - 1 belongs to the previous player, so the
successor of a committed time is committed too. At i = 0 both clauses are
vacuous, which is why the first round is free
(DescriptiveComplexity.ATMData.altGame_eq_gameFrom).
The order lemmas #
Two facts about the linear order of the positions are proved here and used
throughout: induction upwards from a position
(DescriptiveComplexity.ATMData.le_induction), and the successor function
DescriptiveComplexity.ATMData.nextPos walking along it, whose rank increases
by one until the highest position is reached.
Induction along the positions #
Induction upwards from a position: a property holding at s and
inherited along immediate successors holds at every position above s. The
same induction as DescriptiveComplexity.TMData.stepsIn_of_segment, isolated
because the game needs it for properties that are not about runs.
Dependency graph
The next position after t, or t itself at the highest position.
Equations
Instances For
Dependency graph
The positions reached from t by stepping j times along the order.
Instances For
Dependency graph
Dependency graph
Dependency graph
Walks #
The blocks of a walk never decrease. True of any run, and asked of a guess so that the times of one block form a single stretch.
Equations
Instances For
Dependency graph
A walk legal below block i: initial at the lowest position, with
non-decreasing blocks, and stepping or stuttering at every immediate successor
whose configuration is in a block below i. Round i of the game guesses a
walk legal below i + 1: it answers for its own block and no later one.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The walk accepts: its state at the highest position is accepting.
Instances For
Dependency graph
Round i reproduces what the earlier rounds committed: the
configuration at every time whose block in prev is below i, and at the
immediate successor of such a time – the move out of the last committed
configuration belonging to the previous player.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The condition round i puts on its walk: legal below i + 1, and
agreeing with the previous round below i.
Equations
- M.RoundCond i prev w = (M.LegalBelow (i + 1) w ∧ M.AgreeBelow i w prev)
Instances For
Dependency graph
Reading the blocks of a walk #
The game #
The game from round i on, with m rounds still to play and prev
the walk the previous round produced: the owner of block i chooses a walk
subject to DescriptiveComplexity.ATMData.RoundCond, and play passes to the
next block. When no round is left, the walk that remains must accept.
Equations
Instances For
Dependency graph
The whole k-round game. The first round is free – there is nothing
committed yet – so it is peeled off; every later round inherits from the one
before it.
Instances For
Dependency graph
The first round of the game is the general round with any predecessor:
agreement below block 0 is vacuous.