Proof of Theorem foco
Step | Hyp | Ref
| Expression |
1 | | dffo2 5110 |
. . 3
⊢ (𝐹:𝐵–onto→𝐶 ↔ (𝐹:𝐵⟶𝐶 ∧ ran 𝐹 = 𝐶)) |
2 | | dffo2 5110 |
. . 3
⊢ (𝐺:𝐴–onto→𝐵 ↔ (𝐺:𝐴⟶𝐵 ∧ ran 𝐺 = 𝐵)) |
3 | | fco 5056 |
. . . . 5
⊢ ((𝐹:𝐵⟶𝐶 ∧ 𝐺:𝐴⟶𝐵) → (𝐹 ∘ 𝐺):𝐴⟶𝐶) |
4 | 3 | ad2ant2r 478 |
. . . 4
⊢ (((𝐹:𝐵⟶𝐶 ∧ ran 𝐹 = 𝐶) ∧ (𝐺:𝐴⟶𝐵 ∧ ran 𝐺 = 𝐵)) → (𝐹 ∘ 𝐺):𝐴⟶𝐶) |
5 | | fdm 5050 |
. . . . . . . 8
⊢ (𝐹:𝐵⟶𝐶 → dom 𝐹 = 𝐵) |
6 | | eqtr3 2059 |
. . . . . . . 8
⊢ ((dom
𝐹 = 𝐵 ∧ ran 𝐺 = 𝐵) → dom 𝐹 = ran 𝐺) |
7 | 5, 6 | sylan 267 |
. . . . . . 7
⊢ ((𝐹:𝐵⟶𝐶 ∧ ran 𝐺 = 𝐵) → dom 𝐹 = ran 𝐺) |
8 | | rncoeq 4605 |
. . . . . . . . 9
⊢ (dom
𝐹 = ran 𝐺 → ran (𝐹 ∘ 𝐺) = ran 𝐹) |
9 | 8 | eqeq1d 2048 |
. . . . . . . 8
⊢ (dom
𝐹 = ran 𝐺 → (ran (𝐹 ∘ 𝐺) = 𝐶 ↔ ran 𝐹 = 𝐶)) |
10 | 9 | biimpar 281 |
. . . . . . 7
⊢ ((dom
𝐹 = ran 𝐺 ∧ ran 𝐹 = 𝐶) → ran (𝐹 ∘ 𝐺) = 𝐶) |
11 | 7, 10 | sylan 267 |
. . . . . 6
⊢ (((𝐹:𝐵⟶𝐶 ∧ ran 𝐺 = 𝐵) ∧ ran 𝐹 = 𝐶) → ran (𝐹 ∘ 𝐺) = 𝐶) |
12 | 11 | an32s 502 |
. . . . 5
⊢ (((𝐹:𝐵⟶𝐶 ∧ ran 𝐹 = 𝐶) ∧ ran 𝐺 = 𝐵) → ran (𝐹 ∘ 𝐺) = 𝐶) |
13 | 12 | adantrl 447 |
. . . 4
⊢ (((𝐹:𝐵⟶𝐶 ∧ ran 𝐹 = 𝐶) ∧ (𝐺:𝐴⟶𝐵 ∧ ran 𝐺 = 𝐵)) → ran (𝐹 ∘ 𝐺) = 𝐶) |
14 | 4, 13 | jca 290 |
. . 3
⊢ (((𝐹:𝐵⟶𝐶 ∧ ran 𝐹 = 𝐶) ∧ (𝐺:𝐴⟶𝐵 ∧ ran 𝐺 = 𝐵)) → ((𝐹 ∘ 𝐺):𝐴⟶𝐶 ∧ ran (𝐹 ∘ 𝐺) = 𝐶)) |
15 | 1, 2, 14 | syl2anb 275 |
. 2
⊢ ((𝐹:𝐵–onto→𝐶 ∧ 𝐺:𝐴–onto→𝐵) → ((𝐹 ∘ 𝐺):𝐴⟶𝐶 ∧ ran (𝐹 ∘ 𝐺) = 𝐶)) |
16 | | dffo2 5110 |
. 2
⊢ ((𝐹 ∘ 𝐺):𝐴–onto→𝐶 ↔ ((𝐹 ∘ 𝐺):𝐴⟶𝐶 ∧ ran (𝐹 ∘ 𝐺) = 𝐶)) |
17 | 15, 16 | sylibr 137 |
1
⊢ ((𝐹:𝐵–onto→𝐶 ∧ 𝐺:𝐴–onto→𝐵) → (𝐹 ∘ 𝐺):𝐴–onto→𝐶) |