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 : A → Prop) (E : A → A → Prop) :

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 : B → Prop} {EB : B → B → Prop} {VA : A → Prop} {EA : A → A → Prop} (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 : B → Prop} {EB : B → B → Prop} {VA : A → Prop} {EA : A → A → Prop} (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

          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

            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 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. Registered in the Lax archive as Lax604544.IsomorphismInNP.graphIso_mem_NP.

                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.) Registered in the Lax archive as Lax604544.IsomorphismInNP.GI_subset_NP.

                Dependency graph