The Halting Problem

Even if we don't know how to write halts?, we know how it would behave if it were to exist.

Consider:

     (define return-seven 
       (lambda () 7))

     (define loop-forever
       (lambda () (loop-forever)))
If halts? exists and works as it should, then we know:
     (halts? return-seven) ⇒ #t

     (halts? loop-forever) ⇒ #f
Q: How could halts? work?