THEOREM
*******
For any x0 e s, there exists a function f mapping n to s such that f(x) = pow(x0,x)
ALL(s):ALL(pow):[Set(s)
& ALL(a):ALL(b):[a e s & b e s => a*b e s]
& ALL(a):ALL(b):[a e s & b e n => pow(a,b) e s]
& ALL(a):[a e s => pow(a,1)=a]
& ALL(a):ALL(b):[a e s & b e n => pow(a,b+1)=pow(a,b)*a]
=> ALL(a):[a e s
=> EXIST(f):[ALL(b):[b e n => f(b) e s]
& ALL(b):[b e n => f(b)=pow(a,b)]]]]
This formal proof was written and machine-verified with the aid of the author's DC Proof 2.0 available at http://www.dcproof.com
REQUIRED PROPERTIES OF N
************************
1 Set(n)
Axiom
2 1 e n
Axiom
3 ALL(a):ALL(b):[a e n & b e n => a+b e n]
Axiom
PROOF
*****
Suppose...
4 Set(s)
& ALL(a):ALL(b):[a e s & b e s => a*b e s]
& ALL(a):ALL(b):[a e s & b e n => pow(a,b) e s]
& ALL(a):[a e s => pow(a,1)=a]
& ALL(a):ALL(b):[a e s & b e n => pow(a,b+1)=pow(a,b)*a]
Premise
5 Set(s)
Split, 4
6 ALL(a):ALL(b):[a e s & b e s => a*b e s]
Split, 4
7 ALL(a):ALL(b):[a e s & b e n => pow(a,b) e s]
Split, 4
8 ALL(a):[a e s => pow(a,1)=a]
Split, 4
9 ALL(a):ALL(b):[a e s & b e n => pow(a,b+1)=pow(a,b)*a]
Split, 4
Prove: ALL(a):[a e s
=> EXIST(f):[ALL(b):[b e n => f(b) e s]
& ALL(b):[b e n => f(b)=pow(a,b)]]]
Suppose...
10 x0 e s
Premise
Construct the Cartesain of product of n and s
Apply the Cartesian Product Axiom
11 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
12 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, 11
13 Set(n) & Set(s) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) e b <=> c1 e n & c2 e s]]
U Spec, 12
14 Set(n) & Set(s)
Join, 1, 5
15 EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) e b <=> c1 e n & c2 e s]]
Detach, 13, 14
16 Set'(ns) & ALL(c1):ALL(c2):[(c1,c2) e ns <=> c1 e n & c2 e s]
E Spec, 15
Define: ns
The Cartesian product of n and s
17 Set'(ns)
Split, 16
18 ALL(c1):ALL(c2):[(c1,c2) e ns <=> c1 e n & c2 e s]
Split, 16
Construct a subset f of ns
Apply Subset Axiom
19 EXIST(sub):[Set'(sub) & ALL(a):ALL(b):[(a,b) e sub <=> (a,b) e ns & b=pow(x0,a)]]
Subset, 17
20 Set'(f) & ALL(a):ALL(b):[(a,b) e f <=> (a,b) e ns & b=pow(x0,a)]
E Spec, 19
Define: f
21 Set'(f)
Split, 20
22 ALL(a):ALL(b):[(a,b) e f <=> (a,b) e ns & b=pow(x0,a)]
Split, 20
Prove: ALL(a):ALL(b):[(a,b) e f => a e n & b e s]
Suppose...
23 (x,y) e f
Premise
Apply definition of f
24 ALL(b):[(x,b) e f <=> (x,b) e ns & b=pow(x0,x)]
U Spec, 22
25 (x,y) e f <=> (x,y) e ns & y=pow(x0,x)
U Spec, 24
26 [(x,y) e f => (x,y) e ns & y=pow(x0,x)]
& [(x,y) e ns & y=pow(x0,x) => (x,y) e f]
Iff-And, 25
27 (x,y) e f => (x,y) e ns & y=pow(x0,x)
Split, 26
28 (x,y) e ns & y=pow(x0,x) => (x,y) e f
Split, 26
29 (x,y) e ns & y=pow(x0,x)
Detach, 27, 23
30 (x,y) e ns
Split, 29
31 y=pow(x0,x)
Split, 29
Apply definition of ns
32 ALL(c2):[(x,c2) e ns <=> x e n & c2 e s]
U Spec, 18
33 (x,y) e ns <=> x e n & y e s
U Spec, 32
34 [(x,y) e ns => x e n & y e s]
& [x e n & y e s => (x,y) e ns]
Iff-And, 33
35 (x,y) e ns => x e n & y e s
Split, 34
36 x e n & y e s => (x,y) e ns
Split, 34
37 x e n & y e s
Detach, 35, 30
As Required:
38 ALL(a):ALL(b):[(a,b) e f => a e n & b e s]
4 Conclusion, 23
Prove: ALL(a):ALL(b):[(a,b) e f => b=pow(x0,a)]
Suppose...
39 (x,y) e f
Premise
Apply definition of f
40 ALL(b):[(x,b) e f <=> (x,b) e ns & b=pow(x0,x)]
U Spec, 22
41 (x,y) e f <=> (x,y) e ns & y=pow(x0,x)
U Spec, 40
42 [(x,y) e f => (x,y) e ns & y=pow(x0,x)]
& [(x,y) e ns & y=pow(x0,x) => (x,y) e f]
Iff-And, 41
43 (x,y) e f => (x,y) e ns & y=pow(x0,x)
Split, 42
44 (x,y) e ns & y=pow(x0,x) => (x,y) e f
Split, 42
45 (x,y) e ns & y=pow(x0,x)
Detach, 43, 39
46 (x,y) e ns
Split, 45
47 y=pow(x0,x)
Split, 45
As Required:
48 ALL(a):ALL(b):[(a,b) e f => b=pow(x0,a)]
4 Conclusion, 39
Prove: f is a function
Apply Function Axiom
49 ALL(f):ALL(a):ALL(b):[ALL(c):ALL(d):[(c,d) e f => c e a & d e b]
& ALL(c):[c e a => EXIST(d):[d e b & (c,d) e f]]
& ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
=> ALL(c):ALL(d):[d=f(c) <=> (c,d) e f]]
Function
50 ALL(a):ALL(b):[ALL(c):ALL(d):[(c,d) e f => c e a & d e b]
& ALL(c):[c e a => EXIST(d):[d e b & (c,d) e f]]
& ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
=> ALL(c):ALL(d):[d=f(c) <=> (c,d) e f]]
U Spec, 49
51 ALL(b):[ALL(c):ALL(d):[(c,d) e f => c e n & d e b]
& ALL(c):[c e n => EXIST(d):[d e b & (c,d) e f]]
& ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
=> ALL(c):ALL(d):[d=f(c) <=> (c,d) e f]]
U Spec, 50
Sufficient: For functionality of f
52 ALL(c):ALL(d):[(c,d) e f => c e n & d e s]
& ALL(c):[c e n => EXIST(d):[d e s & (c,d) e f]]
& ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
=> ALL(c):ALL(d):[d=f(c) <=> (c,d) e f]
U Spec, 51
Prove: ALL(c):[c e n => EXIST(d):[d e s & (c,d) e f]]
Suppose...
53 x e n
Premise
Apply definition of f
54 ALL(b):[(x,b) e f <=> (x,b) e ns & b=pow(x0,x)]
U Spec, 22
55 (x,pow(x0,x)) e f <=> (x,pow(x0,x)) e ns & pow(x0,x)=pow(x0,x)
U Spec, 54
56 [(x,pow(x0,x)) e f => (x,pow(x0,x)) e ns & pow(x0,x)=pow(x0,x)]
& [(x,pow(x0,x)) e ns & pow(x0,x)=pow(x0,x) => (x,pow(x0,x)) e f]
Iff-And, 55
57 (x,pow(x0,x)) e f => (x,pow(x0,x)) e ns & pow(x0,x)=pow(x0,x)
Split, 56
58 (x,pow(x0,x)) e ns & pow(x0,x)=pow(x0,x) => (x,pow(x0,x)) e f
Split, 56
Apply definition of ns
59 ALL(c2):[(x,c2) e ns <=> x e n & c2 e s]
U Spec, 18
60 (x,pow(x0,x)) e ns <=> x e n & pow(x0,x) e s
U Spec, 59
61 [(x,pow(x0,x)) e ns => x e n & pow(x0,x) e s]
& [x e n & pow(x0,x) e s => (x,pow(x0,x)) e ns]
Iff-And, 60
62 (x,pow(x0,x)) e ns => x e n & pow(x0,x) e s
Split, 61
63 x e n & pow(x0,x) e s => (x,pow(x0,x)) e ns
Split, 61
Apply definiton of pow
64 ALL(b):[x0 e s & b e n => pow(x0,b) e s]
U Spec, 7
65 x0 e s & x e n => pow(x0,x) e s
U Spec, 64
66 x0 e s & x e n
Join, 10, 53
67 pow(x0,x) e s
Detach, 65, 66
68 x e n & pow(x0,x) e s
Join, 53, 67
69 (x,pow(x0,x)) e ns
Detach, 63, 68
70 pow(x0,x)=pow(x0,x)
Reflex
71 (x,pow(x0,x)) e ns & pow(x0,x)=pow(x0,x)
Join, 69, 70
72 (x,pow(x0,x)) e f
Detach, 58, 71
73 pow(x0,x) e s & (x,pow(x0,x)) e f
Join, 67, 72
Generalizing...
74 EXIST(d):[d e s & (x,d) e f]
E Gen, 73
Functionality, Part 2
75 ALL(c):[c e n => EXIST(d):[d e s & (c,d) e f]]
4 Conclusion, 53
Prove: ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
Suppose...
76 (x,y1) e f & (x,y2) e f
Premise
77 (x,y1) e f
Split, 76
78 (x,y2) e f
Split, 76
Apply previous result
79 ALL(b):[(x,b) e f => b=pow(x0,x)]
U Spec, 48
80 (x,y1) e f => y1=pow(x0,x)
U Spec, 79
81 y1=pow(x0,x)
Detach, 80, 77
82 (x,y2) e f => y2=pow(x0,x)
U Spec, 79
83 y2=pow(x0,x)
Detach, 82, 78
84 y1=y2
Substitute, 83, 81
Functionality, Part 3
85 ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
4 Conclusion, 76
Joining results...
86 ALL(a):ALL(b):[(a,b) e f => a e n & b e s]
& ALL(c):[c e n => EXIST(d):[d e s & (c,d) e f]]
Join, 38, 75
87 ALL(a):ALL(b):[(a,b) e f => a e n & b e s]
& ALL(c):[c e n => EXIST(d):[d e s & (c,d) e f]]
& ALL(c):ALL(d1):ALL(d2):[(c,d1) e f & (c,d2) e f => d1=d2]
Join, 86, 85
f is a function
88 ALL(c):ALL(d):[d=f(c) <=> (c,d) e f]
Detach, 52, 87
Prove: ALL(b):[b e n => f(b) e s]
Suppose...
89 x e n
Premise
Apply previous result
90 x e n => EXIST(d):[d e s & (x,d) e f]
U Spec, 75
91 EXIST(d):[d e s & (x,d) e f]
Detach, 90, 89
92 y e s & (x,y) e f
E Spec, 91
93 y e s
Split, 92
94 (x,y) e f
Split, 92
Apply functionality of f
95 ALL(d):[d=f(x) <=> (x,d) e f]
U Spec, 88
96 y=f(x) <=> (x,y) e f
U Spec, 95
97 [y=f(x) => (x,y) e f] & [(x,y) e f => y=f(x)]
Iff-And, 96
98 y=f(x) => (x,y) e f
Split, 97
99 (x,y) e f => y=f(x)
Split, 97
100 y=f(x)
Detach, 99, 94
101 f(x) e s
Substitute, 100, 93
As Required:
102 ALL(b):[b e n => f(b) e s]
4 Conclusion, 89
Prove: ALL(b):[b e n => f(b)=pow(x0,b)]
Suppose...
103 x e n
Premise
Apply previous result
104 x e n => EXIST(d):[d e s & (x,d) e f]
U Spec, 75
105 EXIST(d):[d e s & (x,d) e f]
Detach, 104, 103
106 y e s & (x,y) e f
E Spec, 105
107 y e s
Split, 106
108 (x,y) e f
Split, 106
Apply functionality of f
109 ALL(d):[d=f(x) <=> (x,d) e f]
U Spec, 88
110 y=f(x) <=> (x,y) e f
U Spec, 109
111 [y=f(x) => (x,y) e f] & [(x,y) e f => y=f(x)]
Iff-And, 110
112 y=f(x) => (x,y) e f
Split, 111
113 (x,y) e f => y=f(x)
Split, 111
114 y=f(x)
Detach, 113, 108
Apply previous result
115 ALL(b):[(x,b) e f => b=pow(x0,x)]
U Spec, 48
116 (x,y) e f => y=pow(x0,x)
U Spec, 115
117 y=pow(x0,x)
Detach, 116, 108
118 f(x)=pow(x0,x)
Substitute, 114, 117
As Required:
119 ALL(b):[b e n => f(b)=pow(x0,b)]
4 Conclusion, 103
Joining results...
120 ALL(b):[b e n => f(b) e s]
& ALL(b):[b e n => f(b)=pow(x0,b)]
Join, 102, 119
As Required:
121 ALL(a):[a e s
=> EXIST(f):[ALL(b):[b e n => f(b) e s]
& ALL(b):[b e n => f(b)=pow(a,b)]]]
4 Conclusion, 10
As Required:
122 ALL(s):ALL(pow):[Set(s)
& ALL(a):ALL(b):[a e s & b e s => a*b e s]
& ALL(a):ALL(b):[a e s & b e n => pow(a,b) e s]
& ALL(a):[a e s => pow(a,1)=a]
& ALL(a):ALL(b):[a e s & b e n => pow(a,b+1)=pow(a,b)*a]
=> ALL(a):[a e s
=> EXIST(f):[ALL(b):[b e n => f(b) e s]
& ALL(b):[b e n => f(b)=pow(a,b)]]]]
4 Conclusion, 4