Metamath Proof Explorer


Theorem funcoppc

Description: A functor on categories yields a functor on the opposite categories (in the same direction), see definition 3.41 of Adamek p. 39. (Contributed by Mario Carneiro, 4-Jan-2017)

Ref Expression
Hypotheses funcoppc.o O=oppCatC
funcoppc.p P=oppCatD
funcoppc.f φFCFuncDG
Assertion funcoppc φFOFuncPtposG

Proof

Step Hyp Ref Expression
1 funcoppc.o O=oppCatC
2 funcoppc.p P=oppCatD
3 funcoppc.f φFCFuncDG
4 eqid BaseC=BaseC
5 1 4 oppcbas BaseC=BaseO
6 eqid BaseD=BaseD
7 2 6 oppcbas BaseD=BaseP
8 eqid HomO=HomO
9 eqid HomP=HomP
10 eqid IdO=IdO
11 eqid IdP=IdP
12 eqid compO=compO
13 eqid compP=compP
14 df-br FCFuncDGFGCFuncD
15 3 14 sylib φFGCFuncD
16 funcrcl FGCFuncDCCatDCat
17 15 16 syl φCCatDCat
18 17 simpld φCCat
19 1 oppccat CCatOCat
20 18 19 syl φOCat
21 2 oppccat DCatPCat
22 17 21 simpl2im φPCat
23 4 6 3 funcf1 φF:BaseCBaseD
24 4 3 funcfn2 φGFnBaseC×BaseC
25 tposfn GFnBaseC×BaseCtposGFnBaseC×BaseC
26 24 25 syl φtposGFnBaseC×BaseC
27 eqid HomC=HomC
28 eqid HomD=HomD
29 3 adantr φxBaseCyBaseCFCFuncDG
30 simprr φxBaseCyBaseCyBaseC
31 simprl φxBaseCyBaseCxBaseC
32 4 27 28 29 30 31 funcf2 φxBaseCyBaseCyGx:yHomCxFyHomDFx
33 ovtpos xtposGy=yGx
34 33 feq1i xtposGy:xHomOyFxHomPFyyGx:xHomOyFxHomPFy
35 27 1 oppchom xHomOy=yHomCx
36 28 2 oppchom FxHomPFy=FyHomDFx
37 35 36 feq23i yGx:xHomOyFxHomPFyyGx:yHomCxFyHomDFx
38 34 37 bitri xtposGy:xHomOyFxHomPFyyGx:yHomCxFyHomDFx
39 32 38 sylibr φxBaseCyBaseCxtposGy:xHomOyFxHomPFy
40 eqid IdC=IdC
41 eqid IdD=IdD
42 3 adantr φxBaseCFCFuncDG
43 simpr φxBaseCxBaseC
44 4 40 41 42 43 funcid φxBaseCxGxIdCx=IdDFx
45 ovtpos xtposGx=xGx
46 45 a1i φxBaseCxtposGx=xGx
47 1 40 oppcid CCatIdO=IdC
48 18 47 syl φIdO=IdC
49 48 adantr φxBaseCIdO=IdC
50 49 fveq1d φxBaseCIdOx=IdCx
51 46 50 fveq12d φxBaseCxtposGxIdOx=xGxIdCx
52 2 41 oppcid DCatIdP=IdD
53 17 52 simpl2im φIdP=IdD
54 53 adantr φxBaseCIdP=IdD
55 54 fveq1d φxBaseCIdPFx=IdDFx
56 44 51 55 3eqtr4d φxBaseCxtposGxIdOx=IdPFx
57 eqid compC=compC
58 eqid compD=compD
59 3 3ad2ant1 φxBaseCyBaseCzBaseCfxHomOygyHomOzFCFuncDG
60 simp23 φxBaseCyBaseCzBaseCfxHomOygyHomOzzBaseC
61 simp22 φxBaseCyBaseCzBaseCfxHomOygyHomOzyBaseC
62 simp21 φxBaseCyBaseCzBaseCfxHomOygyHomOzxBaseC
63 simp3r φxBaseCyBaseCzBaseCfxHomOygyHomOzgyHomOz
64 27 1 oppchom yHomOz=zHomCy
65 63 64 eleqtrdi φxBaseCyBaseCzBaseCfxHomOygyHomOzgzHomCy
66 simp3l φxBaseCyBaseCzBaseCfxHomOygyHomOzfxHomOy
67 66 35 eleqtrdi φxBaseCyBaseCzBaseCfxHomOygyHomOzfyHomCx
68 4 27 57 58 59 60 61 62 65 67 funcco φxBaseCyBaseCzBaseCfxHomOygyHomOzzGxfzycompCxg=yGxfFzFycompDFxzGyg
69 4 57 1 62 61 60 oppcco φxBaseCyBaseCzBaseCfxHomOygyHomOzgxycompOzf=fzycompCxg
70 69 fveq2d φxBaseCyBaseCzBaseCfxHomOygyHomOzzGxgxycompOzf=zGxfzycompCxg
71 23 3ad2ant1 φxBaseCyBaseCzBaseCfxHomOygyHomOzF:BaseCBaseD
72 71 62 ffvelrnd φxBaseCyBaseCzBaseCfxHomOygyHomOzFxBaseD
73 71 61 ffvelrnd φxBaseCyBaseCzBaseCfxHomOygyHomOzFyBaseD
74 71 60 ffvelrnd φxBaseCyBaseCzBaseCfxHomOygyHomOzFzBaseD
75 6 58 2 72 73 74 oppcco φxBaseCyBaseCzBaseCfxHomOygyHomOzzGygFxFycompPFzyGxf=yGxfFzFycompDFxzGyg
76 68 70 75 3eqtr4d φxBaseCyBaseCzBaseCfxHomOygyHomOzzGxgxycompOzf=zGygFxFycompPFzyGxf
77 ovtpos xtposGz=zGx
78 77 fveq1i xtposGzgxycompOzf=zGxgxycompOzf
79 ovtpos ytposGz=zGy
80 79 fveq1i ytposGzg=zGyg
81 33 fveq1i xtposGyf=yGxf
82 80 81 oveq12i ytposGzgFxFycompPFzxtposGyf=zGygFxFycompPFzyGxf
83 76 78 82 3eqtr4g φxBaseCyBaseCzBaseCfxHomOygyHomOzxtposGzgxycompOzf=ytposGzgFxFycompPFzxtposGyf
84 5 7 8 9 10 11 12 13 20 22 23 26 39 56 83 isfuncd φFOFuncPtposG