Metamath Proof Explorer


Theorem cofuoppf

Description: Composition of opposite functors. (Contributed by Zhi Wang, 26-Nov-2025)

Ref Expression
Hypotheses cofuoppf.k φ G func F = K
cofuoppf.f φ F C Func D
cofuoppf.g φ G D Func E
Assertion cofuoppf Could not format assertion : No typesetting found for |- ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( oppFunc ` K ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 cofuoppf.k φ G func F = K
2 cofuoppf.f φ F C Func D
3 cofuoppf.g φ G D Func E
4 eqid oppCat C = oppCat C
5 eqid Base C = Base C
6 4 5 oppcbas Base C = Base oppCat C
7 eqid oppCat D = oppCat D
8 2 func1st2nd φ 1 st F C Func D 2 nd F
9 4 7 8 funcoppc φ 1 st F oppCat C Func oppCat D tpos 2 nd F
10 eqid oppCat E = oppCat E
11 3 func1st2nd φ 1 st G D Func E 2 nd G
12 7 10 11 funcoppc φ 1 st G oppCat D Func oppCat E tpos 2 nd G
13 6 9 12 cofuval2 φ 1 st G tpos 2 nd G func 1 st F tpos 2 nd F = 1 st G 1 st F y Base C , x Base C 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x
14 oppfval2 Could not format ( G e. ( D Func E ) -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) : No typesetting found for |- ( G e. ( D Func E ) -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) with typecode |-
15 3 14 syl Could not format ( ph -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) with typecode |-
16 oppfval2 Could not format ( F e. ( C Func D ) -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) : No typesetting found for |- ( F e. ( C Func D ) -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) with typecode |-
17 2 16 syl Could not format ( ph -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) with typecode |-
18 15 17 oveq12d Could not format ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( <. ( 1st ` G ) , tpos ( 2nd ` G ) >. o.func <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) ) : No typesetting found for |- ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( <. ( 1st ` G ) , tpos ( 2nd ` G ) >. o.func <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) ) with typecode |-
19 5 2 3 cofuval φ G func F = 1 st G 1 st F x Base C , y Base C 1 st F x 2 nd G 1 st F y x 2 nd F y
20 1 19 eqtr3d φ K = 1 st G 1 st F x Base C , y Base C 1 st F x 2 nd G 1 st F y x 2 nd F y
21 2 3 cofucl φ G func F C Func E
22 1 21 eqeltrrd φ K C Func E
23 20 22 oppfval3 Could not format ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , tpos ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , tpos ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) ) >. ) with typecode |-
24 ovtpos 1 st F y tpos 2 nd G 1 st F x = 1 st F x 2 nd G 1 st F y
25 ovtpos y tpos 2 nd F x = x 2 nd F y
26 24 25 coeq12i 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x = 1 st F x 2 nd G 1 st F y x 2 nd F y
27 26 eqcomi 1 st F x 2 nd G 1 st F y x 2 nd F y = 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x
28 27 a1i x Base C y Base C 1 st F x 2 nd G 1 st F y x 2 nd F y = 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x
29 28 mpoeq3ia x Base C , y Base C 1 st F x 2 nd G 1 st F y x 2 nd F y = x Base C , y Base C 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x
30 29 tposmpo tpos x Base C , y Base C 1 st F x 2 nd G 1 st F y x 2 nd F y = y Base C , x Base C 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x
31 30 opeq2i 1 st G 1 st F tpos x Base C , y Base C 1 st F x 2 nd G 1 st F y x 2 nd F y = 1 st G 1 st F y Base C , x Base C 1 st F y tpos 2 nd G 1 st F x y tpos 2 nd F x
32 23 31 eqtrdi Could not format ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , ( y e. ( Base ` C ) , x e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` y ) tpos ( 2nd ` G ) ( ( 1st ` F ) ` x ) ) o. ( y tpos ( 2nd ` F ) x ) ) ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , ( y e. ( Base ` C ) , x e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` y ) tpos ( 2nd ` G ) ( ( 1st ` F ) ` x ) ) o. ( y tpos ( 2nd ` F ) x ) ) ) >. ) with typecode |-
33 13 18 32 3eqtr4d Could not format ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( oppFunc ` K ) ) : No typesetting found for |- ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( oppFunc ` K ) ) with typecode |-