Metamath Proof Explorer


Theorem focofo

Description: Composition of onto functions. Generalisation of foco . (Contributed by AV, 29-Sep-2024)

Ref Expression
Assertion focofo ( ( 𝐹 : 𝐴onto𝐵 ∧ Fun 𝐺𝐴 ⊆ ran 𝐺 ) → ( 𝐹𝐺 ) : ( 𝐺𝐴 ) –onto𝐵 )

Proof

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𝐵 )