Closure of the SUM operator Prove: ALL(f):[ALL(a):[an => f(a)
n] => ALL(a):ALL(b):[a
n & b
n & a<=b => SUM(i,a,b):f(i)
n]] Peano's Axioms 1 Set(n) & 1
n & ALL(a):[a
n => next(a)
n] & ALL(a):[a
n => ~next(a)=1] & ALL(a):ALL(b):[a
n & b
n & next(a)=next(b) => a=b] & ALL(a):[Set(a) & 1
a & ALL(b):[b
n & b
a => next(b)
a] => ALL(b):[b
n => b
a]] Premise 2 Set(n) Split, 1 3 1
n Split, 1 4 ALL(a):[a
n => next(a)
n] Split, 1 5 ALL(a):[a
n => ~next(a)=1] Split, 1 6 ALL(a):ALL(b):[a
n & b
n & next(a)=next(b) => a=b] Split, 1 7 ALL(a):[Set(a) & 1
a & ALL(b):[b
n & b
a => next(b)
a] => ALL(b):[b
n => b
a]] Split, 1 Define: + 8 ALL(a):ALL(b):[a
n & b
n => a+b
n] & ALL(a):[a
n => a+1=next(a)] & ALL(a):ALL(b):[a
n & b
n => a+next(b)=next(a+b)] Definition 9 ALL(a):ALL(b):[a
n & b
n => a+b
n] Split, 8 10 ALL(a):[a
n => a+1=next(a)] Split, 8 11 ALL(a):ALL(b):[a
n & b
n => a+next(b)=next(a+b)] Split, 8 12 ALL(f):[ALL(a):[a
n => f(a)
n] => ALL(a):[a
n => SUM(i,a,a):f(i)=f(a)] & ALL(a):ALL(b):[a
n & b
n => SUM(i,a,b+1):f(i)=SUM(i,a,b):f(i)+f(b+1)]] Definition Define: < 13 ALL(a):ALL(b):[a
n & b
n => [a<b <=> EXIST(c):[c
n & a+c=b]]] Definition Define: <= 14 ALL(a):ALL(b):[a
n & b
n => [a<=b <=> a<b | a=b]] Definition Previous result: + is associative 15 ALL(a):ALL(b):ALL(c):[a
n & b
n & c
n => a+b+c=a+(b+c)] Premise Define: f 16 ALL(a):[a
n => f(a)
n] Premise 17 ALL(f):[ALL(a):[a
n => f(a)
n] => ALL(a):[a
n => SUM(i,a,a):f(i)=f(a)] & ALL(a):ALL(b):[a
n & b
n => SUM(i,a,b+1):f(i)=SUM(i,a,b):f(i)+f(b+1)]] Definition 18 ALL(a):[a
n => f(a)
n] => ALL(a):[a
n => SUM(i,a,a):f(i)=f(a)] & ALL(a):ALL(b):[a
n & b
n => SUM(i,a,b+1):f(i)=SUM(i,a,b):f(i)+f(b+1)] U Spec, 17 From definition of SUM... 19 ALL(a):[a
n => SUM(i,a,a):f(i)=f(a)] & ALL(a):ALL(b):[a
n & b
n => SUM(i,a,b+1):f(i)=SUM(i,a,b):f(i)+f(b+1)] Detach, 18, 16 20 ALL(a):[a
n => SUM(i,a,a):f(i)=f(a)] Split, 19 21 ALL(a):ALL(b):[a
n & b
n => SUM(i,a,b+1):f(i)=SUM(i,a,b):f(i)+f(b+1)] Split, 19 Prove: x
n => ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] Suppose... 22 x
n Premise Sufficient: For ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] 23 SUM(i,x,x+1):f(i)
n & ALL(k):[k
n & SUM(i,x,x+k):f(i)
n => SUM(i,x,x+(k+1)):f(i)
n] => ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] Induction Prove: SUM(i,x,x+1):f(i)
n (Induction, Part 1) Applying the definition of SUM... 24 x
n => SUM(i,x,x):f(i)=f(x) U Spec, 20 25 SUM(i,x,x):f(i)=f(x) Detach, 24, 22 26 ALL(b):[x
n & b
n => SUM(i,x,b+1):f(i)=SUM(i,x,b):f(i)+f(b+1)] U Spec, 21 27 x
n & x
n => SUM(i,x,x+1):f(i)=SUM(i,x,x):f(i)+f(x+1) U Spec, 26 28 x
n & x
n Join, 22, 22 29 SUM(i,x,x+1):f(i)=SUM(i,x,x):f(i)+f(x+1) Detach, 27, 28 30 SUM(i,x,x+1):f(i)=f(x)+f(x+1) Substitute, 25, 29 31 ALL(b):[f(x)
n & b
n => f(x)+b
n] U Spec, 9 32 f(x)
n & f(x+1)
n => f(x)+f(x+1)
n U Spec, 31 33 x
n => f(x)
n U Spec, 16 34 f(x)
n Detach, 33, 22 35 ALL(b):[x
n & b
n => x+b
n] U Spec, 9 36 x
n & 1
n => x+1
n U Spec, 35 37 x
n & 1
n Join, 22, 3 38 x+1
n Detach, 36, 37 39 x+1
n => f(x+1)
n U Spec, 16 40 f(x+1)
n Detach, 39, 38 41 f(x)
n & f(x+1)
n Join, 34, 40 42 f(x)+f(x+1)
n Detach, 32, 41 As Required: (Induction, Part 1) 43 SUM(i,x,x+1):f(i)
n Substitute, 30, 42 Prove: y
n & SUM(i,x,x+y):f(i)
n => SUM(i,x,x+(y+1)):f(i)
n (Induction, Part 2) Suppose... 44 y
n & SUM(i,x,x+y):f(i)
n Premise 45 y
n Split, 44 46 SUM(i,x,x+y):f(i)
n Split, 44 Applying the defintion of SUM... 47 ALL(b):[x
n & b
n => SUM(i,x,b+1):f(i)=SUM(i,x,b):f(i)+f(b+1)] U Spec, 21 48 x
n & x+y
n => SUM(i,x,x+y+1):f(i)=SUM(i,x,x+y):f(i)+f(x+y+1) U Spec, 47 49 ALL(b):[x
n & b
n => x+b
n] U Spec, 9 50 x
n & y
n => x+y
n U Spec, 49 51 x
n & y
n Join, 22, 45 52 x+y
n Detach, 50, 51 53 x
n & x+y
n Join, 22, 52 54 SUM(i,x,x+y+1):f(i)=SUM(i,x,x+y):f(i)+f(x+y+1) Detach, 48, 53 55 x+y+1
n => f(x+y+1)
n U Spec, 16 56 ALL(b):[x+y
n & b
n => x+y+b
n] U Spec, 9 57 x+y
n & 1
n => x+y+1
n U Spec, 56 58 x+y
n & 1
n Join, 52, 3 59 x+y+1
n Detach, 57, 58 60 f(x+y+1)
n Detach, 55, 59 61 ALL(b):[SUM(i,x,x+y):f(i)
n & b
n => SUM(i,x,x+y):f(i)+b
n] U Spec, 9 62 SUM(i,x,x+y):f(i)
n & f(x+y+1)
n => SUM(i,x,x+y):f(i)+f(x+y+1)
n U Spec, 61 63 SUM(i,x,x+y):f(i)
n & f(x+y+1)
n Join, 46, 60 64 SUM(i,x,x+y):f(i)+f(x+y+1)
n Detach, 62, 63 65 SUM(i,x,x+y+1):f(i)
n Substitute, 54, 64 Applying associativity of +... 66 ALL(b):ALL(c):[x
n & b
n & c
n => x+b+c=x+(b+c)] U Spec, 15 67 ALL(c):[x
n & y
n & c
n => x+y+c=x+(y+c)] U Spec, 66 68 x
n & y
n & 1
n => x+y+1=x+(y+1) U Spec, 67 69 x
n & y
n & 1
n Join, 51, 3 70 x+y+1=x+(y+1) Detach, 68, 69 71 SUM(i,x,x+(y+1)):f(i)
n Substitute, 70, 65 As Required: 72 y
n & SUM(i,x,x+y):f(i)
n => SUM(i,x,x+(y+1)):f(i)
n Conclusion, 44 As Required: (Induction, Part 2) Generalizing... 73 ALL(k):[k
n & SUM(i,x,x+k):f(i)
n => SUM(i,x,x+(k+1)):f(i)
n] U Gen, 72 74 SUM(i,x,x+1):f(i)
n & ALL(k):[k
n & SUM(i,x,x+k):f(i)
n => SUM(i,x,x+(k+1)):f(i)
n] Join, 43, 73 As Required: By induction... 75 ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] Detach, 23, 74 As Required: 76 x
n => ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] Conclusion, 22 Generalizing... 77 ALL(j):[j
n => ALL(k):[k
n => SUM(i,j,j+k):f(i)
n]] U Gen, 76 Prove: x
n & y
n & x<y => SUM(i,x,y):f(i)
n Suppose... 78 x
n & y
n & x<y Premise 79 x
n Split, 78 80 y
n Split, 78 81 x<y Split, 78 Applying the definition of <... 82 ALL(b):[x
n & b
n => [x<b <=> EXIST(c):[c
n & x+c=b]]] U Spec, 13 83 x
n & y
n => [x<y <=> EXIST(c):[c
n & x+c=y]] U Spec, 82 84 x
n & y
n Join, 79, 80 85 x<y <=> EXIST(c):[c
n & x+c=y] Detach, 83, 84 86 [x<y => EXIST(c):[c
n & x+c=y]] & [EXIST(c):[c
n & x+c=y] => x<y] Iff-And, 85 87 x<y => EXIST(c):[c
n & x+c=y] Split, 86 88 EXIST(c):[c
n & x+c=y] => x<y Split, 86 89 EXIST(c):[c
n & x+c=y] Detach, 87, 81 Define: z 90 z
n & x+z=y E Spec, 89 91 z
n Split, 90 92 x+z=y Split, 90 93 x
n => ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] U Spec, 77 94 ALL(k):[k
n => SUM(i,x,x+k):f(i)
n] Detach, 93, 79 95 z
n => SUM(i,x,x+z):f(i)
n U Spec, 94 96 SUM(i,x,x+z):f(i)
n Detach, 95, 91 97 SUM(i,x,y):f(i)
n Substitute, 92, 96 As Required: 98 x
n & y
n & x<y => SUM(i,x,y):f(i)
n Conclusion, 78 Generalizing... 99 ALL(b):[x
n & b
n & x<b => SUM(i,x,b):f(i)
n] U Gen, 98 100 ALL(a):ALL(b):[a
n & b
n & a<b => SUM(i,a,b):f(i)
n] U Gen, 99 Prove: x
n & y
n & x<=y => SUM(i,x,y):f(i)
n Suppose... 101 x
n & y
n & x<=y Premise 102 x
n Split, 101 103 y
n Split, 101 104 x<=y Split, 101 Applying the definition of <=... 105 ALL(b):[x
n & b
n => [x<=b <=> x<b | x=b]] U Spec, 14 106 x
n & y
n => [x<=y <=> x<y | x=y] U Spec, 105 107 x
n & y
n Join, 102, 103 108 x<=y <=> x<y | x=y Detach, 106, 107 109 [x<=y => x<y | x=y] & [x<y | x=y => x<=y] Iff-And, 108 110 x<=y => x<y | x=y Split, 109 111 x<y | x=y => x<=y Split, 109 Cases 112 x<y | x=y Detach, 110, 104 Case 1 Suppose... 113 x<y Premise 114 ALL(b):[x
n & b
n & x<b => SUM(i,x,b):f(i)
n] U Spec, 100 115 x
n & y
n & x<y => SUM(i,x,y):f(i)
n U Spec, 114 116 x
n & y
n Join, 102, 103 117 x
n & y
n & x<y Join, 116, 113 118 SUM(i,x,y):f(i)
n Detach, 115, 117 Case 1 119 x<y => SUM(i,x,y):f(i)
n Conclusion, 113 Case 2 Suppose... 120 x=y Premise 121 x
n => SUM(i,x,x):f(i)=f(x) U Spec, 20 122 SUM(i,x,x):f(i)=f(x) Detach, 121, 102 123 SUM(i,x,y):f(i)=f(x) Substitute, 120, 122 124 x
n => f(x)
n U Spec, 16 125 f(x)
n Detach, 124, 102 126 SUM(i,x,y):f(i)
n Substitute, 123, 125 Case 2 127 x=y => SUM(i,x,y):f(i)
n Conclusion, 120 128 [x<y => SUM(i,x,y):f(i)
n] & [x=y => SUM(i,x,y):f(i)
n] Join, 119, 127 129 SUM(i,x,y):f(i)
n Cases, 112, 128 As Required: 130 x
n & y
n & x<=y => SUM(i,x,y):f(i)
n Conclusion, 101 Generalizing... 131 ALL(b):[x
n & b
n & x<=b => SUM(i,x,b):f(i)
n] U Gen, 130 132 ALL(a):ALL(b):[a
n & b
n & a<=b => SUM(i,a,b):f(i)
n] U Gen, 131 As Required: 133 ALL(a):[a
n => f(a)
n] => ALL(a):ALL(b):[a
n & b
n & a<=b => SUM(i,a,b):f(i)
n] Conclusion, 16 As Required: 134 ALL(f):[ALL(a):[a
n => f(a)
n] => ALL(a):ALL(b):[a
n & b
n & a<=b => SUM(i,a,b):f(i)
n]] U Gen, 133