Documentation

DescriptiveComplexity.Exponential.GameMove

Reading a block sentence in a copy, and moving one variable onto another #

Two gadgets every phased game needs beyond DescriptiveComplexity.Exponential.GamePhase, both stated for an arbitrary block C and finite tag type T.

A one-copy sentence, read in a copy #

A sentence about one assignment of C, read in the first copy of a move: the tag bits are invisible to it.

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

    A sentence about one assignment of C, read in the second copy of a move – the state the move enters.

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

      The first copy of a move is the state it leaves.

      Dependency graph

      The second copy of a move is the state it enters.

      Dependency graph

      One variable moved onto another #

      noncomputable def DescriptiveComplexity.varPairAgreeS (L : FirstOrder.Language) (C : SOBlock) (T : Type) [Finite T] (i j : C.ι) (h : C.arity j = C.arity i) :

      The move copies the variable i of the state it leaves onto the variable j of the state it enters. With j = i this is DescriptiveComplexity.varAgreeS, i.e., freezing.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Dependency graph
        noncomputable def DescriptiveComplexity.varsPairAgreeS (L : FirstOrder.Language) (C : SOBlock) (T : Type) [Finite T] (ps : List { p : C.ι × C.ι // C.arity p.2 = C.arity p.1 }) :

        The listed variables are moved into place by the move.

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