logoalt Hacker News

jojogeotoday at 5:37 PM3 repliesview on HN

Something has always nagged me about the halting problem, might be my mis-understanding of the problem space but;

- You have a piece of software

- That software does in memory compute only

- The software does not touch any peripherals, networking, or any other external source which introduce unpredictability (x)

I'm convinced that somehow this can be solved/proven whether the execution will halt or not.

(x) The second you touch any external peripherals or networking, you're effectively asking the question of "If I phone my friend, will they pick up the phone?" -> to which the only answer is, "They'll pick it up, only if they pick it up/are there". You can't answer that question without trying it.

Am I missing the point? I'm sure you can introduce other edges even in the limited model above, e.g. where a memory stick stops responding or something; but all in if you have reliable kit and don't touch anything external, why can't this be solved?


Replies

docforttoday at 6:10 PM

Related: the Busy Beaver problem https://news.ycombinator.com/item?id=40857041

show 1 reply
makerofthingstoday at 5:49 PM

Imagine a program that generates the digits of pi, one after the other and stops when it is finished. A general purpose program analysing this program to decide if it stops or not would have to know about pi. And about every other possible algorithm.

show 1 reply
tromptoday at 5:50 PM

It can be solved if the memory is bounded. But unbounded memory comes with undecidable problems.

show 1 reply