void loop(int x)
{
if(x==1)
return;
else
while(true);
}
//1을 제외한 모두 정지
int halt(func, cond){
if (func terminates with cond)
return 1; //멈출 수 있음
else
return 0; //멈출 수 없음
}
/*
halt(loop, x=1)? "yes"
halt(loop, x=0)? "no"
*/
void verify(func){
if (halt(func, func))
loop(0); //멈출 수 없는 함수를 호출
else
loop(1); //멈출 수 있는 함수를 호출
}
verify(verify); //멈출 것이냐, 멈추지 않을 것이냐
Clique문제를 CNF-Satisfiable라는걸 증명하면 NP하다