News for hackers. Stuff that matters.
Re:0^0 by pavelrub on Thursday April 03, 2014 @10:34AM (#7523069)
Using the Peano axioms, we need to prove that S(0)+S(0)=S(S(0)).

From the definition of +: S(0)+S(0)=S(S(0)+0) Again using the definition of +: S(0)+0=S(0). And we get: S(0)+S(0)=S(S(0))

Q.E.D.

There is also a famous proof by Whitehead and Russell on page 379 of Principia Mathematica: http://quod.lib.umich.edu/cgi/t/text/pageviewer-idx?c=umhist...

Re:0^0 by a1a on Thursday April 03, 2014 @11:10AM (#7523350)
Thank you, I didn't know you could prove that!

I believe my disagreement was specifically about this (quoted):

> In principle a computer can correctly recognize 2 apples as

> being 2 apples without knowing anything about addition and

> without being able to recognize 1 apple.

I have a hard time seeing this. If I am not mistaken again, there is no definition of the symbol 2 that does not include addition. The proof above doesn't really prove this either as Peano's axiom rely on the definition of "successor". Successor definition: "a+1 is the successor of a".

http://mathworld.wolfram.com/PeanosAxioms.html

http://mathworld.wolfram.com/Successor.html

Re:0^0 by pavelrub on Thursday April 03, 2014 @11:45AM (#7523617)
See the edit in my reply to tomp. In the Peano axioms, 2 is defined as S(S(0)), not as S(0)+1. The correct way to think about this is to ignore any inclination to give those symbols any "real world" meaning. From the point of view of the formal system - they are just strings, and the only thing we know about them is how to manipulate them to form other strings. Under this perspective, the connection between S(S(0)) and S(0)+1, or in general between S(a) and a+1, is again something which requires proof: S(a) = S(a+0) = a + S(0).

A computer can be given an explicit map between the symbols S(0), S(S(0)), s(S(S(0))), ... and 1,2,3..., so to identify S(S(S(S(S(S(0)))))) with 6 - it wouldn't need to know anything at all about + or about 1.

Edit: also consider the following quote from Wittgenstein's Philosophical Investigations and whether the person described needs to have any concept of 'addition' in order to correctly use numbers: "Now think of the following use of language: I send someone shopping. I give him a slip marked 'five red apples'. He takes the slip to the shopkeeper, who opens the drawer marked 'apples', then he looks up the word 'red' in a table and finds a colour sample opposite it; then he says the series of cardinal numbers--I assume that he knows them by heart--up to the word 'five' and for each number he takes an apple of the same colour as the sample out of the drawer.--It is in this and simlar ways that one operates with words--"But how does he know where and how he is to look up the word 'red' and what he is to do with the word 'five'?" ---Well, I assume that he 'acts' as I have described. Explanations come to an end somewhere.--But what is the meaning of the word 'five'? --No such thing was in question here, only how the word 'five' is used."

Re:0^0 by a1a on Thursday April 03, 2014 @12:57PM (#7524156)
This is quite beyond my knowledge, I like the Wittgenstein philosophy, but I would still argue:

You cannot calculate S^(x+1)(0) before the result of S^x(0) is known.

To calculate S^6(0) you start by calculating S(0) ----> It's not possible to "identify S^6(0) with 6" if you haven't calculated S(0) first, because you cannot know S^6(0) at this point.

Re:0^0 by pavelrub on Thursday April 03, 2014 @01:37PM (#7524529)
The computer has a table in memory that tells it S^6(0) = 6 (or equivalently O O O O O O = 6 apples). When it sees a symbol - for example S^6(0) - it searches this table for the same symbol, and then outputs the corresponding number. In no stage of this process does the computer "calculate" anything - it doesn't even need to know that S^5(0)=5 in order to find that S^6(0)=6. In fact S^5 might not even be in the table.