Re: Rado's Sigma and the Halting Problem for Programs

From: peter_douglass (baisly_at_gis.net)
Date: 08/11/04


Date: 11 Aug 2004 13:35:30 -0700


"Acme Diagnostics" <LFinezapthis@partpostmark.net
<mailto:LFinezapthis@partpostmark.net>> wrote ...

AD > Is there any *linkable* proof of the Halting Problem for a
AD > computer language that does not contrive a logic paradox
AD > and require self-reference to make the proof?
AD > I'm not interested in Turing Machines at all, but only the
AD > proof "for a computer language."

to which
"r.e.s." <r.s@ZZmindspring.com <mailto:r.s@ZZmindspring.com>> in
message <news:5VxRc.13662$cK.1818@newsread2.news.pas.earthlink.net>...
responded:
 
RES > I doubt there's a proof that avoids reductio ad absurdum...

I'm not sure what a *linkable* proof is. However, I believe the
Halting Theorem may be proven without recourse to reductio
ad absurdum. Here is my stab at it.

Assume as given the following:

G :: N -> TM, G' :: TM -> N (an isomorphism between natural numbers
and Turing Machines)

<_,_> :: N x N -> N (a bijection between pairs of naturals and
naturals)

Eval :: TM x N -> N + _|_
( an evaluation function such that Eval(M,x) is the result of running
machine M on the input tape consisting of a representation of x.
We will assume that the result is converted to a natural number if the
computation halts, and is bottom, i.e. _|_ if the computation diverges
)

(Construction)
Assume that from a Turing Machine M we can construct a Turing Machine
M' such that the following holds:
Eval(M',x) == begin
                  if Eval(M, <G'(M'),x>) == "no"
                     then return "yes"
                     else loop_forever() ;
              end

Definitions:

(Totality) Machine M is total
iff forall x, Eval(M,x) != _|_

(Partiality) Machine M is partial
 iff There exists an x such that Eval(M,x) = _|_

(Halts)
Halts :: TM x N -> Bool . That is,
Halts(M,x) = True if the Turing Machine M halts when given
an input tape containing a representation of x
Halts(M,x) = False otherwise.
Note that Halts(M,x) is a well defined function.
It is not the hypothetical Turing machine "Halts" that
is proven not to exist by reductio ad absurdum in most
popular proofs of the Halting Theorem.

(Implements)
Machine M partially implements Halts
iff Eval(M,<x,y>) != _|_ <=> Eval(M,<x,y>) = Halts(G(x), y)
(That is, if M halts on input <x,y> then the value returned is
Halts(G(x),y)

CLAIM:
Our claim is that for any G and for any Turing Machine M
either M does not partially compute Halts, or M is not total.
Thus, there is no Turing Machine which totally computes
Halts. (This is a restatement of the Halting Theorem)

PROOF:
When M' (defined in Construction) is given G'(M') as input
it either halts or it diverges.

Case 1. Eval(M',G'(M')) != _|_ (i.e. halts)
(Construction) => Eval(M,<G'(M'),G'(M')>) = "no"
(Implements) => M does not partially implement Halts

Case 2. Eval(M',G'(M')) = _|_ (i.e. diverges)
(Construction) => either Eval(M,<G'(M'),G'(M')>) diverges
                    or Eval(M,<G'(M'),G'(M')>) returns a value != "no"

Case 2.a. Eval(M',G'(M')) = _|_ /\ Eval(M,<G'(M'),G'(M')>) = _|_
(Totality) => M is not total

Case 2.b. Eval(M',G(M')) = _|_
           /\ Eval(M,<G'(M'),G'(M')>) returns value != "no"
(Implements) => M does not partially implement Halts

QED



Relevant Pages

  • Re: Rados Sigma and the Halting Problem for Programs
    ... AD> computer language that does not contrive a logic paradox ... Halting Theorem may be proven without recourse to reductio ... computation halts, and is bottom, i.e. _|_ if the computation diverges ... Assume that from a Turing Machine M we can construct a Turing Machine ...
    (comp.theory)
  • Re: Rados Sigma and the Halting Problem for Programs
    ... AD> computer language that does not contrive a logic paradox ... Halting Theorem may be proven without recourse to reductio ... computation halts, and is bottom, i.e. _|_ if the computation diverges ... Assume that from a Turing Machine M we can construct a Turing Machine ...
    (sci.logic)
  • Re: Contradiction or paradox
    ... and ~_is_ a wff by that definition. ... ~LTand then halts. ... The rest of the line is CBL command write with argument ... YES"Turing Machine a halts yes on input b." ...
    (sci.logic)
  • Re: Disproof of the Halting Problems Conclusion
    ... this would be the same text in which Lintz proves that the Halting ... >> language version of the Halting Problem on which it makes sense to talk ... it does not define what a Turing machine is. ... refer to a string, but then talks about "Turing machine M". ...
    (sci.logic)
  • Re: Disproof of the Halting Problems Conclusion
    ... The "head" of a Turing machine is always located at some cell of the ... block of n+1 X's on an otherwise blank tape, M halts at the leftmost X ...
    (sci.logic)