THEOREM

*******

 

Here, we construct an ordering lt (<) on the set of natural numbers n using Peano's Axioms, the Cartesian product and Subset axioms, and the previously constructed add function (+) on n.

 

Prove: EXIST(lt):ALL(a):ALL(b):[a e n & b e n => [(a,b) e lt <=> EXIST(c):[c e n & a+c=b]]]

 

In subsequent proofs, we will use the more standard infix '<' notation.

 

 

This proof was written and verified with the aid of the author's DC Proof 2.0 software available free at http://www.dcproof.com

 

 

PEANO'S AXIOMS

**************

 

1     Set(n)

      Axiom

 

2     1 e n

      Axiom

 

3     ALL(a):[a e n => s(a) e n]

      Axiom

 

4     ALL(a):ALL(b):[a e n & b e n => [s(a)=s(b) => a=b]]

      Axiom

 

5     ALL(a):[a e n => ~s(a)=1]

      Axiom

 

6     ALL(a):[Set(a) & ALL(b):[b e a => b e n]

     => [1 e a & ALL(b):[b e a => s(b) e a]

     => ALL(b):[b e n => b e a]]]

      Axiom

 

 

FROM PREVIOUS RESULTS

*********************

 

Define: + on n

 

7     ALL(a):ALL(b):[a e n & b e n => a+b e n]

      Axiom

 

8     ALL(a):[a e n => a+1=s(a)]

      Axiom

 

9     ALL(a):ALL(b):[a e n & b e n => a+s(b)=s(a+b)]

      Axiom

 

 

PROOF

*****

 

Apply Cartesian Product axiom

 

10    ALL(a1):ALL(a2):[Set(a1) & Set(a2) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) e b
     <=> c1
e a1 & c2 e a2]]]

      Cart Prod

 

11    ALL(a2):[Set(n) & Set(a2) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) e b
     <=> c1
e n & c2 e a2]]]

      U Spec, 10

 

12    Set(n) & Set(n) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) e b <=> c1 e n & c2 e n]]

      U Spec, 11

 

13    Set(n) & Set(n)

      Join, 1, 1

 

14    EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) e b <=> c1 e n & c2 e n]]

      Detach, 12, 13

 

15    Set'(n2) & ALL(c1):ALL(c2):[(c1,c2) e n2 <=> c1 e n & c2 e n]

      E Spec, 14

 

 

Define: n2

**********

 

The set of ordered pairs of natural numbers

 

16    Set'(n2)

      Split, 15

 

17    ALL(c1):ALL(c2):[(c1,c2) e n2 <=> c1 e n & c2 e n]

      Split, 15

 

 

Apply Subset axiom

 

18    EXIST(sub):[Set'(sub) & ALL(a):ALL(b):[(a,b) e sub <=> (a,b) e n2 & EXIST(c):[c e n & a+c=b]]]

      Subset, 16

 

19    Set'(lt) & ALL(a):ALL(b):[(a,b) e lt <=> (a,b) e n2 & EXIST(c):[c e n & a+c=b]]

      E Spec, 18

 

 

Define: lt

**********

 

(x,y) e lt means x is less than y

 

20    Set'(lt)

      Split, 19

 

21    ALL(a):ALL(b):[(a,b) e lt <=> (a,b) e n2 & EXIST(c):[c e n & a+c=b]]

      Split, 19

 

    

    

     Recast definition without reference to n2

    

     Prove: ALL(a):ALL(b):[a e n & b e n

            => [(a,b) e lt <=> EXIST(c):[c e n & a+c=b]]]

    

     Suppose...

 

      22    x e n & y e n

            Premise

 

      23    x e n

            Split, 22

 

      24    y e n

            Split, 22

 

         

          '=>'

         

          Prove: (x,y) e lt => EXIST(c):[c e n & x+c=y]

         

          Suppose...

 

            25    (x,y) e lt

                  Premise

 

          Apply definition of lt

 

            26    ALL(b):[(x,b) e lt <=> (x,b) e n2 & EXIST(c):[c e n & x+c=b]]

                  U Spec, 21

 

            27    (x,y) e lt <=> (x,y) e n2 & EXIST(c):[c e n & x+c=y]

                  U Spec, 26

 

            28    [(x,y) e lt => (x,y) e n2 & EXIST(c):[c e n & x+c=y]]

              & [(x,y) e n2 & EXIST(c):[c e n & x+c=y] => (x,y) e lt]

                  Iff-And, 27

 

            29    (x,y) e lt => (x,y) e n2 & EXIST(c):[c e n & x+c=y]

                  Split, 28

 

            30    (x,y) e n2 & EXIST(c):[c e n & x+c=y] => (x,y) e lt

                  Split, 28

 

            31    (x,y) e n2 & EXIST(c):[c e n & x+c=y]

                  Detach, 29, 25

 

            32    (x,y) e n2

                  Split, 31

 

            33    EXIST(c):[c e n & x+c=y]

                  Split, 31

 

     As Required:

 

      34    (x,y) e lt => EXIST(c):[c e n & x+c=y]

            4 Conclusion, 25

 

         

          '<='

         

          Prove: EXIST(c):[c e n & x+c=y] => (x,y) e lt

         

          Suppose...

 

            35    EXIST(c):[c e n & x+c=y]

                  Premise

 

          Apply definition of lt

 

            36    ALL(b):[(x,b) e lt <=> (x,b) e n2 & EXIST(c):[c e n & x+c=b]]

                  U Spec, 21

 

            37    (x,y) e lt <=> (x,y) e n2 & EXIST(c):[c e n & x+c=y]

                  U Spec, 36

 

            38    [(x,y) e lt => (x,y) e n2 & EXIST(c):[c e n & x+c=y]]

              & [(x,y) e n2 & EXIST(c):[c e n & x+c=y] => (x,y) e lt]

                  Iff-And, 37

 

            39    (x,y) e lt => (x,y) e n2 & EXIST(c):[c e n & x+c=y]

                  Split, 38

 

            40    (x,y) e n2 & EXIST(c):[c e n & x+c=y] => (x,y) e lt

                  Split, 38

 

            41    ALL(c2):[(x,c2) e n2 <=> x e n & c2 e n]

                  U Spec, 17

 

          Apply definition of n2

 

            42    (x,y) e n2 <=> x e n & y e n

                  U Spec, 41

 

            43    [(x,y) e n2 => x e n & y e n]

              & [x e n & y e n => (x,y) e n2]

                  Iff-And, 42

 

            44    (x,y) e n2 => x e n & y e n

                  Split, 43

 

            45    x e n & y e n => (x,y) e n2

                  Split, 43

 

            46    (x,y) e n2

                  Detach, 45, 22

 

            47    (x,y) e n2 & EXIST(c):[c e n & x+c=y]

                  Join, 46, 35

 

            48    (x,y) e lt

                  Detach, 40, 47

 

     As Required:

 

      49    EXIST(c):[c e n & x+c=y] => (x,y) e lt

            4 Conclusion, 35

 

     Joining results...

 

      50    [(x,y) e lt => EXIST(c):[c e n & x+c=y]]

          & [EXIST(c):[c e n & x+c=y] => (x,y) e lt]

            Join, 34, 49

 

     Apply Iff-And rule

 

      51    (x,y) e lt <=> EXIST(c):[c e n & x+c=y]

            Iff-And, 50

 

As Required:

 

52    ALL(a):ALL(b):[a e n & b e n

     => [(a,b) e lt <=> EXIST(c):[c e n & a+c=b]]]

      4 Conclusion, 22

 

As Required:

 

53    EXIST(lt):ALL(a):ALL(b):[a e n & b e n

     => [(a,b) e lt <=> EXIST(c):[c e n & a+c=b]]]

      E Gen, 52