Metamath Proof Explorer


Theorem fucoppc

Description: The isomorphism from the opposite category of functors to the category of opposite functors. (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
fucoppc.t ⊢ T = CatCat ⁡ U
fucoppc.b ⊢ B = Base T
fucoppc.i ⊢ I = Iso ⁡ T
fucoppc.c ⊢ φ → C ∈ V
fucoppc.d ⊢ φ → D ∈ W
fucoppc.1 ⊢ φ → R ∈ B
fucoppc.2 ⊢ φ → S ∈ B
Assertion fucoppc ⊢ φ → F R I S G

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 fucoppc.t ⊢ T = CatCat ⁡ U
10 fucoppc.b ⊢ B = Base T
11 fucoppc.i ⊢ I = Iso ⁡ T
12 fucoppc.c ⊢ φ → C ∈ V
13 fucoppc.d ⊢ φ → D ∈ W
14 fucoppc.1 ⊢ φ → R ∈ B
15 fucoppc.2 ⊢ φ → S ∈ B
16 3 fucbas ⊢ C Func D = Base Q
17 4 16 oppcbas ⊢ C Func D = Base R
18 5 fucbas ⊢ O Func P = Base S
19 eqid ⊢ Hom ⁡ R = Hom ⁡ R
20 eqid ⊢ O Nat P = O Nat P
21 5 20 fuchom ⊢ O Nat P = Hom ⁡ S
22 eqid ⊢ Id ⁡ R = Id ⁡ R
23 eqid ⊢ Id ⁡ S = Id ⁡ S
24 eqid ⊢ comp ⁡ R = comp ⁡ R
25 eqid ⊢ comp ⁡ S = comp ⁡ S
26 9 10 elbasfv ⊢ R ∈ B → U ∈ V
27 14 26 syl ⊢ φ → U ∈ V
28 9 10 27 catcbas ⊢ φ → B = U ∩ Cat
29 14 28 eleqtrd ⊢ φ → R ∈ U ∩ Cat
30 29 elin2d ⊢ φ → R ∈ Cat
31 15 28 eleqtrd ⊢ φ → S ∈ U ∩ Cat
32 31 elin2d ⊢ φ → S ∈ Cat
33 1 2 12 13 oppff1o Could not format ( ph -> ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-onto-> ( O Func P ) ) : No typesetting found for |- ( ph -> ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-onto-> ( O Func P ) ) with typecode |-
34 7 f1oeq1d Could not format ( ph -> ( F : ( C Func D ) -1-1-onto-> ( O Func P ) <-> ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-onto-> ( O Func P ) ) ) : No typesetting found for |- ( ph -> ( F : ( C Func D ) -1-1-onto-> ( O Func P ) <-> ( oppFunc |` ( C Func D ) ) : ( C Func D ) -1-1-onto-> ( O Func P ) ) ) with typecode |-
35 33 34 mpbird ⊢ φ → F : C Func D ⟶ 1-1 onto O Func P
36 f1of ⊢ F : C Func D ⟶ 1-1 onto O Func P → F : C Func D ⟶ O Func P
37 35 36 syl ⊢ φ → F : C Func D ⟶ O Func P
38 eqid ⊢ x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x = x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x
39 ovex ⊢ y N x ∈ V
40 resiexg ⊢ y N x ∈ V → I ↾ y N x ∈ V
41 39 40 ax-mp ⊢ I ↾ y N x ∈ V
42 38 41 fnmpoi ⊢ x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x Fn C Func D × C Func D
43 8 fneq1d ⊢ φ → G Fn C Func D × C Func D ↔ x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x Fn C Func D × C Func D
44 42 43 mpbiri ⊢ φ → G Fn C Func D × C Func D
45 f1oi ⊢ I ↾ g N f : g N f ⟶ 1-1 onto g N f
46 8 adantr ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → G = x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x
47 simprl ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → f ∈ C Func D
48 simprr ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → g ∈ C Func D
49 46 47 48 opf2fval ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → f G g = I ↾ g N f
50 3 6 fuchom ⊢ N = Hom ⁡ Q
51 50 4 oppchom ⊢ f Hom ⁡ R g = g N f
52 51 a1i ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → f Hom ⁡ R g = g N f
53 7 adantr Could not format ( ( ph /\ ( f e. ( C Func D ) /\ g e. ( C Func D ) ) ) -> F = ( oppFunc |` ( C Func D ) ) ) : No typesetting found for |- ( ( ph /\ ( f e. ( C Func D ) /\ g e. ( C Func D ) ) ) -> F = ( oppFunc |` ( C Func D ) ) ) with typecode |-
54 1 2 6 53 47 48 fucoppclem ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → g N f = F ⁡ f O Nat P F ⁡ g
55 54 eqcomd ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → F ⁡ f O Nat P F ⁡ g = g N f
56 49 52 55 f1oeq123d ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → f G g : f Hom ⁡ R g ⟶ 1-1 onto F ⁡ f O Nat P F ⁡ g ↔ I ↾ g N f : g N f ⟶ 1-1 onto g N f
57 45 56 mpbiri ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → f G g : f Hom ⁡ R g ⟶ 1-1 onto F ⁡ f O Nat P F ⁡ g
58 f1of ⊢ f G g : f Hom ⁡ R g ⟶ 1-1 onto F ⁡ f O Nat P F ⁡ g → f G g : f Hom ⁡ R g ⟶ F ⁡ f O Nat P F ⁡ g
59 57 58 syl ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D → f G g : f Hom ⁡ R g ⟶ F ⁡ f O Nat P F ⁡ g
60 7 adantr Could not format ( ( ph /\ f e. ( C Func D ) ) -> F = ( oppFunc |` ( C Func D ) ) ) : No typesetting found for |- ( ( ph /\ f e. ( C Func D ) ) -> F = ( oppFunc |` ( C Func D ) ) ) with typecode |-
61 8 adantr ⊢ φ ∧ f ∈ C Func D → G = x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x
62 simpr ⊢ φ ∧ f ∈ C Func D → f ∈ C Func D
63 1 2 3 4 5 6 60 61 62 fucoppcid ⊢ φ ∧ f ∈ C Func D → f G f ⁡ Id ⁡ R ⁡ f = Id ⁡ S ⁡ F ⁡ f
64 7 3ad2ant1 Could not format ( ( ph /\ ( f e. ( C Func D ) /\ g e. ( C Func D ) /\ k e. ( C Func D ) ) /\ ( a e. ( f ( Hom ` R ) g ) /\ b e. ( g ( Hom ` R ) k ) ) ) -> F = ( oppFunc |` ( C Func D ) ) ) : No typesetting found for |- ( ( ph /\ ( f e. ( C Func D ) /\ g e. ( C Func D ) /\ k e. ( C Func D ) ) /\ ( a e. ( f ( Hom ` R ) g ) /\ b e. ( g ( Hom ` R ) k ) ) ) -> F = ( oppFunc |` ( C Func D ) ) ) with typecode |-
65 8 3ad2ant1 ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D ∧ k ∈ C Func D ∧ a ∈ f Hom ⁡ R g ∧ b ∈ g Hom ⁡ R k → G = x ∈ C Func D , y ∈ C Func D ⟼ I ↾ y N x
66 simp3l ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D ∧ k ∈ C Func D ∧ a ∈ f Hom ⁡ R g ∧ b ∈ g Hom ⁡ R k → a ∈ f Hom ⁡ R g
67 simp3r ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D ∧ k ∈ C Func D ∧ a ∈ f Hom ⁡ R g ∧ b ∈ g Hom ⁡ R k → b ∈ g Hom ⁡ R k
68 1 2 3 4 5 6 64 65 66 67 fucoppcco ⊢ φ ∧ f ∈ C Func D ∧ g ∈ C Func D ∧ k ∈ C Func D ∧ a ∈ f Hom ⁡ R g ∧ b ∈ g Hom ⁡ R k → f G k ⁡ b f g comp ⁡ R k a = g G k ⁡ b F ⁡ f F ⁡ g comp ⁡ S F ⁡ k f G g ⁡ a
69 17 18 19 21 22 23 24 25 30 32 37 44 59 63 68 isfuncd ⊢ φ → F R Func S G
70 57 ralrimivva ⊢ φ → ∀ f ∈ C Func D ∀ g ∈ C Func D f G g : f Hom ⁡ R g ⟶ 1-1 onto F ⁡ f O Nat P F ⁡ g
71 17 19 21 isffth2 ⊢ F R Full S ∩ R Faith S G ↔ F R Func S G ∧ ∀ f ∈ C Func D ∀ g ∈ C Func D f G g : f Hom ⁡ R g ⟶ 1-1 onto F ⁡ f O Nat P F ⁡ g
72 69 70 71 sylanbrc ⊢ φ → F R Full S ∩ R Faith S G
73 df-br ⊢ F R Full S ∩ R Faith S G ↔ F G ∈ R Full S ∩ R Faith S
74 72 73 sylib ⊢ φ → F G ∈ R Full S ∩ R Faith S
75 69 func1st ⊢ φ → 1 st ⁡ F G = F
76 75 f1oeq1d ⊢ φ → 1 st ⁡ F G : C Func D ⟶ 1-1 onto O Func P ↔ F : C Func D ⟶ 1-1 onto O Func P
77 35 76 mpbird ⊢ φ → 1 st ⁡ F G : C Func D ⟶ 1-1 onto O Func P
78 9 10 17 18 27 14 15 11 catciso ⊢ φ → F G ∈ R I S ↔ F G ∈ R Full S ∩ R Faith S ∧ 1 st ⁡ F G : C Func D ⟶ 1-1 onto O Func P
79 74 77 78 mpbir2and ⊢ φ → F G ∈ R I S
80 df-br ⊢ F R I S G ↔ F G ∈ R I S
81 79 80 sylibr ⊢ φ → F R I S G