| Step | Hyp | Ref
 | Expression | 
| 1 |   | bren 6031 | 
. . . . . . 7
⊢ (A ≈ C
↔ ∃r r:A–1-1-onto→C) | 
| 2 |   | bren 6031 | 
. . . . . . 7
⊢ (B ≈ D
↔ ∃s s:B–1-1-onto→D) | 
| 3 | 1, 2 | anbi12i 678 | 
. . . . . 6
⊢ ((A ≈ C
∧ B
≈ D) ↔ (∃r r:A–1-1-onto→C ∧ ∃s s:B–1-1-onto→D)) | 
| 4 |   | eeanv 1913 | 
. . . . . 6
⊢ (∃r∃s(r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ↔
(∃r
r:A–1-1-onto→C ∧ ∃s s:B–1-1-onto→D)) | 
| 5 | 3, 4 | bitr4i 243 | 
. . . . 5
⊢ ((A ≈ C
∧ B
≈ D) ↔ ∃r∃s(r:A–1-1-onto→C ∧ s:B–1-1-onto→D)) | 
| 6 |   | simprl 732 | 
. . . . . . . . . . . 12
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
C ⊆
B) | 
| 7 |   | f1ofo 5294 | 
. . . . . . . . . . . . . 14
⊢ (r:A–1-1-onto→C →
r:A–onto→C) | 
| 8 |   | forn 5273 | 
. . . . . . . . . . . . . 14
⊢ (r:A–onto→C
→ ran r = C) | 
| 9 | 7, 8 | syl 15 | 
. . . . . . . . . . . . 13
⊢ (r:A–1-1-onto→C →
ran r = C) | 
| 10 | 9 | ad2antrr 706 | 
. . . . . . . . . . . 12
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
ran r = C) | 
| 11 |   | f1odm 5291 | 
. . . . . . . . . . . . 13
⊢ (s:B–1-1-onto→D →
dom s = B) | 
| 12 | 11 | ad2antlr 707 | 
. . . . . . . . . . . 12
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
dom s = B) | 
| 13 | 6, 10, 12 | 3sstr4d 3315 | 
. . . . . . . . . . 11
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
ran r ⊆
dom s) | 
| 14 |   | dmcosseq 4974 | 
. . . . . . . . . . 11
⊢ (ran r ⊆ dom s → dom (s
∘ r) =
dom r) | 
| 15 | 13, 14 | syl 15 | 
. . . . . . . . . 10
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
dom (s ∘
r) = dom r) | 
| 16 |   | f1odm 5291 | 
. . . . . . . . . . 11
⊢ (r:A–1-1-onto→C →
dom r = A) | 
| 17 | 16 | ad2antrr 706 | 
. . . . . . . . . 10
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
dom r = A) | 
| 18 | 15, 17 | eqtrd 2385 | 
. . . . . . . . 9
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
dom (s ∘
r) = A) | 
| 19 |   | f1ofun 5290 | 
. . . . . . . . . . . . . 14
⊢ (s:B–1-1-onto→D →
Fun s) | 
| 20 |   | f1ofun 5290 | 
. . . . . . . . . . . . . 14
⊢ (r:A–1-1-onto→C →
Fun r) | 
| 21 |   | funco 5143 | 
. . . . . . . . . . . . . 14
⊢ ((Fun s ∧ Fun r) → Fun (s
∘ r)) | 
| 22 | 19, 20, 21 | syl2anr 464 | 
. . . . . . . . . . . . 13
⊢ ((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) →
Fun (s ∘
r)) | 
| 23 |   | dff1o2 5292 | 
. . . . . . . . . . . . . . . 16
⊢ (r:A–1-1-onto→C ↔
(r Fn A
∧ Fun ◡r ∧ ran r =
C)) | 
| 24 | 23 | simp2bi 971 | 
. . . . . . . . . . . . . . 15
⊢ (r:A–1-1-onto→C →
Fun ◡r) | 
| 25 |   | dff1o2 5292 | 
. . . . . . . . . . . . . . . 16
⊢ (s:B–1-1-onto→D ↔
(s Fn B
∧ Fun ◡s ∧ ran s =
D)) | 
| 26 | 25 | simp2bi 971 | 
. . . . . . . . . . . . . . 15
⊢ (s:B–1-1-onto→D →
Fun ◡s) | 
| 27 |   | funco 5143 | 
. . . . . . . . . . . . . . 15
⊢ ((Fun ◡r ∧ Fun ◡s)
→ Fun (◡r ∘ ◡s)) | 
| 28 | 24, 26, 27 | syl2an 463 | 
. . . . . . . . . . . . . 14
⊢ ((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) →
Fun (◡r ∘ ◡s)) | 
| 29 |   | cnvco 4895 | 
. . . . . . . . . . . . . . 15
⊢ ◡(s ∘ r) = (◡r ∘ ◡s) | 
| 30 | 29 | funeqi 5129 | 
. . . . . . . . . . . . . 14
⊢ (Fun ◡(s ∘ r) ↔
Fun (◡r ∘ ◡s)) | 
| 31 | 28, 30 | sylibr 203 | 
. . . . . . . . . . . . 13
⊢ ((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) →
Fun ◡(s ∘ r)) | 
| 32 | 22, 31 | jca 518 | 
. . . . . . . . . . . 12
⊢ ((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) →
(Fun (s ∘ r) ∧ Fun ◡(s ∘ r))) | 
| 33 | 32 | adantr 451 | 
. . . . . . . . . . 11
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
(Fun (s ∘ r) ∧ Fun ◡(s ∘ r))) | 
| 34 |   | dff1o2 5292 | 
. . . . . . . . . . . 12
⊢ ((s ∘ r):dom (s ∘ r)–1-1-onto→ran
(s ∘
r) ↔ ((s ∘ r) Fn dom (s
∘ r)
∧ Fun ◡(s ∘ r) ∧ ran (s ∘ r) = ran
(s ∘
r))) | 
| 35 |   | funfn 5137 | 
. . . . . . . . . . . . . 14
⊢ (Fun (s ∘ r) ↔ (s
∘ r) Fn
dom (s ∘
r)) | 
| 36 | 35 | anbi1i 676 | 
. . . . . . . . . . . . 13
⊢ ((Fun (s ∘ r) ∧ Fun ◡(s ∘ r)) ↔
((s ∘
r) Fn dom (s ∘ r) ∧ Fun ◡(s ∘ r))) | 
| 37 |   | eqid 2353 | 
. . . . . . . . . . . . . 14
⊢ ran (s ∘ r) = ran (s
∘ r) | 
| 38 |   | df-3an 936 | 
. . . . . . . . . . . . . 14
⊢ (((s ∘ r) Fn dom (s
∘ r)
∧ Fun ◡(s ∘ r) ∧ ran (s ∘ r) = ran
(s ∘
r)) ↔ (((s ∘ r) Fn dom (s
∘ r)
∧ Fun ◡(s ∘ r)) ∧ ran (s ∘ r) = ran
(s ∘
r))) | 
| 39 | 37, 38 | mpbiran2 885 | 
. . . . . . . . . . . . 13
⊢ (((s ∘ r) Fn dom (s
∘ r)
∧ Fun ◡(s ∘ r) ∧ ran (s ∘ r) = ran
(s ∘
r)) ↔ ((s ∘ r) Fn dom (s
∘ r)
∧ Fun ◡(s ∘ r))) | 
| 40 | 36, 39 | bitr4i 243 | 
. . . . . . . . . . . 12
⊢ ((Fun (s ∘ r) ∧ Fun ◡(s ∘ r)) ↔
((s ∘
r) Fn dom (s ∘ r) ∧ Fun ◡(s ∘ r) ∧ ran (s ∘ r) = ran
(s ∘
r))) | 
| 41 | 34, 40 | bitr4i 243 | 
. . . . . . . . . . 11
⊢ ((s ∘ r):dom (s ∘ r)–1-1-onto→ran
(s ∘
r) ↔ (Fun (s ∘ r) ∧ Fun ◡(s ∘ r))) | 
| 42 | 33, 41 | sylibr 203 | 
. . . . . . . . . 10
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
(s ∘
r):dom (s ∘ r)–1-1-onto→ran
(s ∘
r)) | 
| 43 |   | vex 2863 | 
. . . . . . . . . . . 12
⊢ s ∈
V | 
| 44 |   | vex 2863 | 
. . . . . . . . . . . 12
⊢ r ∈
V | 
| 45 | 43, 44 | coex 4751 | 
. . . . . . . . . . 11
⊢ (s ∘ r) ∈
V | 
| 46 | 45 | f1oen 6034 | 
. . . . . . . . . 10
⊢ ((s ∘ r):dom (s ∘ r)–1-1-onto→ran
(s ∘
r) → dom (s ∘ r) ≈ ran (s ∘ r)) | 
| 47 | 42, 46 | syl 15 | 
. . . . . . . . 9
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
dom (s ∘
r) ≈ ran (s ∘ r)) | 
| 48 | 18, 47 | eqbrtrrd 4662 | 
. . . . . . . 8
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
A ≈ ran (s ∘ r)) | 
| 49 |   | f1ofo 5294 | 
. . . . . . . . . . . 12
⊢ (s:B–1-1-onto→D →
s:B–onto→D) | 
| 50 |   | forn 5273 | 
. . . . . . . . . . . 12
⊢ (s:B–onto→D
→ ran s = D) | 
| 51 | 49, 50 | syl 15 | 
. . . . . . . . . . 11
⊢ (s:B–1-1-onto→D →
ran s = D) | 
| 52 | 43 | rnex 5108 | 
. . . . . . . . . . 11
⊢ ran s ∈
V | 
| 53 | 51, 52 | syl6eqelr 2442 | 
. . . . . . . . . 10
⊢ (s:B–1-1-onto→D →
D ∈
V) | 
| 54 | 53 | ad2antlr 707 | 
. . . . . . . . 9
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
D ∈
V) | 
| 55 |   | simprr 733 | 
. . . . . . . . . 10
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
D ⊆
A) | 
| 56 | 55, 18 | sseqtr4d 3309 | 
. . . . . . . . 9
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
D ⊆ dom
(s ∘
r)) | 
| 57 |   | rncoss 4973 | 
. . . . . . . . . 10
⊢ ran (s ∘ r) ⊆ ran s | 
| 58 | 51 | ad2antlr 707 | 
. . . . . . . . . 10
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
ran s = D) | 
| 59 | 57, 58 | syl5sseq 3320 | 
. . . . . . . . 9
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
ran (s ∘
r) ⊆
D) | 
| 60 | 45 | sbthlem2 6205 | 
. . . . . . . . 9
⊢ (((Fun (s ∘ r) ∧ Fun ◡(s ∘ r)) ∧ (D ∈ V ∧ D ⊆ dom (s ∘ r) ∧ ran (s ∘ r) ⊆ D)) → ran (s ∘ r) ≈ D) | 
| 61 | 33, 54, 56, 59, 60 | syl13anc 1184 | 
. . . . . . . 8
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
ran (s ∘
r) ≈ D) | 
| 62 |   | entr 6039 | 
. . . . . . . 8
⊢ ((A ≈ ran (s
∘ r)
∧ ran (s
∘ r)
≈ D) → A ≈ D) | 
| 63 | 48, 61, 62 | syl2anc 642 | 
. . . . . . 7
⊢ (((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) ∧ (C ⊆ B ∧ D ⊆ A)) →
A ≈ D) | 
| 64 | 63 | ex 423 | 
. . . . . 6
⊢ ((r:A–1-1-onto→C ∧ s:B–1-1-onto→D) →
((C ⊆
B ∧
D ⊆
A) → A ≈ D)) | 
| 65 | 64 | exlimivv 1635 | 
. . . . 5
⊢ (∃r∃s(r:A–1-1-onto→C ∧ s:B–1-1-onto→D) →
((C ⊆
B ∧
D ⊆
A) → A ≈ D)) | 
| 66 | 5, 65 | sylbi 187 | 
. . . 4
⊢ ((A ≈ C
∧ B
≈ D) → ((C ⊆ B ∧ D ⊆ A) → A
≈ D)) | 
| 67 | 66 | imp 418 | 
. . 3
⊢ (((A ≈ C
∧ B
≈ D) ∧ (C ⊆ B ∧ D ⊆ A)) →
A ≈ D) | 
| 68 | 67 | an4s 799 | 
. 2
⊢ (((A ≈ C
∧ C ⊆ B) ∧ (B ≈
D ∧
D ⊆
A)) → A ≈ D) | 
| 69 |   | ensymi 6037 | 
. . 3
⊢ (B ≈ D
→ D ≈ B) | 
| 70 | 69 | ad2antrl 708 | 
. 2
⊢ (((A ≈ C
∧ C ⊆ B) ∧ (B ≈
D ∧
D ⊆
A)) → D ≈ B) | 
| 71 |   | entr 6039 | 
. 2
⊢ ((A ≈ D
∧ D
≈ B) → A ≈ B) | 
| 72 | 68, 70, 71 | syl2anc 642 | 
1
⊢ (((A ≈ C
∧ C ⊆ B) ∧ (B ≈
D ∧
D ⊆
A)) → A ≈ B) |