Documentation

DescriptiveComplexity.Problems.Machine.QsatGeom

The geometry of the QBF machine's tape #

Where the cells sit: which tagged tuples are positions, which is the lowest and which the highest, and what the immediate neighbour of each one is. Everything the run needs to know about movement, proved once, before any transition is taken.

The content is that the tape

  ⊢   v₁ v₂ … vₙ   ⊣

is exactly the position order DescriptiveComplexity.QsatTM.QLe: the left marker is DescriptiveComplexity.MinPos, the right marker is DescriptiveComplexity.MaxPos, and DescriptiveComplexity.SuccPos steps from the left marker to the outermost variable, from a variable to the next one the prefix binds, and from the innermost variable to the right marker. The degenerate instance – no quantified variable at all – is the case where the two markers are neighbours.

All of it needs the instance to be well formed, since that is exactly when the prefix order is a linear order on the variables and QLe is a linear order at all (DescriptiveComplexity.QsatTM.isLinOrd_qLe).

The three position tags, compared #

Walking the quantifier prefix #

Dependency graph
Dependency graph

y is the variable the prefix binds immediately after x.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph

    The positions #

    theorem DescriptiveComplexity.QsatTM.eq_qBot_tup {A : Type} [LinearOrder A] [Finite A] [Nonempty A] {w : Fin 2A} (h : IsMinTup w) :
    w = fun (x : Fin 2) => qBot

    A tuple pinned at both coordinates is the tuple of least elements.

    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph

    The positions of the tape, listed: the two markers and one cell per quantified variable.

    Dependency graph

    Comparing positions #

    The three cases of the tape order on elements, as a disjunction rcases can see (DescriptiveComplexity.QsatTM.PLe is a def).

    Dependency graph

    Between two cells the tape order is the prefix order.

    Dependency graph

    A tag strictly lower in the index order is lower on the tape.

    Dependency graph

    The tape order is reflexive on a well-formed instance.

    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph

    The ends of the tape #

    Dependency graph

    The right marker is the highest position.

    Dependency graph

    Neighbours #

    The left marker and the outermost variable are neighbours.

    Dependency graph

    With no quantified variable the two markers are neighbours.

    Dependency graph

    Consecutive variables of the prefix are neighbours on the tape.

    Dependency graph

    The innermost variable and the right marker are neighbours.

    Dependency graph