GIVEN a function HALTS which when applied to any arbitrary function f and its arguments will say TRUE if function f terminates for those arguments and FALSE otherwise

and FUNNY (f) = IF HALTS (f f) THEN not (f f) ELSE TRUE

TO prove

FUNNY (f) = IF HALTS (f f) THEN not (f f) ELSE TRUE always terminate

proof

halt give two output true and false only one of them

case1 let take first halt(ff) false and put in the given function i.e

FUNNY (f) = IF HALTS (f f) THEN not (f f) ELSE TRUE

FUNNY (f) = IF false THEN not (f f) ELSE TRUE so this will return true

case1

let halt(ff)=true

then

FUNNY (f) = IF true THEN not (f f) ELSE TRUE eq1

it will execute not (ff) which in turn give True (proof of this in case 1)

put this value in eq1 you will get true

so in both case it always terminate