Documentation

DescriptiveComplexity.Problems.Qsat.Leaf

The innermost block: the base case of the recursion #

The last block of the prefix quantifies the three auxiliary valuations and the bit sE, and is immediately followed by the matrix. Peeling it (DescriptiveComplexity.game_aux) turns the position it opens into exactly three independent conditions – the source endpoint is a start state, the target endpoint is a goal state, and the pair passed below the last level is one move of the walk (DescriptiveComplexity.SavStep) – together with the level clauses, which the auxiliary variables do not touch.

The three conditions are independent because the three valuations are read on disjoint sets of elements, which is what lets the single existential quantifier over the block be split (DescriptiveComplexity.auxVal).

Readouts a block does not touch #

Dependency graph
theorem DescriptiveComplexity.readout_out {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] {T : × A × } {v : QVarTag} {p q : A} (τ ν : QM AProp) (h : keyTriple v p q T) :
qOver (QBlk T) τ ν (qVar v p q) τ (qVar v p q)
Dependency graph
theorem DescriptiveComplexity.readout_in {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] {T : × A × } {v : QVarTag} {p q : A} (τ ν : QM AProp) (hv : QVarOn v p q) (h : keyTriple v p q = T) :
qOver (QBlk T) τ ν (qVar v p q) ν (qVar v p q)
Dependency graph
Dependency graph
Dependency graph
@[simp]
theorem DescriptiveComplexity.stU_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ ν : QM AProp) ( : A) :
stU (qOver (QBlk (tAux A)) τ ν) = stU τ
Dependency graph
@[simp]
theorem DescriptiveComplexity.stV_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ ν : QM AProp) ( : A) :
stV (qOver (QBlk (tAux A)) τ ν) = stV τ
Dependency graph
@[simp]
theorem DescriptiveComplexity.stZ_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ ν : QM AProp) ( : A) :
stZ (qOver (QBlk (tAux A)) τ ν) = stZ τ
Dependency graph
@[simp]
theorem DescriptiveComplexity.bitB_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ ν : QM AProp) ( : A) :
bitB (qOver (QBlk (tAux A)) τ ν) bitB τ
Dependency graph
theorem DescriptiveComplexity.levSat_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ ν : QM AProp) (b w s : Bool) (x : A) :
LevSat (qOver (QBlk (tAux A)) τ ν) b w s x LevSat τ b w s x
Dependency graph

Splitting the last existential quantifier #

The assignment of the last block made of three valuations and a bit.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph
    @[simp]
    theorem DescriptiveComplexity.valS_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ : QM AProp) (f g h : AProp) (e : Prop) :
    valS (qOver (QBlk (tAux A)) τ (auxVal f g h e)) = f
    Dependency graph
    @[simp]
    theorem DescriptiveComplexity.valT_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ : QM AProp) (f g h : AProp) (e : Prop) :
    valT (qOver (QBlk (tAux A)) τ (auxVal f g h e)) = g
    Dependency graph
    @[simp]
    theorem DescriptiveComplexity.valP_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ : QM AProp) (f g h : AProp) (e : Prop) :
    valP (qOver (QBlk (tAux A)) τ (auxVal f g h e)) = h
    Dependency graph
    @[simp]
    theorem DescriptiveComplexity.bitE_over_tAux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ : QM AProp) (f g h : AProp) (e : Prop) :
    bitE (qOver (QBlk (tAux A)) τ (auxVal f g h e)) e
    Dependency graph

    The base case #

    theorem DescriptiveComplexity.game_aux {A : Type} [FirstOrder.Language.transSys.Structure A] [LinearOrder A] [Finite A] [Nonempty A] (τ : QM AProp) :
    QsatWins (QPlayed (tAux A)) τ IsStart A (stS τ) IsGoal A (stT τ) LevPart τ ∀ (m : A), IsMaxSV mSavStep stCls (StepRel A) (stU τ m) (stV τ m)

    The innermost block, played: the auxiliary valuations witness that the source endpoint is a start state, that the target endpoint is a goal state, and that the pair passed below the last level is one move of the walk; the level clauses do not mention them.

    Dependency graph