Metamath Proof Explorer


Theorem fucoppcid

Description: The opposite category of functors is compatible with the category of opposite functors in terms of identity morphism. (Contributed by Zhi Wang, 18-Nov-2025)

Ref Expression
Hypotheses fucoppc.o O = oppCat C
fucoppc.p P = oppCat D
fucoppc.q Q = C FuncCat D
fucoppc.r R = oppCat Q
fucoppc.s S = O FuncCat P
fucoppc.n N = C Nat D
fucoppc.f No typesetting found for |- ( ph -> F = ( oppFunc |` ( C Func D ) ) ) with typecode |-
fucoppc.g φ G = x C Func D , y C Func D I y N x
fucoppcid.x φ X C Func D
Assertion fucoppcid φ X G X Id R X = Id S F X

Proof

Step Hyp Ref Expression
1 fucoppc.o O = oppCat C
2 fucoppc.p P = oppCat D
3 fucoppc.q Q = C FuncCat D
4 fucoppc.r R = oppCat Q
5 fucoppc.s S = O FuncCat P
6 fucoppc.n N = C Nat D
7 fucoppc.f Could not format ( ph -> F = ( oppFunc |` ( C Func D ) ) ) : No typesetting found for |- ( ph -> F = ( oppFunc |` ( C Func D ) ) ) with typecode |-
8 fucoppc.g φ G = x C Func D , y C Func D I y N x
9 fucoppcid.x φ X C Func D
10 9 func1st2nd φ 1 st X C Func D 2 nd X
11 10 funcrcl3 φ D Cat
12 eqid Id D = Id D
13 2 12 oppcid D Cat Id P = Id D
14 11 13 syl φ Id P = Id D
15 7 9 opf11 φ 1 st F X = 1 st X
16 14 15 coeq12d φ Id P 1 st F X = Id D 1 st X
17 eqid Id S = Id S
18 eqid Id P = Id P
19 1 2 oppff1 Could not format ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-> ( O Func P ) : No typesetting found for |- ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-> ( O Func P ) with typecode |-
20 f1f Could not format ( ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-> ( O Func P ) -> ( oppFunc |` ( C Func D ) ) : ( C Func D ) --> ( O Func P ) ) : No typesetting found for |- ( ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-> ( O Func P ) -> ( oppFunc |` ( C Func D ) ) : ( C Func D ) --> ( O Func P ) ) with typecode |-
21 19 20 ax-mp Could not format ( oppFunc |` ( C Func D ) ) : ( C Func D ) --> ( O Func P ) : No typesetting found for |- ( oppFunc |` ( C Func D ) ) : ( C Func D ) --> ( O Func P ) with typecode |-
22 7 feq1d Could not format ( ph -> ( F : ( C Func D ) --> ( O Func P ) <-> ( oppFunc |` ( C Func D ) ) : ( C Func D ) --> ( O Func P ) ) ) : No typesetting found for |- ( ph -> ( F : ( C Func D ) --> ( O Func P ) <-> ( oppFunc |` ( C Func D ) ) : ( C Func D ) --> ( O Func P ) ) ) with typecode |-
23 21 22 mpbiri φ F : C Func D O Func P
24 23 9 ffvelcdmd φ F X O Func P
25 5 17 18 24 fucid φ Id S F X = Id P 1 st F X
26 10 funcrcl2 φ C Cat
27 3 26 11 fuccat φ Q Cat
28 eqid Id Q = Id Q
29 4 28 oppcid Q Cat Id R = Id Q
30 27 29 syl φ Id R = Id Q
31 30 fveq1d φ Id R X = Id Q X
32 3 28 12 9 fucid φ Id Q X = Id D 1 st X
33 31 32 eqtrd φ Id R X = Id D 1 st X
34 3 6 12 9 fucidcl φ Id D 1 st X X N X
35 8 9 9 33 34 opf2 φ X G X Id R X = Id D 1 st X
36 16 25 35 3eqtr4rd φ X G X Id R X = Id S F X