[net.puzzle] Loop termination proof problem.

krs@amdahl.UUCP (Kris Stephens) (03/15/85)

Okay,  here's a problem program written in REXX,  but it can be done in
any language;  it's the idea that counts:

   /* PROBLEM */
   say "Enter a positive integer:"   /* Type prompt                    */
   parse external i                  /* Read number from terminal      */

   do until i=1                      /* Start loop                     */
      if i/2 = trunc(i/2)            /* Q. Is "i" even?                */
       then i = i/2                  /* A. Yup. Divide by 2            */
       else i = 3*i + 1              /* A. No. Multiply by 3 and add 1 */
      say i                          /* Type it for user               */
   end                               /* End of loop                    */

   say "Terminated at 1."            /* Report completion              */
   exit                              /* And leave                      */

The challenge  is to  prove that  this program  will terminate  for all
positive integer values of "i".  I suspect that it's unprovable, and so
am re-reading Godel-Escher-Bach to find out (Does that make sense?).

I've done a bunch  of work on this,  and if folk are  interested,  I'll
append what I've got so far.

-- 
Kris Stephens     (408-746-6047)                 {whatever}!amdahl!krs
     [The opinions expressed above are mine, solely, and do not    ]
     [necessarily reflect the opinions or policies of Amdahl Corp. ]

ndiamond@watdaisy.UUCP (Norman Diamond) (03/18/85)

>    do until i=1                      /* Start loop                     */
>       if i/2 = trunc(i/2)            /* Q. Is "i" even?                */
>        then i = i/2                  /* A. Yup. Divide by 2            */
>        else i = 3*i + 1              /* A. No. Multiply by 3 and add 1 */
>       say i                          /* Type it for user               */
>    end                               /* End of loop                    */
> 
> The challenge  is to  prove that  this program  will terminate  for all
> positive integer values of "i".  I suspect that it's unprovable...
> -- Kris Stephens

It's been an open problem in pure mathematics for several years.  A similar
problem with around 17 variables was proven undecidable.  I don't follow
such things though.

-- 

   Norman Diamond

UUCP:  {decvax|utzoo|ihnp4|allegra}!watmath!watdaisy!ndiamond
CSNET: ndiamond%watdaisy@waterloo.csnet
ARPA:  ndiamond%watdaisy%waterloo.csnet@csnet-relay.arpa

"Opinions are those of the keyboard, and do not reflect on me or higher-ups."