CLIQUE has a polynomial-time WordRAM certificate verifier
ProvedCliqueNP.clique_ram_verifiercliquecook-levinnp-completenesswordram
There is a restricted-model WordRAM algorithm deciding a Boolean predicate on (input, certificate) pairs within polynomially many steps, such that
- accepted certificates are polynomially short: implies for fixed constants ;
- characterises the encoded CLIQUE language:
Here means is the encoding (unary vertex count , unary threshold , row-major adjacency bits) of a finite simple undirected graph having a set of at least pairwise adjacent vertices. The natural certificate is the characteristic vector of the clique (length ); the verifier parses the input, checks that the matrix is square, symmetric and loop-free, counts the selected vertices against , and checks every selected pair for adjacency. This is the NP-membership half of CLIQUE's NP-completeness, in the same format as KSat.ksat_ram_verifier.
Preamble
import Definitions.Def_WordRAM_Complexity_BitIO import Definitions.Def_Clique_Language set_option autoImplicit false
Formal statement
theorem CliqueNP.clique_ram_verifier :
∃ (A : WordRAM.Complexity.Algorithm .restricted)
(V : List Bool → List Bool → Bool) (a b : Nat),
WordRAM.Complexity.RAMPolyTimeDecidable A V ∧
(∀ x y, V x y = true → y.length ≤ CookLevin.polyBound a b x.length) ∧
(∀ x, CliqueNP.CLIQUE x ↔ ∃ y, V x y = true) := by sorry
Source
Richard M. Karp, Reducibility Among Combinatorial Problems, Complexity of Computer Computations, Plenum Press, pp. 85–103, 1972. https://doi.org/10.1007/978-1-4684-2001-2_9 . Main Theorem, problem 3 (CLIQUE), p. 94: membership in NP.