Graph Isomorphism is GI-complete #
The last step: the gadget of DescriptiveComplexity.Problems.GraphIso.Gadget,
doubled by DescriptiveComplexity.GadgetDouble and read through the renaming
of DescriptiveComplexity.Problems.DigraphIso.Bridge, reduces Digraph
Isomorphism to Graph Isomorphism. Since simplicity is first-order the converse
reduction is a gated copy (DescriptiveComplexity.Problems.GraphIso.Defs), so
the two problems are interreducible and the degree they define is the same.
The one thing the doubling does not carry by itself is simplicity: its target
is the unrestricted DescriptiveComplexity.TwoCopiesIso, while
DescriptiveComplexity.GraphIso asks its instances to be simple graphs. That
is discharged here, by transporting the gadget's symmetry and irreflexivity
(DescriptiveComplexity.GraphGadget.edge_symm,
DescriptiveComplexity.GraphGadget.edge_irrefl) along the identification of
the sides of a doubled construction with the gadget's values
(DescriptiveComplexity.patSideDoubleEquiv).
The doubled gadget builds simple graphs #
The pattern side of the doubled gadget is a simple graph: its adjacency is the gadget's, which is symmetric and loopless.
Dependency graph
The host side of the doubled gadget is a simple graph.
Dependency graph
Reading the result in the hand-rolled vocabulary #
If the two sides of a generic instance are simple, so are the two sides of
its renaming into FirstOrder.Language.twoGraphs.
Dependency graph
If the two sides of a generic instance are simple, so are the two sides of
its renaming into FirstOrder.Language.twoGraphs.
Dependency graph
Correctness of the composite #
The doubled gadget, renamed, reduces the generic isomorphism problem to Graph Isomorphism. Simplicity of the image is what upgrades the target from the unrestricted problem to the simple-graph one.
Dependency graph
The reduction and the completeness theorem #
The generic isomorphism problem reduces to Graph Isomorphism: subdivide every arc three times, mark each vertex with a lollipop and each tail with a pendant, then read the result as a pair of simple graphs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Digraph Isomorphism reduces to Graph Isomorphism: the classical digraph-to-graph construction, through the renaming into the generic vocabulary.
Equations
Instances For
Dependency graph
Graph Isomorphism is GI-complete, the degree being defined on it.
Dependency graph
Digraph Isomorphism is GI-complete too: it reduces to the undirected problem by the gadget – every arc subdivided three times, each vertex carrying a lollipop and each tail a pendant – and the undirected problem reduces back to it by testing simplicity. The directed problem is not what the literature calls GI, which is why the degree is named after the other one; this theorem is what says the choice costs nothing.
Dependency graph
The directed and undirected problems have the same degree.
Dependency graph
And the same as the degree of the generic isomorphism problem of the graph
vocabulary, which is what a new entry stated over twoCopies reduces to.