#Hamilton Circuit is parsimoniously #P-complete #
DescriptiveComplexity.sharpHamCircuit_sharpP_parsimoniousComplete, by a reduction from
the directed problem (DescriptiveComplexity.sharpDirHamCircuit_parsimonious_sharpHamCircuit),
order-free and without a domain formula.
The reduction of the library in the other direction, doubling each edge, is
not parsimonious for edge sets: an undirected circuit becomes its two
orientations. The classical reduction in this direction is. Each vertex x
is split into a path (i, x) – (m, x) – (o, x), and an arc x → y becomes
the edge (o, x) – (i, y) (DescriptiveComplexity.Split.SArc).
The middle vertex has its two path neighbours and nothing else, so a circuit
passes through it, in one direction or the other. Entering a vertex by i
and leaving it by o forces the same at the next vertex – were it entered by
o, its i would be reached twice – and so, by induction along the circuit
(DescriptiveComplexity.IsCircuit.induction), at every vertex
(DescriptiveComplexity.Split.forward_all). An undirected circuit of the split graph
thus has an orientation in which every vertex is traversed i, m, o, and that
orientation is a directed circuit of the graph, read on the edges
(o, x) – (i, y). Directed circuits and edge sets correspond bijectively
(DescriptiveComplexity.Split.splitEquiv).
Both directions of the correspondence build a circuit from a potential
(DescriptiveComplexity.isCircuit_of_potential): the position of the vertex in the
other circuit.
The three copies of a vertex.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Dependency graph
The arcs of the split graph of a relation: the path of each vertex, and one arc from exit to entry per arc of the relation.
Equations
- DescriptiveComplexity.Split.SArc R (DescriptiveComplexity.Split.T3.i, x_2) (DescriptiveComplexity.Split.T3.m, y) = (x_2 = y)
- DescriptiveComplexity.Split.SArc R (DescriptiveComplexity.Split.T3.m, x_2) (DescriptiveComplexity.Split.T3.o, y) = (x_2 = y)
- DescriptiveComplexity.Split.SArc R (DescriptiveComplexity.Split.T3.o, x_2) (DescriptiveComplexity.Split.T3.i, y) = R x_2 y
- DescriptiveComplexity.Split.SArc R x✝¹ x✝ = False
Instances For
Dependency graph
The edges of the split graph.
Equations
Instances For
Dependency graph
Dependency graph
From a directed circuit to a circuit of the split graph #
A directed circuit, split, is a circuit of the split graph.
Dependency graph
From a circuit of the split graph to a directed circuit #
The circuit passes through the middle copy of a vertex, one way or the other.
Dependency graph
If one vertex is traversed forward, all are.
Dependency graph
A forward circuit of the split graph is a split directed circuit.
Dependency graph
The correspondence #
A split relation is read back on its exit-to-entry arcs.
Dependency graph
The undirected circuits of the split graph are the directed circuits of the graph, bijectively.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The interpretation #
The arc formulas of the split graph, by tags.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.Split.splitF DescriptiveComplexity.Split.T3.i DescriptiveComplexity.Split.T3.m = (FirstOrder.Language.var (0, 0)).equal (FirstOrder.Language.var (1, 0))
- DescriptiveComplexity.Split.splitF DescriptiveComplexity.Split.T3.m DescriptiveComplexity.Split.T3.o = (FirstOrder.Language.var (0, 0)).equal (FirstOrder.Language.var (1, 0))
- DescriptiveComplexity.Split.splitF x✝¹ x✝ = ⊥
Instances For
Dependency graph
The interpretation splitting each vertex of a digraph in three.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The interpreted universe is three copies of the input.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Correctness of the interpretation, for counting.
Dependency graph
#Directed Hamilton Circuit reduces parsimoniously to #Hamilton Circuit, by splitting each vertex in three; no order and no domain formula are needed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
#Hamilton Circuit is parsimoniously #P-hard.
Dependency graph
#Hamilton Circuit is parsimoniously #P-complete: counting the Hamilton
circuits of an undirected graph, as sets of edges.
Registered in the Lax archive as
Lax280166.HamCircuitComplete.sharpHamCircuit_sharpP_parsimoniousComplete.
Dependency graph
SharpHamCircuit is #P-complete: parsimoniously, hence under subtractive
reductions.