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 |