Hacker News new | ask | show | jobs
by man-and-laptop 2781 days ago
Type 2 Turing Machines are a conservative model of computation. They are as realistic as Type 1 Machines. Both models involve an infinite tape. Your previous comment used the Turing Machine abstraction, so my response was entirely valid, suggesting that replacing your abstraction with another equally valid, and I believe more appropriate for this purpose, abstraction eliminates the problem.

Also, by the way, the distinction between "complete" and "potential" infinity is useful here. The Type 2 Turing Machines features only a "potential" infinity, the same type that's common throughout Theoretical Computer Science. A real number is a only a "potential" infinity -- a process of sorts. You seem to be demanding that a real number be represented as a "complete" infinity, but this isn't needed for anything in physics or engineering or anything else. The demand you're making, which would imply that an infinite amount of time is needed, is unreasonable.

And by the way, the downvoter is somebody who can't argue with facts.

1 comments

I suppose the argument you are trying to make here is basically "having a machine that if we run it for long enough, will tell us any particular digit of a number, is as good as having that number".

In the concrete example, you would argue that if a machine which after n time steps specifies which 1/2^n sized interval the randomly generated number lies in, then having that machine is equivalent to having the randomly generated number.

I disagree. If I come up with any property of the number that requires seeing arbitrarily many digits to specify (e.g. "is rational", "contains more 1s than 0s", etc) you can never tell me whether or not the number your machine specifies has that property. That said, I can see where you are coming from. There is at least some argument that under this model it's not the number which can't be computed, but the "is rational" function.

Personally, I wouldn't worry about the downvotes. Internet points aren't important in life anyways.

> There is at least some argument that under this model it's not the number which can't be computed, but the "is rational" function.

That's how I see it. I think this perspective results in a rich and natural theory, which has helped me in my studies.

What does "to have a number" mean?

A program isn't a black box. The number specified (in binary) by this program

    emit "0."
    loop forever:
        emit "110"
is both rational and contains more 1s than 0s. You no more need "run the program forever" to determine these of the number it presents than you need to perform an "infinite amount of long division" to determine it of the number presented by 6/7.
For arbitrary turing machines, determining what they will output solves the halting problem. E.g. the following machine is pi if M' halts else 0.

    simulate machine M'
    emit pi
Because of the halting problem you more or less do have to treat arbitrary machines as black boxes.
So? That's no different than a number specified in a "conventional" way, ie. by some mathematical formula in propositional logic. Let x be 0 is P if true and pi otherwise.
I'd recommend reading the relevant portions (or just all of) this paper: https://www.scottaaronson.com/papers/philos.pdf

The conventional way of knowing a number is specifying it in a way that we can quickly determine what it is and operate on it.

If I say "the next prime after 9^9^9^9^9^9^9^9^9", or indeed "the next prime after busy beaver(1000)" I have specified a precise number. But you don't think I have it in any useful sense, because I can't compute it quickly (or in my second example at all).

Edit: And it should be noted that the above is more akin to the busy beaver example, no matter how long you operate that turing machine, if M' happens to be of the sort that doesn't halt but doesn't provably not halt, then you will never be able to tell me whether the number I "have" is 0 or pi.

But you haven't cleared anything up at all! What do you mean "determine what it is"? Do you mean compute its digits? Can you have an irrational number? a rational number with a non-finite decimal expansion? And what do you mean "operate on it"? By which operation? And what do you mean "quickly"?

In any case, the relevant program (assuming a fast random oracle)

    emit "0."
    loop forever:
        x := query random oracle for one bit
        emit x
seems to fit all your criterion. You can compute as many digits as you like very quickly. If you can have pi I don't see why you can't have this number (if you can have any random number at all).