THEOREM
*******
ALL(x):[U(x)
=> ALL(y):[U(y) => [~x=y => F(x) | F(y)]]]
<=> EXIST(x):[U(x) & ALL(y):[U(y)
=> [~x=y => F(y)]]]
where U is a
non-empty domain of discourse
This formal proof was written and
verified with the aid of the author's DC Proof 2.0 freeware now available at http://www.dproof.com
Dan Christensen
2020-11-23
PROOF
*****
U is a non-empty domain of
discourse
1 EXIST(x):U(x)
Axiom
'=>'
Prove: ALL(x):[U(x) => ALL(y):[U(y)
=> [~x=y => F(x) | F(y)]]]
=> EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y => F(y)]]]
Suppose...
2 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => F(x) | F(y)]]]
Premise
Two cases to consider:
3 ALL(x):[U(x) => F(x)] | ~ALL(x):[U(x)
=> F(x)]
Or Not
Case 1
Prove: ALL(x):[U(x) => F(x)]
=> EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y => F(y)]]]
Suppose...
4 ALL(x):[U(x) => F(x)]
Premise
5 U(a)
E Spec, 1
Prove: ALL(y):[U(y) => [~a=y
=> F(y)]]
Suppose...
6 U(b)
Premise
7 U(b) => F(b)
U Spec, 4
8 F(b)
Detach, 7, 6
9 ~a=b => F(b)
Arb Ante, 8
As Required:
10 ALL(y):[U(y) => [~a=y => F(y)]]
4 Conclusion, 6
11 U(a) & ALL(y):[U(y) => [~a=y => F(y)]]
Join, 5, 10
12 EXIST(x):[U(x) & ALL(y):[U(y) =>
[~x=y => F(y)]]]
E Gen, 11
Case 1
As Required:
13 ALL(x):[U(x) => F(x)]
=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]
4 Conclusion, 4
Case 2
Prove: ~ALL(x):[U(x) => F(x)]
=> EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y => F(y)]]]
Suppose...
14 ~ALL(x):[U(x) => F(x)]
Premise
15 ~~EXIST(x):~[U(x) => F(x)]
Quant, 14
16 EXIST(x):~[U(x) => F(x)]
Rem DNeg, 15
17 EXIST(x):~~[U(x) & ~F(x)]
Imply-And, 16
18 EXIST(x):[U(x) & ~F(x)]
Rem DNeg, 17
19 U(a) & ~F(a)
E Spec, 18
20 U(a)
Split, 19
21 ~F(a)
Split, 19
22 U(a) => ALL(y):[U(y) => [~a=y => F(a) | F(y)]]
U Spec, 2
23 ALL(y):[U(y) => [~a=y => F(a) | F(y)]]
Detach, 22, 20
Prove: ALL(y):[U(y) => [~a=y
=> F(y)]
Suppose...
24 U(b)
Premise
25 U(b) => [~a=b => F(a) | F(b)]
U Spec, 23
26 ~a=b => F(a) | F(b)
Detach, 25, 24
Prove: ~a=b => F(b)
Suppose...
27 ~a=b
Premise
28 F(a) | F(b)
Detach, 26, 27
29 ~F(a) => F(b)
Imply-Or, 28
30 F(b)
Detach, 29, 21
As Required:
31 ~a=b => F(b)
4 Conclusion, 27
As Required:
32 ALL(y):[U(y) => [~a=y => F(y)]]
4 Conclusion, 24
33 U(a) & ALL(y):[U(y) => [~a=y => F(y)]]
Join, 20, 32
34 EXIST(x):[U(x) & ALL(y):[U(y) =>
[~x=y => F(y)]]]
E Gen, 33
Case 2
As Required:
35 ~ALL(x):[U(x) => F(x)]
=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]
4 Conclusion, 14
Join results
36 [ALL(x):[U(x) => F(x)]
=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]]
&
[~ALL(x):[U(x) => F(x)]
=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]]
Join, 13, 35
Apply Cases Rule
37 EXIST(x):[U(x) & ALL(y):[U(y) =>
[~x=y => F(y)]]]
Cases, 3, 36
As Required:
38 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => F(x) | F(y)]]]
=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]
4 Conclusion, 2
'<='
Prove: EXIST(x):[U(x) & ALL(y):[U(y)
=> [~x=y => F(y)]]]
=> ALL(x):[U(x) => ALL(y):[U(y) => [~x=y => F(x) | F(y)]]]
Suppose...
39 EXIST(x):[U(x) & ALL(y):[U(y) =>
[~x=y => F(y)]]]
Premise
40 U(a) & ALL(y):[U(y) => [~a=y => F(y)]]
E Spec, 39
41 U(a)
Split, 40
42 ALL(y):[U(y) => [~a=y => F(y)]]
Split, 40
43 ALL(y):[U(y) => [~F(y) => ~~a=y]]
Contra, 42
44 ALL(y):[U(y) => [~F(y) => a=y]]
Rem DNeg, 43
Prove: ~EXIST(x):[U(x) &
EXIST(y):[U(y) & [~x=y & [~F(x) & ~F(y)]]]]
Suppose to the contrary...
45 EXIST(x):[U(x) & EXIST(y):[U(y) &
[~x=y & [~F(x) & ~F(y)]]]]
Premise
46 U(b) & EXIST(y):[U(y) & [~b=y & [~F(b) & ~F(y)]]]
E Spec, 45
47 U(b)
Split, 46
48 EXIST(y):[U(y) & [~b=y & [~F(b) & ~F(y)]]]
Split, 46
49 U(c) & [~b=c & [~F(b) & ~F(c)]]
E Spec, 48
50 U(c)
Split, 49
51 ~b=c & [~F(b) & ~F(c)]
Split, 49
52 ~b=c
Split, 51
53 ~F(b) & ~F(c)
Split, 51
54 ~F(b)
Split, 53
55 ~F(c)
Split, 53
56 U(b) => [~F(b) => a=b]
U Spec, 44
57 ~F(b) => a=b
Detach, 56, 47
58 a=b
Detach, 57, 54
59 U(c) => [~F(c) => a=c]
U Spec, 44
60 ~F(c) => a=c
Detach, 59, 50
61 a=c
Detach, 60, 55
62 b=c
Substitute, 58,
61
63 ~b=c & b=c
Join, 52, 62
As Required:
64 ~EXIST(x):[U(x) & EXIST(y):[U(y)
& [~x=y & [~F(x) & ~F(y)]]]]
4 Conclusion, 45
65 ~~ALL(x):~[U(x) & EXIST(y):[U(y)
& [~x=y & [~F(x) & ~F(y)]]]]
Quant, 64
66 ALL(x):~[U(x) & EXIST(y):[U(y) &
[~x=y & [~F(x) & ~F(y)]]]]
Rem DNeg, 65
67 ALL(x):~~[U(x) => ~EXIST(y):[U(y)
& [~x=y & [~F(x) & ~F(y)]]]]
Imply-And, 66
68 ALL(x):[U(x) => ~EXIST(y):[U(y) &
[~x=y & [~F(x) & ~F(y)]]]]
Rem DNeg, 67
69 ALL(x):[U(x) => ~~ALL(y):~[U(y) &
[~x=y & [~F(x) & ~F(y)]]]]
Quant, 68
70 ALL(x):[U(x) => ALL(y):~[U(y) &
[~x=y & [~F(x) & ~F(y)]]]]
Rem DNeg, 69
71 ALL(x):[U(x) => ALL(y):~~[U(y) =>
~[~x=y & [~F(x) & ~F(y)]]]]
Imply-And, 70
72 ALL(x):[U(x) => ALL(y):[U(y) =>
~[~x=y & [~F(x) & ~F(y)]]]]
Rem DNeg, 71
73 ALL(x):[U(x) => ALL(y):[U(y) =>
~~[~x=y => ~[~F(x) & ~F(y)]]]]
Imply-And, 72
74 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => ~[~F(x) & ~F(y)]]]]
Rem DNeg, 73
75 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => ~~[~~F(x) | ~~F(y)]]]]
DeMorgan, 74
76 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => ~~F(x) | ~~F(y)]]]
Rem DNeg, 75
77 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => F(x) | ~~F(y)]]]
Rem DNeg, 76
78 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => F(x) | F(y)]]]
Rem DNeg, 77
As Required:
79 EXIST(x):[U(x) & ALL(y):[U(y) =>
[~x=y => F(y)]]]
=>
ALL(x):[U(x) => ALL(y):[U(y) => [~x=y => F(x)
| F(y)]]]
4 Conclusion, 39
Joining results...
80 [ALL(x):[U(x) => ALL(y):[U(y) => [~x=y => F(x) | F(y)]]]
=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]]
&
[EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]
=>
ALL(x):[U(x) => ALL(y):[U(y) => [~x=y => F(x)
| F(y)]]]]
Join, 38, 79
As Required:
81 ALL(x):[U(x) => ALL(y):[U(y) =>
[~x=y => F(x) | F(y)]]]
<=>
EXIST(x):[U(x) & ALL(y):[U(y) => [~x=y =>
F(y)]]]
Iff-And, 80