One level of the recursion #
Playing the three blocks of a level – its midpoint, its universal bit, its pair –
is one step of Savitch's recursion (DescriptiveComplexity.game_step): the
midpoint is the existentially chosen intermediate state, the universal bit
chooses which of the two halves is checked, and the level clauses force the pair
passed below to be the endpoints of that half. So the position opened by a level
computes DescriptiveComplexity.SavPow at one more than the depth its successor
computes.
Iterating that step down the levels and finishing with
DescriptiveComplexity.game_aux gives DescriptiveComplexity.game_level: the
position opened by a level computes reachability in at most 2 ^ k moves, k
the number of levels from it to the last one.
Readouts the three blocks of a level do not touch #
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
Assignments of the three blocks of a level #
The assignment of a midpoint block.
Equations
- DescriptiveComplexity.zVal ℓ Z y = ∃ (a : A), y = DescriptiveComplexity.qVar DescriptiveComplexity.QVarTag.sZ ℓ a ∧ Z a
Instances For
Dependency graph
The assignment of a universal-bit block.
Equations
Instances For
Dependency graph
The assignment of a pair block.
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
The pair a level receives, and the clauses of the levels above #
The first component of the pair a level receives: the source endpoint at the first level, the first component of the level above otherwise.
Equations
- DescriptiveComplexity.inFst ℓ τ = if h : ∃ (d : A), DescriptiveComplexity.IsPredSV d ℓ then DescriptiveComplexity.stU τ h.choose else DescriptiveComplexity.stS τ
Instances For
Dependency graph
The second component of the pair a level receives.
Equations
- DescriptiveComplexity.inSnd ℓ τ = if h : ∃ (d : A), DescriptiveComplexity.IsPredSV d ℓ then DescriptiveComplexity.stV τ h.choose else DescriptiveComplexity.stT τ
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The clauses of every level strictly above ℓ hold.
Equations
- DescriptiveComplexity.LevBelow ℓ τ = ∀ (b w s : Bool) (ℓ'' x : A), DescriptiveComplexity.IsSV ℓ'' → ℓ'' < ℓ → DescriptiveComplexity.IsSV x → DescriptiveComplexity.LevSat τ b w s ℓ'' x
Instances For
Dependency graph
The clauses of every level down to ℓ hold.
Equations
- DescriptiveComplexity.LevUpto ℓ τ = ∀ (b w s : Bool) (ℓ'' x : A), DescriptiveComplexity.IsSV ℓ'' → ℓ'' ≤ ℓ → DescriptiveComplexity.IsSV x → DescriptiveComplexity.LevSat τ b w s ℓ'' x
Instances For
Dependency graph
Dependency graph
The input value a level clause compares its own component to.
Dependency graph
Dependency graph
A level clause, spelled out: the polarity of the universal bit, the component of the pair it constrains, and the value that component must copy.
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
What the eight clauses of a level say: the pair passed below is the first half of the level when its universal bit holds, the second half otherwise.
Dependency graph
The three blocks of a level leave the other levels alone #
The abbreviation for the valuation obtained by playing the three blocks of
level ℓ.
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
The three blocks of a level leave the levels above it alone.
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
One level of the recursion #
Playing the three blocks of a level is one step of Savitch's recursion. The midpoint is the intermediate state, the universal bit chooses which half is checked, and the level clauses force the pair passed below to be the endpoints of that half.
Dependency graph
Down the levels #
Dependency graph
Dependency graph
The position opened by a level computes reachability in at most 2 ^ k
moves, k the number of levels from it down to the last one.