←back to thread

108 points BerislavLopac | 2 comments | | HN request time: 0s | source
Show context
graycat ◴[] No.43714234[source]
Well, for a computer that is a finite state machine there are only finitely many states. So, in finite time the machine will either (a) halt or (b) return to an earlier state and, thus, be in an infinite loop. So, in this case can tell if the "program will stop" and, thus, solve "the halting problem".

Uh, we also assume that before we start, we can look at the design of "the machine" and know how many states there can be and from the speed of the machine how many new states are visited each second. So, we will know how long we have to wait before we see either (a) or (b).

replies(6): >>43714273 #>>43714285 #>>43714402 #>>43714513 #>>43714742 #>>43717019 #
brap ◴[] No.43714273[source]
But the halting problem is specifically for any kind of program. Otherwise you can just say that every codebase is smaller than X petabytes anyway so it’s always decidable.
replies(1): >>43714470 #
JohnKemeny ◴[] No.43714470[source]
No, the halting problem doesn't hold when you have finite memory (as per OP's point).

As OP says, after finitely many iterations (at most 2^n many), you have to be back at a previously seen state, and can terminate.

replies(4): >>43714842 #>>43714943 #>>43714992 #>>43717711 #
1. tromp ◴[] No.43714842[source]
The halting problem requires both

1) unlimited length of programs whose halting behaviour is to be decided (so it can not be limited to program of at most 10 petabytes)

2) for those programs to have unlimited memory available

You're arguing about point 2) in response to a post about point 1).

replies(1): >>43716590 #
2. JohnKemeny ◴[] No.43716590[source]
Well, the post I responded to was a respons to a post about point 2. I simply reiterated OP's point.