subargument from UnknowableNumbers
Response 2: Turing machines allow uncountable specifications
[Alistair asks for clarification then factors out the mess :)] [true, indeed, and that's because I couldn't see that it was relevant. by putting it back in, you've helped me see the relevance :-). Now I refactored it again to try to clean it up some more... I think you can delete large sections of the following -AC] [That must be right since we're specifically discussing finite definitions. -- vk]
If you allow definitions (specifications) to be of countable length instead of merely finite length then the set of all sentences is an uncountable infinity. The power set of all sentences is then of cardinality aleph_2 instead of merely aleph_1. In other words, while letting the sentences in your language be of infinite length lets you specify all the reals, it also lets you generate a set of new numbers which are then unspecifiable. In mathematical logic, there is a natural association between the nature of the definitions and the nature of the numbers you want to specify. Not so with Turing machines where the restriction of finiteness on valid programs and output seems arbitrary.
This sort of recursive thing applies to the Halting problem. You can't use a Turing machine to solve the halting problem for all Turing machines. However, if the universe is not a Turing machine but a more powerful continuum based machine then it can solve the halting problem for all Turing machines. Of course, this just creates a new problem which requires a still more powerful machine to solve.
This recursion again occurs in Goedel's Second Incompleteness Theorem which proves something like that in order to decide a sentence in a formal system, the axiomatic system must be at least as powerful as the sentence itself. There's an example with proving the reals are the reals using arithmetic but I can't recall the details.
This is exactly why using Turing machines is a bad idea. If you move it back to mathematical logic, the issues are much clearer. The question of whether the machine halts or not becomes irrelevant. -- RichardKulisz [Can we stick to the subject, please?]
If this page has a goal, I think it's as a springboard for exploration of the concept of mathematical truth. We shouldn't be too reductionistic on this page. In the above, I'm trying to explain a general pattern I perceive. It's this pattern that causes my reaction to be 'Huh, that's nice.' instead of 'Wow!' It's the context of a concept that lets people get a handle on it. When I first learned about infinities in high school, they were unfathomable. It's only after learning about transfinite numbers that I got a handle on them. -- RichardKulisz
Richard asserts that there are an uncountable number of Turing machine programs (of countable length), and so once again the set of specifiable reals is uncountable. Let's separate those two, and how about if you two (Vicki / Richard) please moderate / refactor your sections since you know what you're up to.
Umm Alistair, my point is actually that each definition of a 'valid program' is naturally associated with a set of numbers most of which are unspecifiable. The set of programs of finite length is associated with the reals, most of which are unspecifiable using finite programs. The set of programs of countable length is associated with the set of all functions, most of which are unspecifiable using countable programs. And so on.
Try to get JoshuaGrosse and GarethMcCaughan to contribute, they know a lot more than I do. -- RichardKulisz
[I think most of the following FSM/Turing discussion is subsumed by the above paragraphs. Can these be deleted?]
'About Turing Machines and Specifications: (Can anyone write a resultant synopsis of the following? I think it all simply boils down to programs are finite in length, run in discrete steps, and so can only produce countable number of outputs. Pi is well specified already, as the ratio between a circle's circumference and diameter, so it is already taken care of.)
If you only mean to talk about finite specifications, you should drop all references to Turing Machines and talk only about Finite State Machines, which are very different. Or at least, this is the way it all seems to me. I'm probably off-base somewhere and in that case, I'm merely pointing the way to where arguments can be clarified.'' -- RichardKulisz
First we need some conventions to deal with infinite precision in bounded space. Clearly no Machine can print out all of Pi, because there are infinitely many digits. What we can do instead is provide a machine which reads a number, N, and prints out Pi to N digits - for any N.
"A program that counts an arbitrary number of parenthesis pairs in some sentence" is often given as an example of the need for Turing Machines. In the case of computing pi, either the input is infinite or the output is not pi; 'pi to the nth digit' is not pi. You only need to bring in Turing Machines if you're considering input of infinite complexity and saying "takes any input" is just another way of saying that it can take input of infinite complexity. If you're talking about a class of inputs of ever increasing complexity, what's to stop you from just taking a class of Finite State Machines of matching complexity? Nobody ever said that it has to be one machine that can handle any program. Using TMs allows sneaking infinity through the back door; it doesn't seem like the use of TMs is justified to me; it's simpler but it also leads to mistakes getting unnoticed. In any case, there seems to be a lot of sleight of hand done with infinity on this page and when you play with magic, most of the answers you get are gonna be wrong. Unless you're in Las Vegas. -- rk
Matching parenthsis can be done with a Push-Down Automaton. It doesn't need a Turing Machine.
Pi - the whole of Pi - cannot be computed by a Turing Machine in the way you want. Sorry. A program which purported to write an infinite amount of data to the tape would never terminate, and we don't read the answer off the tape until after it has terminated, so it would effectively produce nothing. The best we can do is produce Pi to arbitrary precision.
The original theory/proof of this page does not require printing the digits of pi, in decimal or binary.
Writing the word "Pi" or the description "the ratio between the circumference of a circle and its diameter" would be sufficient to show that pi is not an UnknowableNumber?.
"Pi" is knowable -- it's well known, well defined, and in common usage. You can't "print" it in finite time in a decimal notation using a fixed base, but that's another issue. -- JeffGrigg
If you formalize the notion of a "specification", you probably end up with the notion of a program for a UniversalTuringMachine, and thus into issues of uncomputable numbers. [Not quite - a single uncomputable number is easy to define finitely (eg., one that solves the halting problem).]