The circuit of an exactly-one model #
The forward half of the correspondence between the exactly-one models of a CNF
formula and the Hamilton circuits of its row graph
(DescriptiveComplexity.Problems.Hamilton.CountingGadget): the relation
DescriptiveComplexity.HamGadget.S ν of an exactly-one assignment ν is a Hamilton
circuit (DescriptiveComplexity.HamGadget.isCircuit_S).
No enumeration of the circuit is written. The relation follows the arcs
(DescriptiveComplexity.HamGadget.arc_of_S), leaves every vertex exactly once
(DescriptiveComplexity.HamGadget.S_total, DescriptiveComplexity.HamGadget.S_functional) and
reaches every vertex (DescriptiveComplexity.HamGadget.S_surj): four case analyses on
the kind of a vertex. And a potential increases along it everywhere but at the
exit of the last row (DescriptiveComplexity.HamGadget.key_lt): the variable first,
then the position in the row, counted from the left for a true variable and
from the right for a false one. That is a circuit, by
DescriptiveComplexity.isCircuit_of_potential.
The circuit of an assignment follows the arcs.
Dependency graph
The circuit of an exactly-one assignment leaves a vertex at most once.
Dependency graph
The circuit of an exactly-one assignment leaves every vertex.
Dependency graph
The circuit of an exactly-one assignment reaches every vertex.
Dependency graph
The potential #
The vertices of the row graph are finitely many.
Dependency graph
The true literal of a clause under an assignment, when there is one.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The key of a row vertex: its variable, then its position, counted from the left when the variable is true and from the right when it is false.
Instances For
Dependency graph
Dependency graph
Dependency graph
The potential: the variable of a vertex, then its position in the row; a clause vertex sits in the row of its true literal, between the two vertices of the occurrence.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.top x_1) = toLex (x_1, -(4 * ↑(DescriptiveComplexity.HamGadget.occTotal x_1) + 8))
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.lft x_1) = DescriptiveComplexity.HamGadget.rowKey ν x_1 1
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.pad0 x_1) = DescriptiveComplexity.HamGadget.rowKey ν x_1 2
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.ain s x_1 c) = DescriptiveComplexity.HamGadget.rowKey ν x_1 (4 * ↑(DescriptiveComplexity.HamGadget.occRank x_1 c s) + 3)
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.bout s x_1 c) = DescriptiveComplexity.HamGadget.rowKey ν x_1 (4 * ↑(DescriptiveComplexity.HamGadget.occRank x_1 c s) + 5)
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.pad s x_1 c) = DescriptiveComplexity.HamGadget.rowKey ν x_1 (4 * ↑(DescriptiveComplexity.HamGadget.occRank x_1 c s) + 6)
- DescriptiveComplexity.HamGadget.key ν (DescriptiveComplexity.HamGadget.Vtx.rgt x_1) = DescriptiveComplexity.HamGadget.rowKey ν x_1 (4 * ↑(DescriptiveComplexity.HamGadget.occTotal x_1) + 7)
- DescriptiveComplexity.HamGadget.key ν DescriptiveComplexity.HamGadget.Vtx.zero = toLex (Classical.arbitrary A, 0)
Instances For
Dependency graph
Dependency graph
Dependency graph
The potential increases along the circuit of an exactly-one assignment,
except at the exit of the last row – and at the loop of zero.
Dependency graph
The relation of an exactly-one assignment is a Hamilton circuit of the row graph.