Moving whole rounds #
The state of the game that carries DescriptiveComplexity.EXPTIME to SO-GAME
is a tuple of rounds
– DescriptiveComplexity.repMerged of the point block – carrying a phase in its
tag bits. Its moves never touch one relation variable at a time: they keep a
round, overwrite a round, or shift a round onto another one (the points of
the node just chosen become the points the next position reads). This file
states those three at the level of rounds, on top of the variable-level gadgets
of DescriptiveComplexity.Exponential.GameMove.
DescriptiveComplexity.repIxnames roundi's copy of a variable inside the merged block, andDescriptiveComplexity.repBlockAssign_repIxreads it back –DescriptiveComplexity.relMap_repSymstated about assignments rather than aboutRelMap, asDescriptiveComplexity.ExpExpansion.homAssign_roundOneIxis for a whole round.DescriptiveComplexity.roundsAgreeSis the move sentence “roundaof the state I leave is roundbof the state I enter”, one conjunct per listed pair;DescriptiveComplexity.realize_roundsAgreeSsays exactly that. Freezing is the diagonal list, shifting is any other.
Nothing here mentions an expansion: a round is any block, replicated.
One round's copy of a variable #
Round i's copy of the variable x, as a relation variable of the merged
block.
Equations
- DescriptiveComplexity.repIx B n i x = ↑(DescriptiveComplexity.repSym B x ⋯ n i)
Instances For
Dependency graph
Dependency graph
Reading back one variable of one round.
Dependency graph
Whole rounds, moved #
The variable pairs saying that round a of the first copy is round b of
the second.
Equations
- DescriptiveComplexity.repPairIx B n a b = List.map (fun (x : B.ι) => ⟨(DescriptiveComplexity.repIx B n a x, DescriptiveComplexity.repIx B n b x), ⋯⟩) (DescriptiveComplexity.finEnum B.ι)
Instances For
Dependency graph
The variable pairs of a list of round pairs.
Equations
- DescriptiveComplexity.roundPairIx B n ab = List.flatMap (fun (e : Fin n × Fin n) => DescriptiveComplexity.repPairIx B n e.1 e.2) ab
Instances For
Dependency graph
The move carries round a onto round b, for each listed pair. The
diagonal list freezes the rounds it names.
Equations
- DescriptiveComplexity.roundsAgreeS L B n T ab = DescriptiveComplexity.varsPairAgreeS L (DescriptiveComplexity.repMerged B n) T (DescriptiveComplexity.roundPairIx B n ab)
Instances For
Dependency graph
What moving rounds says: the listed rounds of the state the move leaves are the corresponding rounds of the state it enters.