Documentation

DescriptiveComplexity.TwoCopies

Two marked copies of a vocabulary, and the isomorphism problem they carry #

Every problem of the GI degree has the same shape: one universe holding two marked structures over the same vocabulary, and the question whether they are isomorphic. DescriptiveComplexity.Problems.DigraphIso and DescriptiveComplexity.Problems.DagIso each hand-roll that shape (FirstOrder.Language.twoGraphs, FirstOrder.Language.twoDags), which is fine for one problem and wasteful for a family.

FirstOrder.Language.twoCopies L₁ builds it once: two unary marks, and two copies of every relation symbol of L₁. A structure over it carries an L₁-structure on each marked set (DescriptiveComplexity.patSideStructure, DescriptiveComplexity.hostSideStructure), and DescriptiveComplexity.TwoCopiesIso is the decision problem asking whether those two L₁-structures are isomorphic.

The reason to have it is the gadget layer this file is written for: a construction on single L₁-structures can be doubled – run relativized to each mark – only if the target vocabulary is known to be two copies of something, since the defining formulas have to be given symbol by symbol. Problems added to the degree from here on should be stated over twoCopies; the two existing hand-rolled vocabularies stay as they are, their results being already proved.

Relation symbols of the two-copy vocabulary: a mark for each side, and two copies of every relation symbol of the base vocabulary.

Instances For
    Dependency graph

    Two marked copies of a relational vocabulary, sharing one universe.

    Equations
    Instances For
      Dependency graph
      Dependency graph
      @[reducible, inline]

      The pattern mark.

      Equations
      Instances For
        Dependency graph
        @[reducible, inline]

        The host mark.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]
          abbrev FirstOrder.Language.tcPat {L₁ : Language} {n : } (r : L₁.Relations n) :

          The pattern copy of a base relation symbol.

          Equations
          Instances For
            Dependency graph
            @[reducible, inline]
            abbrev FirstOrder.Language.tcHost {L₁ : Language} {n : } (r : L₁.Relations n) :

            The host copy of a base relation symbol.

            Equations
            Instances For
              Dependency graph
              Dependency graph
              Dependency graph
              @[instance_reducible]

              The pattern side, as a structure over the base vocabulary.

              Equations
              • One or more equations did not get rendered due to their size.
              Dependency graph
              @[instance_reducible]

              The host side, as a structure over the base vocabulary.

              Equations
              • One or more equations did not get rendered due to their size.
              Dependency graph
              @[reducible, inline]

              An isomorphism of the two sides, over the base vocabulary.

              Equations
              Instances For
                Dependency graph

                Isomorphism-invariance #

                def DescriptiveComplexity.patSideMap {L₁ : FirstOrder.Language} {A B : Type} [L₁.twoCopies.Structure A] [L₁.twoCopies.Structure B] (e : L₁.twoCopies.Equiv A B) (x : { x : A // TCPatMark x }) :
                { y : B // TCPatMark y }

                An isomorphism of the ambient structures restricts to the pattern sides.

                Equations
                Instances For
                  Dependency graph
                  def DescriptiveComplexity.hostSideMap {L₁ : FirstOrder.Language} {A B : Type} [L₁.twoCopies.Structure A] [L₁.twoCopies.Structure B] (e : L₁.twoCopies.Equiv A B) (x : { x : A // TCHostMark x }) :
                  { y : B // TCHostMark y }

                  An isomorphism of the ambient structures restricts to the host sides.

                  Equations
                  Instances For
                    Dependency graph

                    The restriction of an ambient isomorphism to the pattern sides is itself an isomorphism over the base vocabulary.

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

                      The restriction of an ambient isomorphism to the host sides.

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

                        Isomorphic sides transport along an isomorphism of the ambient structures.

                        Dependency graph

                        The isomorphism problem of a vocabulary: are the two marked L₁-structures of the instance isomorphic? Every entry of the GI degree added from here on is an instance of this shape.

                        Equations
                        Instances For
                          Dependency graph