Metamath Proof Explorer


Theorem natoppfb

Description: A natural transformation is natural between opposite functors, and vice versa. (Contributed by Zhi Wang, 18-Nov-2025)

Ref Expression
Hypotheses natoppf.o O = oppCat C
natoppf.p P = oppCat D
natoppf.n N = C Nat D
natoppf.m M = O Nat P
natoppfb.k No typesetting found for |- ( ph -> K = ( oppFunc ` F ) ) with typecode |-
natoppfb.l No typesetting found for |- ( ph -> L = ( oppFunc ` G ) ) with typecode |-
natoppfb.c φ C V
natoppfb.d φ D W
Assertion natoppfb φ F N G = L M K

Proof

Step Hyp Ref Expression
1 natoppf.o O = oppCat C
2 natoppf.p P = oppCat D
3 natoppf.n N = C Nat D
4 natoppf.m M = O Nat P
5 natoppfb.k Could not format ( ph -> K = ( oppFunc ` F ) ) : No typesetting found for |- ( ph -> K = ( oppFunc ` F ) ) with typecode |-
6 natoppfb.l Could not format ( ph -> L = ( oppFunc ` G ) ) : No typesetting found for |- ( ph -> L = ( oppFunc ` G ) ) with typecode |-
7 natoppfb.c φ C V
8 natoppfb.d φ D W
9 5 adantr Could not format ( ( ph /\ x e. ( F N G ) ) -> K = ( oppFunc ` F ) ) : No typesetting found for |- ( ( ph /\ x e. ( F N G ) ) -> K = ( oppFunc ` F ) ) with typecode |-
10 6 adantr Could not format ( ( ph /\ x e. ( F N G ) ) -> L = ( oppFunc ` G ) ) : No typesetting found for |- ( ( ph /\ x e. ( F N G ) ) -> L = ( oppFunc ` G ) ) with typecode |-
11 simpr φ x F N G x F N G
12 1 2 3 4 9 10 11 natoppf2 φ x F N G x L M K
13 eqid oppCat O = oppCat O
14 eqid oppCat P = oppCat P
15 eqid oppCat O Nat oppCat P = oppCat O Nat oppCat P
16 6 adantr Could not format ( ( ph /\ x e. ( L M K ) ) -> L = ( oppFunc ` G ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> L = ( oppFunc ` G ) ) with typecode |-
17 16 fveq2d Could not format ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` L ) = ( oppFunc ` ( oppFunc ` G ) ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` L ) = ( oppFunc ` ( oppFunc ` G ) ) ) with typecode |-
18 4 natrcl x L M K L O Func P K O Func P
19 18 adantl φ x L M K L O Func P K O Func P
20 19 simpld φ x L M K L O Func P
21 16 20 eqeltrrd Could not format ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` G ) e. ( O Func P ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` G ) e. ( O Func P ) ) with typecode |-
22 relfunc Rel O Func P
23 eqid Could not format ( oppFunc ` G ) = ( oppFunc ` G ) : No typesetting found for |- ( oppFunc ` G ) = ( oppFunc ` G ) with typecode |-
24 21 22 23 2oppf Could not format ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` ( oppFunc ` G ) ) = G ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` ( oppFunc ` G ) ) = G ) with typecode |-
25 17 24 eqtr2d Could not format ( ( ph /\ x e. ( L M K ) ) -> G = ( oppFunc ` L ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> G = ( oppFunc ` L ) ) with typecode |-
26 5 adantr Could not format ( ( ph /\ x e. ( L M K ) ) -> K = ( oppFunc ` F ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> K = ( oppFunc ` F ) ) with typecode |-
27 26 fveq2d Could not format ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` K ) = ( oppFunc ` ( oppFunc ` F ) ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` K ) = ( oppFunc ` ( oppFunc ` F ) ) ) with typecode |-
28 19 simprd φ x L M K K O Func P
29 26 28 eqeltrrd Could not format ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` F ) e. ( O Func P ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` F ) e. ( O Func P ) ) with typecode |-
30 eqid Could not format ( oppFunc ` F ) = ( oppFunc ` F ) : No typesetting found for |- ( oppFunc ` F ) = ( oppFunc ` F ) with typecode |-
31 29 22 30 2oppf Could not format ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` ( oppFunc ` F ) ) = F ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> ( oppFunc ` ( oppFunc ` F ) ) = F ) with typecode |-
32 27 31 eqtr2d Could not format ( ( ph /\ x e. ( L M K ) ) -> F = ( oppFunc ` K ) ) : No typesetting found for |- ( ( ph /\ x e. ( L M K ) ) -> F = ( oppFunc ` K ) ) with typecode |-
33 simpr φ x L M K x L M K
34 13 14 4 15 25 32 33 natoppf2 φ x L M K x F oppCat O Nat oppCat P G
35 1 2oppchomf Hom 𝑓 C = Hom 𝑓 oppCat O
36 35 a1i φ x L M K Hom 𝑓 C = Hom 𝑓 oppCat O
37 1 2oppccomf comp 𝑓 C = comp 𝑓 oppCat O
38 37 a1i φ x L M K comp 𝑓 C = comp 𝑓 oppCat O
39 2 2oppchomf Hom 𝑓 D = Hom 𝑓 oppCat P
40 39 a1i φ x L M K Hom 𝑓 D = Hom 𝑓 oppCat P
41 2 2oppccomf comp 𝑓 D = comp 𝑓 oppCat P
42 41 a1i φ x L M K comp 𝑓 D = comp 𝑓 oppCat P
43 7 adantr φ x L M K C V
44 8 adantr φ x L M K D W
45 1 2 43 44 29 funcoppc5 φ x L M K F C Func D
46 45 func1st2nd φ x L M K 1 st F C Func D 2 nd F
47 46 funcrcl2 φ x L M K C Cat
48 1 oppccat C Cat O Cat
49 13 oppccat O Cat oppCat O Cat
50 47 48 49 3syl φ x L M K oppCat O Cat
51 46 funcrcl3 φ x L M K D Cat
52 2 oppccat D Cat P Cat
53 14 oppccat P Cat oppCat P Cat
54 51 52 53 3syl φ x L M K oppCat P Cat
55 36 38 40 42 47 50 51 54 natpropd φ x L M K C Nat D = oppCat O Nat oppCat P
56 3 55 eqtrid φ x L M K N = oppCat O Nat oppCat P
57 56 oveqd φ x L M K F N G = F oppCat O Nat oppCat P G
58 34 57 eleqtrrd φ x L M K x F N G
59 12 58 impbida φ x F N G x L M K
60 59 eqrdv φ F N G = L M K