Run M for p(n) steps. The tape never moves beyond cell p(n). So the whole run is a grid:
cell 0
cell 1
...
cell p(n)
time 0
...
...
time 1
...
...
...
time p(n)
A (p(n)+1)×(p(n)+1)tableau. Each cell holds a tape symbol, plus we mark where the head is and what state M is in. Why this step? The entire behaviour of M is captured by this finite grid — finite ⇒ encodable with finitely many Boolean variables.
For each tableau position (i,j) and each possible content s (a tape symbol, or "head here in state q"), define
xi,j,s=TRUE⟺cell (i,j) has content s.Why? This is the dual coding: a physical configuration ↔ a truth assignment. Number of variables =O(p(n)2)⋅(constant alphabet)= polynomial. ✔
Why the 2×3 window for moves? The Turing head only affects the cell under it and its neighbours in one step. So legality is a local property: if every little window is locally legal, the whole run is legal. This locality is what keeps the formula size polynomial.
A triangle of 3 vertices (one per literal), forcing ≤1 chosen per clause.
Reduction 3-SAT ≤_p IS: consistency edges
Edges between complementary literals x and ¬x to forbid contradictory choices.
In 3-SAT ≤_p IS, what target size k
k = number of clauses m.
Is P ⊆ NP
Yes — anything solvable in poly time is trivially verifiable in poly time.
Why ≤_p transitivity matters
It lets new NP-completeness proofs chain off one anchor (SAT) instead of re-reducing all of NP.
Recall Feynman: explain to a 12-year-old
Imagine a giant lock factory making thousands of different tricky locks (hard puzzles). Cook found ONE special master key (SAT) that can open every lock the factory makes. So if you ever invent a super-fast way to copy that master key, you instantly open all the locks. And to prove a new lock is also super-tricky, you just show "this new lock can be shaped to act like the master key" — that means it's tricky too. The trick to building the master key was writing down the whole step-by-step diary of a guessing-robot solving a puzzle, as one giant true/false riddle: the riddle is solvable exactly when the robot can win.
Dekho, idea simple hai par powerful. NP ka matlab hai aise problems jinka answer "haan" ho to uska certificate (ek guessed solution) hum poly-time me verify kar sakte hain. SAT ek aisi problem hai: ek Boolean formula do, kya koi true/false assignment hai jo use TRUE bana de? Cook ne prove kiya ki SAT NP-complete hai — yaani SAT NP me hai aur NP ki har problem SAT me reduce ho jaati hai. Matlab SAT ek "master key" hai: agar SAT fast solve ho gaya, to poori NP fast solve ho jaayegi.
Cook ka jugaad genius hai. Koi bhi NP problem lo — uske liye ek nondeterministic Turing machine hai jo poly steps me accept karti hai. Cook us machine ke poore computation ko ek tableau (grid: rows = time, columns = tape cells) ke roop me likhte hain, aur har cell ke content ko Boolean variable bana dete hain. Phir clauses lagao: har cell ka exactly ek content ho, row 0 sahi start ho, kahin accepting state aaye, aur har 2×3 window legal transition follow kare (kyunki TM ka head local change karta hai). Yeh formula tabhi satisfiable hoga jab machine accept karti hai. Bas — har NP problem SAT me reduce ho gayi.
Ab sabse important practical baat: reduction ki direction. Kisi nayi problem B ko NP-hard prove karna ho to ek already-known hard problem A ko B me reduce karo, yaani A≤pB. Galat tareeka hai B ko SAT me daalna — usse sirf yeh sabit hota hai ki B SAT se zyada hard nahi, jo hum chahte hi nahi. Slogan yaad rakho: "famous hard problem se reduce karo, apni nayi problem ki taraf." Jaise 3-SAT ≤p Independent Set me har clause ka ek triangle banate hain aur complementary literals ke beech edge daalte hain.
Yeh matter isliye karta hai kyunki ek baar SAT anchor mil gaya, aur reductions transitive hote hain, to naye NP-complete problems prove karna sasta ho gaya — poori NP dobara reduce karne ki zaroorat nahi. Yahi P vs NP question ki foundation hai.