This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Composition of onto functions. Generalisation of foco . (Contributed by AV, 29-Sep-2024)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | focofo | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) –onto→ 𝐵 ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | fof | ⊢ ( 𝐹 : 𝐴 –onto→ 𝐵 → 𝐹 : 𝐴 ⟶ 𝐵 ) | |
| 2 | fcof | ⊢ ( ( 𝐹 : 𝐴 ⟶ 𝐵 ∧ Fun 𝐺 ) → ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) ⟶ 𝐵 ) | |
| 3 | 1 2 | sylan | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ) → ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) ⟶ 𝐵 ) |
| 4 | 3 | 3adant3 | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) ⟶ 𝐵 ) |
| 5 | rnco | ⊢ ran ( 𝐹 ∘ 𝐺 ) = ran ( 𝐹 ↾ ran 𝐺 ) | |
| 6 | 1 | freld | ⊢ ( 𝐹 : 𝐴 –onto→ 𝐵 → Rel 𝐹 ) |
| 7 | 6 | 3ad2ant1 | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → Rel 𝐹 ) |
| 8 | fdm | ⊢ ( 𝐹 : 𝐴 ⟶ 𝐵 → dom 𝐹 = 𝐴 ) | |
| 9 | 8 | eqcomd | ⊢ ( 𝐹 : 𝐴 ⟶ 𝐵 → 𝐴 = dom 𝐹 ) |
| 10 | 1 9 | syl | ⊢ ( 𝐹 : 𝐴 –onto→ 𝐵 → 𝐴 = dom 𝐹 ) |
| 11 | 10 | sseq1d | ⊢ ( 𝐹 : 𝐴 –onto→ 𝐵 → ( 𝐴 ⊆ ran 𝐺 ↔ dom 𝐹 ⊆ ran 𝐺 ) ) |
| 12 | 11 | biimpa | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ 𝐴 ⊆ ran 𝐺 ) → dom 𝐹 ⊆ ran 𝐺 ) |
| 13 | relssres | ⊢ ( ( Rel 𝐹 ∧ dom 𝐹 ⊆ ran 𝐺 ) → ( 𝐹 ↾ ran 𝐺 ) = 𝐹 ) | |
| 14 | 13 | rneqd | ⊢ ( ( Rel 𝐹 ∧ dom 𝐹 ⊆ ran 𝐺 ) → ran ( 𝐹 ↾ ran 𝐺 ) = ran 𝐹 ) |
| 15 | 7 12 14 | 3imp3i2an | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ran ( 𝐹 ↾ ran 𝐺 ) = ran 𝐹 ) |
| 16 | forn | ⊢ ( 𝐹 : 𝐴 –onto→ 𝐵 → ran 𝐹 = 𝐵 ) | |
| 17 | 16 | 3ad2ant1 | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ran 𝐹 = 𝐵 ) |
| 18 | 15 17 | eqtrd | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ran ( 𝐹 ↾ ran 𝐺 ) = 𝐵 ) |
| 19 | 5 18 | eqtrid | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ran ( 𝐹 ∘ 𝐺 ) = 𝐵 ) |
| 20 | dffo2 | ⊢ ( ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) –onto→ 𝐵 ↔ ( ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) ⟶ 𝐵 ∧ ran ( 𝐹 ∘ 𝐺 ) = 𝐵 ) ) | |
| 21 | 4 19 20 | sylanbrc | ⊢ ( ( 𝐹 : 𝐴 –onto→ 𝐵 ∧ Fun 𝐺 ∧ 𝐴 ⊆ ran 𝐺 ) → ( 𝐹 ∘ 𝐺 ) : ( ◡ 𝐺 “ 𝐴 ) –onto→ 𝐵 ) |