What
can happen?
case 0: The
call to HALTS returns 0
* Thus it loops forever ... but HALTS always returns
so the program must have reached the infinite
"while (1)" which can only happen if HALTS returns 1.
case 1: HALTS
returns 1.
* So this means that diagonal on diagonal.c
halts. But this can only happen if HALTS returns 0.
Contradiction => finally there can not be such a program HALTS!!