Behavioral (semantic) property = languageL(M) ki property — woh set of strings jo
machine accept karti hai. Example: "kya M empty string accept karta hai?", "kya L(M) infinite hai?", "kya
L(M)=∅ hai?".
Structural (syntactic) property = machine description ki property, na ki woh kya compute karta hai. Example: "kya M ke 7 states hain?", "kya M kabhi blank likhta hai?". Yeh aksar
decidable hote hain aur Rice inke baare mein kuch nahi kehta.
Setup. Maano P non-trivial hai. Hum undecidable language
ATM={⟨M,w⟩:M accepts w} use karte hain.
Step 1 — Baseline chuno. WLOG maano ∅∈/P (empty language ke paas yeh property nahi hai).
Yeh step kyun? Agar ∅∈P ho, toh sirf complement
property Pˉ ke liye undecidability prove karo; P decide karna Pˉ decide karna hoga, toh yeh symmetric hai. Isliye kuch nahi jaata.
Step 2 — Witness pakdo. Kyunki P non-trivial hai aur ∅∈/P, koi
language L(MP)∈P exist karti hai jise machine MP recognize karti hai.
Yeh step kyun? Non-triviality guarantee karti hai kam se kam ek "yes" example. Humein ek target language chahiye
jo property rakhti ho taaki hum us mein switch kar sakein.
Step 3 — Gadget. Input ⟨M,w⟩ diya hua, ek nayi machine GM,w banao jo input x par yeh kare:
x ko abhi ignore karo. Pehle M ko w par run karo (simulate).
Agar M ne w accept kiya, toh MP ko x par run karo aur accept karo agar MP accept kare x ko.
Agar M ne waccept kiya: step 1 finish hoga, toh GM,w exactly MP ki tarah behave karega, isliye
L(GM,w)=L(MP)∈P.
Agar M ne waccept nahi kiya: step 1 kabhi finish nahi hoga, GM,w kabhi step 2 tak nahi pahunchega, kuch
accept nahi karega, toh L(GM,w)=∅∈/P.
Toh:
L(GM,w)∈P⟺M accepts w.
Step 4 — Contradiction. Maano LP ke liye ek decider R exist karta hai. Use ⟨GM,w⟩ feed karo:
R "yes" bolta hai ⟺L(GM,w)∈P⟺M ne w accept kiya. Yeh ATM decide karta hai — impossible.
Isliye LPundecidable hai. ■
Socho tumhare paas ek magic box hai jo doosre chhote robot-programs chalata hai. Tum ek checker-machine chahte ho jo
ek robot ki instruction sheet padhe aur bataye "yeh robot eventually cat word bolega."
Rice's theorem kehti hai: aisi koi perfect checker machine exist nahi kar sakti kisi bhi interesting "woh eventually kya karega" sawaal ke liye. Sirf boring sawaalon ke jawab hamesha diye ja sakte hain jahan jawab
har robot ke liye same ho ("haan, hamesha" ya "nahi, kabhi nahi"). Wajah yeh hai: robot check karne ke liye, tumhare checker ko secretly pata hona chahiye ki robot kab bhi rukta hai — aur hum pehle hi prove kar chuke hain ki yeh general mein koi nahi jaanta.