Metamath Proof Explorer


Theorem fuco11b

Description: The object part of the functor composition bifunctor maps two functors to their composition. (Contributed by Zhi Wang, 11-Oct-2025)

Ref Expression
Hypotheses fuco11b.o No typesetting found for |- ( ph -> ( 1st ` ( <. C , D >. o.F E ) ) = O ) with typecode |-
fuco11b.f φ F C Func D
fuco11b.g φ G D Func E
Assertion fuco11b φ G O F = G func F

Proof

Step Hyp Ref Expression
1 fuco11b.o Could not format ( ph -> ( 1st ` ( <. C , D >. o.F E ) ) = O ) : No typesetting found for |- ( ph -> ( 1st ` ( <. C , D >. o.F E ) ) = O ) with typecode |-
2 fuco11b.f φ F C Func D
3 fuco11b.g φ G D Func E
4 relfunc Rel C Func D
5 1st2ndbr Rel C Func D F C Func D 1 st F C Func D 2 nd F
6 4 2 5 sylancr φ 1 st F C Func D 2 nd F
7 6 funcrcl2 φ C Cat
8 relfunc Rel D Func E
9 1st2ndbr Rel D Func E G D Func E 1 st G D Func E 2 nd G
10 8 3 9 sylancr φ 1 st G D Func E 2 nd G
11 10 funcrcl2 φ D Cat
12 10 funcrcl3 φ E Cat
13 eqidd Could not format ( ph -> ( <. C , D >. o.F E ) = ( <. C , D >. o.F E ) ) : No typesetting found for |- ( ph -> ( <. C , D >. o.F E ) = ( <. C , D >. o.F E ) ) with typecode |-
14 7 11 12 13 fucoelvv Could not format ( ph -> ( <. C , D >. o.F E ) e. ( _V X. _V ) ) : No typesetting found for |- ( ph -> ( <. C , D >. o.F E ) e. ( _V X. _V ) ) with typecode |-
15 1st2nd2 Could not format ( ( <. C , D >. o.F E ) e. ( _V X. _V ) -> ( <. C , D >. o.F E ) = <. ( 1st ` ( <. C , D >. o.F E ) ) , ( 2nd ` ( <. C , D >. o.F E ) ) >. ) : No typesetting found for |- ( ( <. C , D >. o.F E ) e. ( _V X. _V ) -> ( <. C , D >. o.F E ) = <. ( 1st ` ( <. C , D >. o.F E ) ) , ( 2nd ` ( <. C , D >. o.F E ) ) >. ) with typecode |-
16 14 15 syl Could not format ( ph -> ( <. C , D >. o.F E ) = <. ( 1st ` ( <. C , D >. o.F E ) ) , ( 2nd ` ( <. C , D >. o.F E ) ) >. ) : No typesetting found for |- ( ph -> ( <. C , D >. o.F E ) = <. ( 1st ` ( <. C , D >. o.F E ) ) , ( 2nd ` ( <. C , D >. o.F E ) ) >. ) with typecode |-
17 eqidd φ D Func E × C Func D = D Func E × C Func D
18 7 11 12 16 17 fuco1 Could not format ( ph -> ( 1st ` ( <. C , D >. o.F E ) ) = ( o.func |` ( ( D Func E ) X. ( C Func D ) ) ) ) : No typesetting found for |- ( ph -> ( 1st ` ( <. C , D >. o.F E ) ) = ( o.func |` ( ( D Func E ) X. ( C Func D ) ) ) ) with typecode |-
19 1 18 eqtr3d φ O = func D Func E × C Func D
20 19 oveqd φ G O F = G func D Func E × C Func D F
21 ovres G D Func E F C Func D G func D Func E × C Func D F = G func F
22 3 2 21 syl2anc φ G func D Func E × C Func D F = G func F
23 20 22 eqtrd φ G O F = G func F