Exercise 2: Prove g:{0}-->{0,1} such that g(0)=0 is NOT surjective
Define: Surjective predicate (abbreviation based on Terence Tao's definition, "Analysis I," p.54))
1 ALL(fun):ALL(dom):ALL(cod):[Surjective(fun,dom,cod) <=> ALL(a):[a e cod => EXIST(b):[b e dom & fun(b)=a]]]
Axiom
Define: x, y, 0, 1
2 ~0=1
Axiom
3 Set(x)
Axiom
4 ALL(a):[a e x <=> a=0]
Axiom
5 Set(y)
Axiom
6 ALL(a):[a e y <=> a=0 | a=1]
Axiom
Prove: ALL(g):[ALL(a):[a e x => EXIST(b):[b e y & g(a)=b]] & g(0)=0 => ~Surjective(g,x,y)]
Suppose g is a function mapping {0} to {0,1} such that g(0)=0
7 ALL(a):[a e x => EXIST(b):[b e y & g(a)=b]] & g(0)=0
Premise
8 ALL(a):[a e x => EXIST(b):[b e y & g(a)=b]]
Split, 7
9 g(0)=0
Split, 7
Apply definition of Surjective
10 ALL(dom):ALL(cod):[Surjective(g,dom,cod) <=> ALL(a):[a e cod => EXIST(b):[b e dom & g(b)=a]]]
U Spec, 1
11 ALL(cod):[Surjective(g,x,cod) <=> ALL(a):[a e cod => EXIST(b):[b e x & g(b)=a]]]
U Spec, 10
12 Surjective(g,x,y) <=> ALL(a):[a e y => EXIST(b):[b e x & g(b)=a]]
U Spec, 11
13 [Surjective(g,x,y) => ALL(a):[a e y => EXIST(b):[b e x & g(b)=a]]]
& [ALL(a):[a e y => EXIST(b):[b e x & g(b)=a]] => Surjective(g,x,y)]
Iff-And, 12
14 Surjective(g,x,y) => ALL(a):[a e y => EXIST(b):[b e x & g(b)=a]]
Split, 13
15 ~ALL(a):[a e y => EXIST(b):[b e x & g(b)=a]] => ~Surjective(g,x,y)
Contra, 14
16 ~~EXIST(a):~[a e y => EXIST(b):[b e x & g(b)=a]] => ~Surjective(g,x,y)
Quant, 15
17 EXIST(a):~[a e y => EXIST(b):[b e x & g(b)=a]] => ~Surjective(g,x,y)
Rem DNeg, 16
18 EXIST(a):~~[a e y & ~EXIST(b):[b e x & g(b)=a]] => ~Surjective(g,x,y)
Imply-And, 17
19 EXIST(a):[a e y & ~EXIST(b):[b e x & g(b)=a]] => ~Surjective(g,x,y)
Rem DNeg, 18
20 EXIST(a):[a e y & ~~ALL(b):~[b e x & g(b)=a]] => ~Surjective(g,x,y)
Quant, 19
21 EXIST(a):[a e y & ALL(b):~[b e x & g(b)=a]] => ~Surjective(g,x,y)
Rem DNeg, 20
22 EXIST(a):[a e y & ALL(b):~~[b e x => ~g(b)=a]] => ~Surjective(g,x,y)
Imply-And, 21
Sufficient: For ~Surjective(g,x,y)
23 EXIST(a):[a e y & ALL(b):[b e x => ~g(b)=a]] => ~Surjective(g,x,y)
Rem DNeg, 22
Prove: ALL(b):[b e x => ~g(b)=1]
Suppose...
24 t e x
Premise
25 t e x <=> t=0
U Spec, 4
26 [t e x => t=0] & [t=0 => t e x]
Iff-And, 25
27 t e x => t=0
Split, 26
28 t=0
Detach, 27, 24
29 g(t)=0
Substitute, 28, 9
30 ~g(t)=1
Substitute, 29, 2
As Required:
31 ALL(b):[b e x => ~g(b)=1]
4 Conclusion, 24
32 1 e y <=> 1=0 | 1=1
U Spec, 6
33 [1 e y => 1=0 | 1=1] & [1=0 | 1=1 => 1 e y]
Iff-And, 32
34 1=0 | 1=1 => 1 e y
Split, 33
35 1=1
Reflex
36 1=0 | 1=1
Arb Or, 35
37 1 e y
Detach, 34, 36
38 1 e y & ALL(b):[b e x => ~g(b)=1]
Join, 37, 31
39 EXIST(a):[a e y & ALL(b):[b e x => ~g(b)=a]]
E Gen, 38
40 ~Surjective(g,x,y)
Detach, 23, 39
As Required:
41 ALL(g):[ALL(a):[a e x => EXIST(b):[b e y & g(a)=b]] & g(0)=0
=> ~Surjective(g,x,y)]
4 Conclusion, 7