Documentation

DescriptiveComplexity.Problems.SuccinctReach.Double

One block instead of two: the doubled block #

Plumbing for the hardness discharge of SUCCINCT-REACH (DescriptiveComplexity.Problems.SuccinctReach.Hardness).

A DescriptiveComplexity.SOTCSpec states its transition condition as a sentence over two successive expansions by the same block – the current state reads the first copy, the next state the second. That shape is what makes the pullback through an interpretation cheap (DescriptiveComplexity.SecondOrderTransitiveClosurePull). The Tseitin encoding, on the other hand, encodes a kernel over one block expansion, giving one propositional variable per relation variable of that block and tuple. So the discharge needs the two presentations identified:

Both renamings are FirstOrder.Language.LHom.IsExpansionOn for the structures concerned, so they preserve realization; the corresponding statements are DescriptiveComplexity.realize_blockPairLHom and DescriptiveComplexity.realize_blockFstLHom.

A third renaming lives here for the same reason. The Tseitin builders produce formulas over L ⊕ order for a base vocabulary L; the discharge instantiates L at an already ordered L₀ ⊕ order, so their output mentions two copies of the order symbol, both read by the same linear order. DescriptiveComplexity.mergeOrdLHom merges them, which is what lets the formulas be used as the defining formulas of an interpretation whose source vocabulary is L₀ ⊕ order.

The doubled block #

The doubled block: two disjoint copies of a block's relation variables, the first standing for the current state and the second for the next one.

Equations
Instances For
    Dependency graph

    The assignment of the doubled block made of two assignments of the original.

    Equations
    Instances For
      Dependency graph

      The first component of an assignment of the doubled block.

      Equations
      Instances For
        Dependency graph

        The second component of an assignment of the doubled block.

        Equations
        Instances For
          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph

          Renaming two successive expansions into the doubled one #

          The renaming of two successive expansions by a block into the expansion by the doubled block: the first copy's symbols become the first copy's, the second copy's the second's.

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

            The renaming of a single expansion by a block into the expansion by the doubled block, landing in the first copy.

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

              The pair renaming is an expansion, the two copies being interpreted by the two components of a joined assignment.

              Dependency graph

              The first-copy renaming is an expansion.

              Dependency graph
              theorem DescriptiveComplexity.realize_blockPairLHom {L₀ : FirstOrder.Language} (B : SOBlock) {A : Type} [instA : L₀.Structure A] (ρ σ : B.Assignment A) (φ : ((L₀.sum B.lang).sum B.lang).Sentence) :

              The pair renaming preserves realization: a sentence over two successive expansions says of a pair of assignments what its renaming says of the joined assignment.

              Dependency graph
              theorem DescriptiveComplexity.realize_blockFstLHom {L₀ : FirstOrder.Language} (B : SOBlock) {A : Type} [instA : L₀.Structure A] (μ : B.double.Assignment A) (φ : (L₀.sum B.lang).Sentence) :

              The first-copy renaming preserves realization, and in particular the result does not depend on the second component of the assignment.

              Dependency graph

              Merging two copies of the order #

              The renaming merging the two order symbols of a doubly ordered expansion: the Tseitin builders add an order to the vocabulary they are given, which here is already ordered.

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

                Merging the two order symbols is an expansion: both are read by the same linear order.

                Dependency graph

                Merging the two order symbols preserves realization.

                Dependency graph