On Sunday, December 12, 2021 at 4:09:52 AM UTC-5, Mostowski Collapse wrote:
> Also you would need to translate Terrence Taos:
> "P(x, y) be a property pertaining to an object x ∈ X and an object y ∈ Y"
> ∀x∀y(P(x, y) → x ∈ X ∧ y ∈ Y)
>
In DC Proof, to formally construct, i.e. prove the existence of a function f: x --> y, we proceed as follows with the required property P being introduced on line 11:
Given sets x and y
1 Set(x)
Axiom
2 Set(y)
Axiom
Apply Cartesian Product Axiom for x and y
3 ALL(a1):ALL(a2):[Set(a1) & Set(a2) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) in b <=> c1 in a1 & c2 in a2]]]
Cart Prod
4 ALL(a2):[Set(x) & Set(a2) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) in b <=> c1 in x & c2 in a2]]]
U Spec, 3
5 Set(x) & Set(y) => EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) in b <=> c1 in x & c2 in y]]
U Spec, 4
6 Set(x) & Set(y)
Join, 1, 2
7 EXIST(b):[Set'(b) & ALL(c1):ALL(c2):[(c1,c2) in b <=> c1 in x & c2 in y]]
Detach, 5, 6
xy is the Cartesian product of x and y
8 Set'(xy) & ALL(c1):ALL(c2):[(c1,c2) in xy <=> c1 in x & c2 in y]
E Spec, 7
9 Set'(xy)
Split, 8
10 ALL(c1):ALL(c2):[(c1,c2) in xy <=> c1 in x & c2 in y]
Split, 8
Apply Subset Axiom to introduce binary predicate P and the set of ordered pairs f that will be shown to be a function.
11 EXIST(a):[Set'(a) & ALL(b):ALL(c):[(b,c) in a <=> (b,c) in xy & P(b,c)]]
Subset, 9
12 Set'(f) & ALL(b):ALL(c):[(b,c) in f <=> (b,c) in xy & P(b,c)]
E Spec, 11
13 Set'(f)
Split, 12
14 ALL(b):ALL(c):[(b,c) in f <=> (b,c) in xy & P(b,c)]
Split, 12
Prove: f is a function such that f: x --> y
Apply Function Axiom (for 1 variable) to establish sufficient conditions
15 ALL(f):ALL(dom):ALL(cod):[Set'(f) & Set(dom) & Set(cod)
=> [ALL(a1):ALL(b):[(a1,b) in f => a1 in dom & b in cod]
& ALL(a1):[a1 in dom => EXIST(b):[b in cod & (a1,b) in f]]
& ALL(a1):ALL(b1):ALL(b2):[a1 in dom & b1 in cod & b2 in cod
=> [(a1,b1) in f & (a1,b2) in f => b1=b2]]
=> ALL(a1):ALL(b):[a1 in dom & b in cod => [f(a1)=b <=> (a1,b) in f]]]]
Function
16 ALL(dom):ALL(cod):[Set'(f) & Set(dom) & Set(cod)
=> [ALL(a1):ALL(b):[(a1,b) in f => a1 in dom & b in cod]
& ALL(a1):[a1 in dom => EXIST(b):[b in cod & (a1,b) in f]]
& ALL(a1):ALL(b1):ALL(b2):[a1 in dom & b1 in cod & b2 in cod
=> [(a1,b1) in f & (a1,b2) in f => b1=b2]]
=> ALL(a1):ALL(b):[a1 in dom & b in cod => [f(a1)=b <=> (a1,b) in f]]]]
U Spec, 15
17 ALL(cod):[Set'(f) & Set(x) & Set(cod)
=> [ALL(a1):ALL(b):[(a1,b) in f => a1 in x & b in cod]
& ALL(a1):[a1 in x => EXIST(b):[b in cod & (a1,b) in f]]
& ALL(a1):ALL(b1):ALL(b2):[a1 in x & b1 in cod & b2 in cod
=> [(a1,b1) in f & (a1,b2) in f => b1=b2]]
=> ALL(a1):ALL(b):[a1 in x & b in cod => [f(a1)=b <=> (a1,b) in f]]]]
U Spec, 16
18 Set'(f) & Set(x) & Set(y)
=> [ALL(a1):ALL(b):[(a1,b) in f => a1 in x & b in y]
& ALL(a1):[a1 in x => EXIST(b):[b in y & (a1,b) in f]]
& ALL(a1):ALL(b1):ALL(b2):[a1 in x & b1 in y & b2 in y
=> [(a1,b1) in f & (a1,b2) in f => b1=b2]]
=> ALL(a1):ALL(b):[a1 in x & b in y => [f(a1)=b <=> (a1,b) in f]]]
U Spec, 17
19 Set'(f) & Set(x)
Join, 13, 1
20 Set'(f) & Set(x) & Set(y)
Join, 19, 2
We have 3 preconditions here for the functionality of f:
21 ALL(a1):ALL(b):[(a1,b) in f => a1 in x & b in y]
& ALL(a1):[a1 in x => EXIST(b):[b in y & (a1,b) in f]]
& ALL(a1):ALL(b1):ALL(b2):[a1 in x & b1 in y & b2 in y
=> [(a1,b1) in f & (a1,b2) in f => b1=b2]]
=> ALL(a1):ALL(b):[a1 in x & b in y => [f(a1)=b <=> (a1,b) in f]]
Detach, 18, 20