Perfect matchings as an exactly-one instance #
The perfect matchings of the graph G.induced of a vertex and edge list G : Graph are the
models of a Holant instance (Cslib.Complexity.Graph.perfectMatchingInstance): one Boolean
variable for each edge, and one exactly-one constraint for each vertex on its incident edges. The
edges are listed by Cslib.Complexity.Graph.edgeList, which keeps the edges of G between
distinct declared vertices and erases repetitions in either orientation, so that its positions
are the edges of G.induced. The exactly-one partition function of the instance is the number of
perfect matchings (Cslib.Complexity.Graph.partitionFunction_perfectMatchingInstance).
Every variable occurs in the constraints of the two ends of its edge
(Cslib.Complexity.Graph.count_vars_perfectMatchingInstance), and the constraint of a vertex has
at most as many variables as the vertex has neighbours
(Cslib.Complexity.Graph.length_le_of_mem_perfectMatchingInstance).
Main definitions #
Cslib.Complexity.Graph.edgeList: the edges ofG.induced, each listed once.Cslib.Complexity.Graph.perfectMatchingInstance: the perfect-matching instance.
Main results #
Cslib.Complexity.Graph.partitionFunction_perfectMatchingInstance: its exactly-one partition function is the number of perfect matchings ofG.induced.Cslib.Complexity.Graph.count_vars_perfectMatchingInstance: each variable occurs at most twice.Cslib.Complexity.Graph.length_le_of_mem_perfectMatchingInstance: a vertex constraint has at most as many variables as the vertex has neighbours.Cslib.Complexity.Graph.card_neighborSet_le: a vertex has at most as many neighbours as entries of the edge list at it, which makes a degree bound checkable.
The perfect-matching instance of G: a variable for each position of G.edgeList, and an
exactly-one constraint for each distinct declared vertex on the positions of its incident
edges.
Instances For
The instance #
The exactly-one partition function of the perfect-matching instance is the number of
perfect matchings of G.induced.
Occurrences and arities #
The constraints of the perfect-matching instance: one for each distinct declared vertex.
Every variable occurs at most twice: in the constraints of the two ends of its edge.
A vertex constraint has at most as many variables as the vertex has neighbours.