简体   繁体   中英

Is there an error in this textbook about Peano Arithmetic?

I encountered this doubt in an online intro-logic open course offered by Stanford Uni.

Under the section 9.4 of this textbook here: http://logic.stanford.edu/intrologic/secondary/notes/chapter_09.html

It says:

The axioms shown here define the same relation in terms of 0 and s.(where the functional constant letter s below represents the successor function, eg s(0)=1, s(1)=2, s(2)=3 )

∀x.same(x,x)

∀x.(¬same(0,s(x)) ∧ ¬same(s(x),0))

∀x.∀y.(¬same(x,y) ⇒ ¬same(s(x),s(y)))

As my understanding, :

The first sentence says two identical numbers are same. The second and third sentences are used to define what is not same.

The second says no successor of any number is same to 0.

The third says if two numbers are not the same, then their successors are not same. For example, if 1≠3, then 2≠4.

However, I think the third sentence should be bi-conditional because, if I'm not wrong, the definition didn't cover the instance where the number being testified are smaller than the given number,otherwise it is possible to say if 2≠4, then 1=3.

So I wondered is this an error in text book or there's something wrong of my reasoning.

There is no error in this text book. While the statement does hold in both directions, there is no need to state it as an axiom since the other direction follows from the functional property of the successor function and the three axioms listed in the textbook.

A formal proof would involve the axioms that define the successor function. Someone more accustomed to the use of automated provers or just a good student of logic might be able to complete such a formal proof.

Here is just a sketch of a proof. It uses the symbol "=" to denote term equality, ie u = v means u and v are syntactically identical terms written using the symbols 0 and s(). Also " u < v " means that u and v are both ground terms and u has strictly less applications of s () than v .

Suppose

∀x.∀y.(¬same(s(x),s(y)) ⇒ ¬same(x,y))

does not hold, then there exist some terms x0 and y0 such that

same(x0,y0) and ¬same(s(x0),s(y0)).

Since s(x0) is a function, it follows from ¬same(s(x0),s(y0)) and ∀x.same(x,x) that x0 and y0 are two different terms. First let us consider the case when x0 < y0, then y0 = s(...s(x0)) where there are n applications of s() and n > 0. The other case when y0 < x0 can be handled similarly.

Substituting s(...s(x0)) for y0 in same(x0,y0) we get same(x0,s(...s(x0))).

Also x0 = s(...s(0)) where there are m applications of s() for some nonnegative integer m . Using the third axiom in the direction provided we can say that if same(s(u),s(v)) then same(u,v). Thus from same(x0,s(...s(x0))) we can "strip" m applications of s() to obtain

same(0,s(...s(0))) where there are n applications of s() in the second argument. This contradicts the second axiom. QED

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM