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