Step | Hyp | Ref
| Expression |
1 | | dffun2 5120 |
. . . 4
⊢ (Fun Swap ↔ ∀x∀y∀z((x Swap y ∧ x Swap z) → y =
z)) |
2 | | opeq 4620 |
. . . . . . . 8
⊢ y = 〈 Proj1 y, Proj2 y〉 |
3 | 2 | breq2i 4648 |
. . . . . . 7
⊢ (x Swap y ↔ x Swap 〈 Proj1 y, Proj2 y〉) |
4 | | vex 2863 |
. . . . . . . . 9
⊢ y ∈
V |
5 | 4 | proj1ex 4594 |
. . . . . . . 8
⊢ Proj1 y ∈ V |
6 | 4 | proj2ex 4595 |
. . . . . . . 8
⊢ Proj2 y ∈ V |
7 | 5, 6 | brswap2 4861 |
. . . . . . 7
⊢ (x Swap 〈 Proj1 y, Proj2 y〉 ↔ x = 〈 Proj2 y, Proj1 y〉) |
8 | 3, 7 | bitri 240 |
. . . . . 6
⊢ (x Swap y ↔ x =
〈 Proj2 y, Proj1 y〉) |
9 | | opeq 4620 |
. . . . . . . 8
⊢ z = 〈 Proj1 z, Proj2 z〉 |
10 | 9 | breq2i 4648 |
. . . . . . 7
⊢ (x Swap z ↔ x Swap 〈 Proj1 z, Proj2 z〉) |
11 | | vex 2863 |
. . . . . . . . 9
⊢ z ∈
V |
12 | 11 | proj1ex 4594 |
. . . . . . . 8
⊢ Proj1 z ∈ V |
13 | 11 | proj2ex 4595 |
. . . . . . . 8
⊢ Proj2 z ∈ V |
14 | 12, 13 | brswap2 4861 |
. . . . . . 7
⊢ (x Swap 〈 Proj1 z, Proj2 z〉 ↔ x = 〈 Proj2 z, Proj1 z〉) |
15 | 10, 14 | bitri 240 |
. . . . . 6
⊢ (x Swap z ↔ x =
〈 Proj2 z, Proj1 z〉) |
16 | | eqtr2 2371 |
. . . . . . 7
⊢ ((x = 〈 Proj2 y, Proj1 y〉 ∧ x = 〈 Proj2 z, Proj1 z〉) → 〈 Proj2 y, Proj1 y〉 = 〈 Proj2 z, Proj1 z〉) |
17 | | ancom 437 |
. . . . . . . 8
⊢ (( Proj2 y = Proj2 z ∧ Proj1 y = Proj1 z) ↔ ( Proj1
y = Proj1
z ∧
Proj2 y =
Proj2 z)) |
18 | | opth 4603 |
. . . . . . . 8
⊢ (〈 Proj2 y, Proj1 y〉 = 〈 Proj2 z, Proj1 z〉 ↔ ( Proj2 y = Proj2 z ∧ Proj1 y = Proj1 z)) |
19 | 2, 9 | eqeq12i 2366 |
. . . . . . . . 9
⊢ (y = z ↔
〈 Proj1 y, Proj2 y〉 = 〈 Proj1 z, Proj2 z〉) |
20 | | opth 4603 |
. . . . . . . . 9
⊢ (〈 Proj1 y, Proj2 y〉 = 〈 Proj1 z, Proj2 z〉 ↔ ( Proj1 y = Proj1 z ∧ Proj2 y = Proj2 z)) |
21 | 19, 20 | bitri 240 |
. . . . . . . 8
⊢ (y = z ↔
( Proj1 y =
Proj1 z ∧ Proj2 y = Proj2 z)) |
22 | 17, 18, 21 | 3bitr4i 268 |
. . . . . . 7
⊢ (〈 Proj2 y, Proj1 y〉 = 〈 Proj2 z, Proj1 z〉 ↔ y = z) |
23 | 16, 22 | sylib 188 |
. . . . . 6
⊢ ((x = 〈 Proj2 y, Proj1 y〉 ∧ x = 〈 Proj2 z, Proj1 z〉) → y =
z) |
24 | 8, 15, 23 | syl2anb 465 |
. . . . 5
⊢ ((x Swap y ∧ x Swap z) → y =
z) |
25 | 24 | gen2 1547 |
. . . 4
⊢ ∀y∀z((x Swap y ∧ x Swap z) → y =
z) |
26 | 1, 25 | mpgbir 1550 |
. . 3
⊢ Fun Swap |
27 | | eqv 3566 |
. . . 4
⊢ (dom Swap = V ↔ ∀x x ∈ dom Swap ) |
28 | | opeq 4620 |
. . . . 5
⊢ x = 〈 Proj1 x, Proj2 x〉 |
29 | | eqid 2353 |
. . . . . . 7
⊢ 〈 Proj1 x, Proj2 x〉 = 〈 Proj1 x, Proj2 x〉 |
30 | | vex 2863 |
. . . . . . . . 9
⊢ x ∈
V |
31 | 30 | proj2ex 4595 |
. . . . . . . 8
⊢ Proj2 x ∈ V |
32 | 30 | proj1ex 4594 |
. . . . . . . 8
⊢ Proj1 x ∈ V |
33 | 31, 32 | brswap2 4861 |
. . . . . . 7
⊢ (〈 Proj1 x, Proj2 x〉 Swap 〈 Proj2 x, Proj1 x〉 ↔ 〈 Proj1 x, Proj2 x〉 = 〈 Proj1 x, Proj2 x〉) |
34 | 29, 33 | mpbir 200 |
. . . . . 6
⊢ 〈 Proj1 x, Proj2 x〉 Swap 〈 Proj2 x, Proj1 x〉 |
35 | | breldm 4912 |
. . . . . 6
⊢ (〈 Proj1 x, Proj2 x〉 Swap 〈 Proj2 x, Proj1 x〉 → 〈 Proj1 x, Proj2 x〉 ∈ dom Swap ) |
36 | 34, 35 | ax-mp 5 |
. . . . 5
⊢ 〈 Proj1 x, Proj2 x〉 ∈ dom Swap
|
37 | 28, 36 | eqeltri 2423 |
. . . 4
⊢ x ∈ dom Swap |
38 | 27, 37 | mpgbir 1550 |
. . 3
⊢ dom Swap = V |
39 | | df-fn 4791 |
. . 3
⊢ ( Swap Fn V ↔ (Fun Swap
∧ dom Swap
= V)) |
40 | 26, 38, 39 | mpbir2an 886 |
. 2
⊢ Swap Fn V |
41 | | cnvswap 5511 |
. . . 4
⊢ ◡ Swap = Swap |
42 | 41 | fneq1i 5179 |
. . 3
⊢ (◡ Swap Fn V
↔ Swap Fn V) |
43 | 40, 42 | mpbir 200 |
. 2
⊢ ◡ Swap Fn
V |
44 | | dff1o4 5295 |
. 2
⊢ ( Swap :V–1-1-onto→V
↔ ( Swap Fn V ∧ ◡ Swap Fn V)) |
45 | 40, 43, 44 | mpbir2an 886 |
1
⊢ Swap :V–1-1-onto→V |