SAT ∈ ⟹ MaxIS ∈
Suppose ; some assignment satisfies it, i.e. for every clause there exists a literal valued . (Quantifier order matters: not "there exists a literal for every clause", which is far stronger and simply false.)
Let consist of one such vertex per clause. With clauses and vertices of distinct clauses being distinct, .
is independent. Let be distinct.
- A red edge? holds exactly one vertex per clause, so came from different clauses; red edges join only same-clause vertices.
- A black edge? By choice, values both corresponding literals . But a literal and its negation are never both , so are not a literal and its negation.
We are not done — that was only the "exists" half. The "for all" half is also needed:
Claim (maximality bound): every independent set in has size . Let be independent. Any two vertices of one clause are joined by a red edge, so holds no two from one clause; there are clauses, so . Note the claim holds for every , satisfiable or not — it depends only on the red edges.
Combining: an independent set of size exists, and every independent set has size . So , i.e. .