Cliques #
Clique is the set of graphs with a clique of a given number of their vertices Arora and Barak,
Section 2.4. A set of vertices is independent in a graph exactly when it is a clique
in the complement of the graph on its vertices (Graph.compl), so complementing the graph reduces
IndependentSet to Clique [Kar72]. The verifier is Cslib.Complexity.Graph.verifySubset for
adjacency, an instance of the subset-witness verifier Cslib.Complexity.subsetVerifier.
The same problem as a class of finite structures, closed under isomorphism and without an
encoding, with the target size given by a unary relation, is
Cslib.Logic.FO.sizedGraph.Clique. There loops are ignored, edges need not be symmetric,
and the reductions between independent set, clique and vertex cover are quantifier-free
first-order interpretations.
Main definitions #
Cslib.Complexity.CliqueInstance,Cslib.Complexity.Clique,Cslib.Complexity.Graph.compl.Cslib.Complexity.Graph.cliqueNum: the clique number (G.induced.cliqueNum).Cslib.Complexity.Clique.verifier.
Main results #
Cslib.Complexity.mem_Clique_iff: cliques as subsets ofℕcontained in the declared vertices.Cslib.Complexity.Graph.induced_compl,Cslib.Complexity.Graph.compl_mem_Clique_iff:G.compl.induced = G.inducedᶜand(G.compl, m) ∈ Clique ↔ (G, m) ∈ IndependentSet.Cslib.Complexity.Graph.compl_mem_IndependentSet_iff:(G.compl, m) ∈ IndependentSet ↔ (G, m) ∈ Clique.Cslib.Complexity.Graph.le_cliqueNum_iff,Cslib.Complexity.Graph.cliqueNum_compl: the clique number is the largest target ofClique, and that of the complement is the independence number.Cslib.Complexity.Graph.computableInPolyTime_compl: complementing a graph on its declared vertices is polynomial-time.Cslib.Complexity.Clique.mem_NP:Clique ∈ NP encCliqueInstance.Cslib.Complexity.polyTimeReducible_IndependentSet_Clique,Cslib.Complexity.polyTimeReducible_Clique_IndependentSet:IndependentSetandCliquereduce to each other in polynomial time.Cslib.Complexity.Clique_npHard:CliqueisNP-hard.Cslib.Complexity.Clique_npComplete:CliqueisNP-complete.
References #
An instance (graph, m) of Clique.
Instances For
Instances For
Instances For
Framed encGraph followed by binary target encNat, encoding CliqueInstance.
Instances For
The graphs with a clique of m of their vertices.
Instances For
The complement of a graph on its vertices: an edge between any two distinct vertices that are not adjacent.
Instances For
Complementing a graph on its declared vertices is polynomial-time with the graph encoding.
Clique.verifier verifies Clique with certificates as long as the encoded instance.
Complementing the graph reduces IndependentSet to Clique.
Instances For
Complementing the graph reduces Clique to IndependentSet.
Instances For
IndependentSet reduces to Clique in polynomial time by complementing the graph on its
declared vertices.
Clique reduces to IndependentSet in polynomial time by complementing the graph on its
declared vertices.
Clique is NP-complete.
The clique number #
The clique number of a graph: the largest number of declared vertices that are pairwise adjacent.