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 #
The relation E is symmetric and irreflexive on the marked set V: a
simple graph, as opposed to an arbitrary binary relation.
Equations
- DescriptiveComplexity.SimpleOn V E = ((∀ (x y : A), V x → V y → E x y → E y x) ∧ ∀ (x : A), V x → ¬E x x)
Instances For
Dependency graph
SimpleOn transports along an equivalence commuting with the two
predicates.
Dependency graph
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
The graph-isomorphism property is isomorphism-invariant.
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
- DescriptiveComplexity.GraphIso = { Holds := fun (A : Type) (inst : FirstOrder.Language.twoGraphs.Structure A) => DescriptiveComplexity.HasGraphIso A, iso_invariant := ⋯ }
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.
Instances For
Dependency graph
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.)