Step |
Hyp |
Ref |
Expression |
1 |
|
fcores.f |
|- ( ph -> F : A --> B ) |
2 |
|
fcores.e |
|- E = ( ran F i^i C ) |
3 |
|
fcores.p |
|- P = ( `' F " C ) |
4 |
|
fcores.x |
|- X = ( F |` P ) |
5 |
|
fcores.g |
|- ( ph -> G : C --> D ) |
6 |
|
fcores.y |
|- Y = ( G |` E ) |
7 |
|
fcoresfo.s |
|- ( ph -> ( G o. F ) : P -onto-> D ) |
8 |
2
|
a1i |
|- ( ph -> E = ( ran F i^i C ) ) |
9 |
|
inss2 |
|- ( ran F i^i C ) C_ C |
10 |
8 9
|
eqsstrdi |
|- ( ph -> E C_ C ) |
11 |
5 10
|
fssresd |
|- ( ph -> ( G |` E ) : E --> D ) |
12 |
6
|
feq1i |
|- ( Y : E --> D <-> ( G |` E ) : E --> D ) |
13 |
11 12
|
sylibr |
|- ( ph -> Y : E --> D ) |
14 |
1 2 3 4
|
fcoreslem3 |
|- ( ph -> X : P -onto-> E ) |
15 |
|
fof |
|- ( X : P -onto-> E -> X : P --> E ) |
16 |
14 15
|
syl |
|- ( ph -> X : P --> E ) |
17 |
1 2 3 4 5 6
|
fcores |
|- ( ph -> ( G o. F ) = ( Y o. X ) ) |
18 |
17
|
eqcomd |
|- ( ph -> ( Y o. X ) = ( G o. F ) ) |
19 |
|
foeq1 |
|- ( ( Y o. X ) = ( G o. F ) -> ( ( Y o. X ) : P -onto-> D <-> ( G o. F ) : P -onto-> D ) ) |
20 |
18 19
|
syl |
|- ( ph -> ( ( Y o. X ) : P -onto-> D <-> ( G o. F ) : P -onto-> D ) ) |
21 |
7 20
|
mpbird |
|- ( ph -> ( Y o. X ) : P -onto-> D ) |
22 |
|
foco2 |
|- ( ( Y : E --> D /\ X : P --> E /\ ( Y o. X ) : P -onto-> D ) -> Y : E -onto-> D ) |
23 |
13 16 21 22
|
syl3anc |
|- ( ph -> Y : E -onto-> D ) |