While this submission is a draft, it cannot be used by other submissions.

Graph isomorphism and the class GI

Lax604544.GraphIsomorphism · concepts/Lax604544/GraphIsomorphism.lean · lax-604544

definition

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Definition

    An instance is a pair of graphs on one universe, as for the subgraph isomorphism problem of the catalog of NP-complete problems: a structure with two unary marks, the vertices of the pattern and of the host, and two binary relations, their edges. It is a yes-instance of Digraph Isomorphism when it is finite and the two marked relations are isomorphic. It is a yes-instance of Graph Isomorphism when moreover both relations are simple graphs on their vertices, symmetric and irreflexive. Each problem is the decision problem of the structures isomorphic to such an instance.

    GI is the degree of Graph Isomorphism: the class of the problems that reduce to it by an ordered first-order reduction. The degree is defined on the undirected problem, the one the literature calls GI.

    Concept map
    11 concepts; 6 descendants hidden
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    Lean source view on GitHub

    1import Mathlib.ModelTheory.Semantics
    2import Lax904597.Problems
    3import Lax485149.Problems
    4import Lax904597.Classes
    5import Lax799700.SubgraphIso
    6import Lax604544.RelationIsomorphism
    7import Lax604544.Degrees
    8
    9/-!
    10---
    11title: Graph isomorphism and the class GI
    12type: definition
    13---
    14An instance is a pair of graphs on one universe, as for the subgraph
    15isomorphism problem of the catalog of NP-complete problems: a structure
    16with two unary marks, the vertices of the pattern and of the host, and two
    17binary relations, their edges. It is a yes-instance of Digraph Isomorphism
    18when it is finite and the two marked relations are isomorphic. It is a
    19yes-instance of Graph Isomorphism when moreover both relations are simple
    20graphs on their vertices, symmetric and irreflexive. Each problem is the
    21decision problem of the structures isomorphic to such an instance.
    22
    23GI is the degree of Graph Isomorphism: the class of the problems that
    24reduce to it by an ordered first-order reduction. The degree is defined on
    25the undirected problem, the one the literature calls GI.
    26-/
    27
    28namespace Lax604544.GraphIsomorphism
    29
    30open FirstOrder FirstOrder.Language
    31open Lax904597.Problems Lax904597.Classes Lax485149.Problems Lax799700.SubgraphIso
    32open Lax604544.RelationIsomorphism Lax604544.Degrees
    33
    34section Problem
    35
    36variable (A : Type) [twoGraphs.Structure A]
    37
    38/-- The two marked graphs of the instance are isomorphic. -/
    39def HasDigraphIso : Prop :=
    40 Finite A ∧ RelIsoOn (TGPatV (A := A)) TGHostV TGPatE TGHostE
    41
    42end Problem
    43
    44section Generic
    45
    46variable {A : Type}
    47
    48/-- The relation `E` is symmetric and irreflexive on the marked set `V`: a
    49simple graph, as opposed to an arbitrary binary relation. -/
    50def SimpleOn (V : A → Prop) (E : A → A → Prop) : Prop :=
    51 (∀ x y, V x → V y → E x y → E y x) ∧ ∀ x, V x → ¬E x x
    52
    53end Generic
    54
    55section Problem
    56
    57variable (A : Type) [twoGraphs.Structure A]
    58
    59/-- Both marked graphs are simple, and they are isomorphic. -/
    60def HasGraphIso : Prop :=
    61 Finite A ∧ SimpleOn (TGPatV (A := A)) TGPatE ∧ SimpleOn (TGHostV (A := A)) TGHostE ∧
    62 RelIsoOn (TGPatV (A := A)) TGHostV TGPatE TGHostE
    63
    64end Problem
    65
    66/-- Digraph Isomorphism: are the two marked directed graphs of the instance
    67isomorphic? -/
    68def DigraphIso : DecisionProblem twoGraphs :=
    69 DecisionProblem.ofPred fun A _ => HasDigraphIso A
    70
    71/-- Graph Isomorphism: are the two marked graphs simple and isomorphic? -/
    72def GraphIso : DecisionProblem twoGraphs :=
    73 DecisionProblem.ofPred fun A _ => HasGraphIso A
    74
    75/-- **GI**: the degree of Graph Isomorphism. -/
    76def GI : ComplexityClass := below GraphIso
    77
    78end Lax604544.GraphIsomorphism
    79

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…