#Clique is parsimoniously #P-complete #
DescriptiveComplexity.sharpClique_sharpP_parsimoniousComplete, by a reduction from
#1-in-SAT (DescriptiveComplexity.sharpOneInSat_ordered_parsimonious_sharpClique).
The reduction of DescriptiveComplexity.Problems.CliqueFamily.FromSat is not
parsimonious: a clique picks one true literal in each clause, and a satisfying
assignment usually offers several. Under exactly-one satisfaction the choice
is forced, provided a vertex says all that choosing it entails. So an
occurrence vertex (c, x, s) here stands for “(x, s) is the true literal of
c, and every other literal of c is false”, which fixes the value of every
variable of c (DescriptiveComplexity.OneInToClique.ForceAt), and two occurrence
vertices of distinct clauses are adjacent when the values they fix agree
(DescriptiveComplexity.OneInToClique.Clash). A vertex whose own demands are
contradictory – its clause holds another variable with both signs – is adjacent
to nothing.
A singleton is a clique whatever the graph, so the threshold is kept away from
1: each clause c also has a clause vertex (cl, (c, c)), adjacent to
every other clause vertex and to every consistent occurrence vertex, and the
marked set has two elements per clause. A clique of that size holds every
clause vertex and one occurrence vertex per clause
(DescriptiveComplexity.OneInToClique.clique_slots), pairwise in agreement: an
exactly-one model, and each model arises once
(DescriptiveComplexity.OneInToClique.solEquiv). A clause with no literal has no
occurrence vertex, so the count is 0, as it should be.
The formulas do not mention the order; as in the decision reduction, the packaging is ordered because both counts are of finite structures only.
The semantic side #
Choosing (x, s) as the one true literal of the clause c gives the
variable y the value b, as read on the occurrence (y, t) of c: the
literal (y, t) is true exactly when it is the chosen one.
Equations
- DescriptiveComplexity.OneInToClique.ForceAt c x s y t b = (DescriptiveComplexity.SatOcc.OccIn c y t ∧ (b = t ↔ y = x ∧ t = s))
Instances For
Dependency graph
The choices (c, x, s) and (c', x', s') disagree: some variable is made
true by the first and false by the second.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The formulas and the interpretation #
DescriptiveComplexity.OneInToClique.ForceAt, as a formula: the signs are
parameters.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
DescriptiveComplexity.OneInToClique.Clash, as a formula.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
DescriptiveComplexity.OneInToClique.Sound, as a formula.
Equations
Instances For
Dependency graph
DescriptiveComplexity.OneInToClique.Valid, as a formula.
Equations
- DescriptiveComplexity.OneInToClique.validF DescriptiveComplexity.SatCliqueTag.pos x✝¹ x✝ = DescriptiveComplexity.OneInToClique.soundF true x✝¹ x✝
- DescriptiveComplexity.OneInToClique.validF DescriptiveComplexity.SatCliqueTag.neg x✝¹ x✝ = DescriptiveComplexity.OneInToClique.soundF false x✝¹ x✝
- DescriptiveComplexity.OneInToClique.validF DescriptiveComplexity.SatCliqueTag.cl x✝¹ x✝ = DescriptiveComplexity.SatOcc.eqF x✝¹ x✝ ⊓ DescriptiveComplexity.SatOcc.clF x✝¹
Instances For
Dependency graph
DescriptiveComplexity.OneInToClique.SepS, as a formula. The free variable
(i, j) is the j-th component of the i-th vertex.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
DescriptiveComplexity.OneInToClique.Sep, as a formula.
Equations
- DescriptiveComplexity.OneInToClique.sepF DescriptiveComplexity.SatCliqueTag.pos DescriptiveComplexity.SatCliqueTag.pos = DescriptiveComplexity.OneInToClique.sepSF true true
- DescriptiveComplexity.OneInToClique.sepF DescriptiveComplexity.SatCliqueTag.pos DescriptiveComplexity.SatCliqueTag.neg = DescriptiveComplexity.OneInToClique.sepSF true false
- DescriptiveComplexity.OneInToClique.sepF DescriptiveComplexity.SatCliqueTag.neg DescriptiveComplexity.SatCliqueTag.pos = DescriptiveComplexity.OneInToClique.sepSF false true
- DescriptiveComplexity.OneInToClique.sepF DescriptiveComplexity.SatCliqueTag.neg DescriptiveComplexity.SatCliqueTag.neg = DescriptiveComplexity.OneInToClique.sepSF false false
- DescriptiveComplexity.OneInToClique.sepF x✝¹ x✝ = ⊤
Instances For
Dependency graph
The adjacency formulas of the interpretation, by tag.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The mark formulas of the interpretation, by tag.
Equations
Instances For
Dependency graph
The interpretation producing, from an ordered CNF structure, the clique instance whose threshold-size cliques are its exactly-one models.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Characterizations of the interpreted relations #
Naming the vertices #
The vertex of tag t at the pair (c, x).
Instances For
Dependency graph
The two sides of the bijection #
The clique of an assignment: every clause vertex, and the occurrence vertices of its true literals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The assignment of a clique: the variables some occurrence vertex of the clique makes true.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The slots of a clique of the threshold size: two per clause.
Equations
Instances For
Dependency graph
Correctness #
The clique of an exactly-one assignment has the threshold size.
Dependency graph
A clique of the threshold size fills every slot: it holds every clause vertex, and an occurrence vertex of every clause.
Dependency graph
The assignment of a clique of the threshold size is an exactly-one model.
Dependency graph
A clique of the threshold size is the clique of its assignment.
Dependency graph
An exactly-one model is the assignment of its clique.
Dependency graph
The cliques of the threshold size of the interpreted graph are the exactly-one models of the CNF formula, bijectively.
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
#1-in-SAT reduces parsimoniously to #Clique.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
#Clique is parsimoniously #P-hard.
Dependency graph
#Clique is parsimoniously #P-complete, counting the cliques of exactly
the threshold size.
Registered in the Lax archive as
Lax280166.CliqueComplete.sharpClique_sharpP_parsimoniousComplete.
Dependency graph
SharpClique is #P-complete: parsimoniously, hence under subtractive
reductions.