Documentation

DescriptiveComplexity.Problems.GraphIso.Defs

Graph Isomorphism: vocabulary, semantics, and membership in the GI degree #

GRAPH ISOMORPHISM, as the literature means it: are the two simple graphs of the instance isomorphic? DescriptiveComplexity.DigraphIso is the same question over FirstOrder.Language.twoGraphs with no condition on the two binary relations, hence for directed graphs; this problem is that one restricted to instances whose relations are symmetric and irreflexive.

Unlike acyclicity (DescriptiveComplexity.Problems.DagIso), that restriction is first-order, so nothing has to be carried by the instance: the reduction into DigraphIso simply tests it. This file also defines the GI degree (DescriptiveComplexity.GI), on this problem: it is what the literature means by graph isomorphism, so it is what the degree should be named after. The directed problem is complete for it too – the two are interreducible – but that needs the gadget of DescriptiveComplexity.Problems.GraphIso.Hardness, so it is proved there.

The generic property #

def DescriptiveComplexity.SimpleOn {A : Type} (V : AProp) (E : AAProp) :

The relation E is symmetric and irreflexive on the marked set V: a simple graph, as opposed to an arbitrary binary relation.

Equations
Instances For
    Dependency graph
    theorem DescriptiveComplexity.SimpleOn.of_equiv {A B : Type} (u : B A) {VB : BProp} {EB : BBProp} {VA : AProp} {EA : AAProp} (hV : ∀ (b : B), VB b VA (u b)) (hE : ∀ (b b' : B), EB b b' EA (u b) (u b')) (h : SimpleOn VB EB) :
    SimpleOn VA EA

    SimpleOn transports along an equivalence commuting with the two predicates.

    Dependency graph
    theorem DescriptiveComplexity.SimpleOn.equiv_iff {A B : Type} (u : B A) {VB : BProp} {EB : BBProp} {VA : AProp} {EA : AAProp} (hV : ∀ (b : B), VB b VA (u b)) (hE : ∀ (b b' : B), EB b b' EA (u b) (u b')) :
    SimpleOn VB EB SimpleOn VA EA

    SimpleOn transports along an equivalence, iff version.

    Dependency graph

    The problem #

    Both marked graphs are simple, and they are isomorphic.

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

      GRAPH ISOMORPHISM: are the two marked simple graphs isomorphic? Simplicity is part of the yes-condition, and is first-order, so a reduction can test it – unlike acyclicity in DescriptiveComplexity.DagIso, which has to be carried by the instance.

      Equations
      Instances For
        Dependency graph

        Membership: forget nothing, just check simplicity #

        E is symmetric and irreflexive on V, as a first-order sentence over any variable type, so that it can be conjoined inside the defining formulas of an interpretation.

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

          Both sides of the instance are simple graphs.

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

            The interpretation of Graph Isomorphism into Digraph Isomorphism: copy both marked graphs if they are simple, and otherwise emit a pattern with no vertices facing a host with all of them.

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

              The unique copy of a vertex.

              Equations
              Instances For
                Dependency graph
                theorem DescriptiveComplexity.GraphIso.uPt_eta {A : Type} (t : Unit) (w : Fin 1A) :
                (t, w) = uPt (w 0)
                Dependency graph

                The map is a copy of the universe: dimension one, one tag.

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

                  Correctness: the image is a yes-instance of Digraph Isomorphism exactly when the input is one of Graph Isomorphism.

                  Dependency graph

                  Graph Isomorphism FO-reduces to Digraph Isomorphism: check simplicity first-order, then copy.

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

                    The degree #

                    The GI degree: the problems that (ordered) first-order reduce to Graph Isomorphism, as a complexity class (DescriptiveComplexity.ComplexityClass.below). A problem is GI-complete – in this library's finer, first-order sense – when it is DescriptiveComplexity.ComplexityClass.Complete for GI.

                    The degree is named after the undirected problem, as the literature is: the directed one has the same degree (DescriptiveComplexity.GI_eq_below_digraphIso), but is not what “GI” means.

                    Equations
                    Instances For
                      Dependency graph

                      Graph Isomorphism belongs to its own degree.

                      Dependency graph

                      Graph Isomorphism is in NP: it reduces to the directed problem, which is.

                      Dependency graph

                      The whole GI degree lies inside NP, since Graph Isomorphism does and membership travels backward along reductions. (Whether the inclusion is strict is the open question; the framework decides no such thing.)

                      Dependency graph