Metamath Proof Explorer


Theorem idfucl

Description: The identity functor is a functor. Example 3.20(1) of Adamek p. 30. (Contributed by Mario Carneiro, 3-Jan-2017)

Ref Expression
Hypothesis idfucl.i I=idfuncC
Assertion idfucl CCatICFuncC

Proof

Step Hyp Ref Expression
1 idfucl.i I=idfuncC
2 eqid BaseC=BaseC
3 id CCatCCat
4 eqid HomC=HomC
5 1 2 3 4 idfuval CCatI=IBaseCzBaseC×BaseCIHomCz
6 5 fveq2d CCat2ndI=2ndIBaseCzBaseC×BaseCIHomCz
7 fvex BaseCV
8 resiexg BaseCVIBaseCV
9 7 8 ax-mp IBaseCV
10 7 7 xpex BaseC×BaseCV
11 10 mptex zBaseC×BaseCIHomCzV
12 9 11 op2nd 2ndIBaseCzBaseC×BaseCIHomCz=zBaseC×BaseCIHomCz
13 6 12 eqtrdi CCat2ndI=zBaseC×BaseCIHomCz
14 13 opeq2d CCatIBaseC2ndI=IBaseCzBaseC×BaseCIHomCz
15 5 14 eqtr4d CCatI=IBaseC2ndI
16 f1oi IBaseC:BaseC1-1 ontoBaseC
17 f1of IBaseC:BaseC1-1 ontoBaseCIBaseC:BaseCBaseC
18 16 17 mp1i CCatIBaseC:BaseCBaseC
19 f1oi IHomCz:HomCz1-1 ontoHomCz
20 f1of IHomCz:HomCz1-1 ontoHomCzIHomCz:HomCzHomCz
21 19 20 ax-mp IHomCz:HomCzHomCz
22 fvex HomCzV
23 22 22 elmap IHomCzHomCzHomCzIHomCz:HomCzHomCz
24 21 23 mpbir IHomCzHomCzHomCz
25 xp1st zBaseC×BaseC1stzBaseC
26 25 adantl CCatzBaseC×BaseC1stzBaseC
27 fvresi 1stzBaseCIBaseC1stz=1stz
28 26 27 syl CCatzBaseC×BaseCIBaseC1stz=1stz
29 xp2nd zBaseC×BaseC2ndzBaseC
30 29 adantl CCatzBaseC×BaseC2ndzBaseC
31 fvresi 2ndzBaseCIBaseC2ndz=2ndz
32 30 31 syl CCatzBaseC×BaseCIBaseC2ndz=2ndz
33 28 32 oveq12d CCatzBaseC×BaseCIBaseC1stzHomCIBaseC2ndz=1stzHomC2ndz
34 df-ov 1stzHomC2ndz=HomC1stz2ndz
35 33 34 eqtrdi CCatzBaseC×BaseCIBaseC1stzHomCIBaseC2ndz=HomC1stz2ndz
36 1st2nd2 zBaseC×BaseCz=1stz2ndz
37 36 adantl CCatzBaseC×BaseCz=1stz2ndz
38 37 fveq2d CCatzBaseC×BaseCHomCz=HomC1stz2ndz
39 35 38 eqtr4d CCatzBaseC×BaseCIBaseC1stzHomCIBaseC2ndz=HomCz
40 39 oveq1d CCatzBaseC×BaseCIBaseC1stzHomCIBaseC2ndzHomCz=HomCzHomCz
41 24 40 eleqtrrid CCatzBaseC×BaseCIHomCzIBaseC1stzHomCIBaseC2ndzHomCz
42 41 ralrimiva CCatzBaseC×BaseCIHomCzIBaseC1stzHomCIBaseC2ndzHomCz
43 mptelixpg BaseC×BaseCVzBaseC×BaseCIHomCzzBaseC×BaseCIBaseC1stzHomCIBaseC2ndzHomCzzBaseC×BaseCIHomCzIBaseC1stzHomCIBaseC2ndzHomCz
44 10 43 ax-mp zBaseC×BaseCIHomCzzBaseC×BaseCIBaseC1stzHomCIBaseC2ndzHomCzzBaseC×BaseCIHomCzIBaseC1stzHomCIBaseC2ndzHomCz
45 42 44 sylibr CCatzBaseC×BaseCIHomCzzBaseC×BaseCIBaseC1stzHomCIBaseC2ndzHomCz
46 13 45 eqeltrd CCat2ndIzBaseC×BaseCIBaseC1stzHomCIBaseC2ndzHomCz
47 eqid IdC=IdC
48 simpl CCatxBaseCCCat
49 simpr CCatxBaseCxBaseC
50 2 4 47 48 49 catidcl CCatxBaseCIdCxxHomCx
51 fvresi IdCxxHomCxIxHomCxIdCx=IdCx
52 50 51 syl CCatxBaseCIxHomCxIdCx=IdCx
53 1 2 48 4 49 49 idfu2nd CCatxBaseCx2ndIx=IxHomCx
54 53 fveq1d CCatxBaseCx2ndIxIdCx=IxHomCxIdCx
55 fvresi xBaseCIBaseCx=x
56 55 adantl CCatxBaseCIBaseCx=x
57 56 fveq2d CCatxBaseCIdCIBaseCx=IdCx
58 52 54 57 3eqtr4d CCatxBaseCx2ndIxIdCx=IdCIBaseCx
59 eqid compC=compC
60 48 ad2antrr CCatxBaseCyBaseCzBaseCfxHomCygyHomCzCCat
61 49 ad2antrr CCatxBaseCyBaseCzBaseCfxHomCygyHomCzxBaseC
62 simplrl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzyBaseC
63 simplrr CCatxBaseCyBaseCzBaseCfxHomCygyHomCzzBaseC
64 simprl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzfxHomCy
65 simprr CCatxBaseCyBaseCzBaseCfxHomCygyHomCzgyHomCz
66 2 4 59 60 61 62 63 64 65 catcocl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzgxycompCzfxHomCz
67 fvresi gxycompCzfxHomCzIxHomCzgxycompCzf=gxycompCzf
68 66 67 syl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzIxHomCzgxycompCzf=gxycompCzf
69 1 2 60 4 61 63 idfu2nd CCatxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndIz=IxHomCz
70 69 fveq1d CCatxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=IxHomCzgxycompCzf
71 61 55 syl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzIBaseCx=x
72 fvresi yBaseCIBaseCy=y
73 62 72 syl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzIBaseCy=y
74 71 73 opeq12d CCatxBaseCyBaseCzBaseCfxHomCygyHomCzIBaseCxIBaseCy=xy
75 fvresi zBaseCIBaseCz=z
76 63 75 syl CCatxBaseCyBaseCzBaseCfxHomCygyHomCzIBaseCz=z
77 74 76 oveq12d CCatxBaseCyBaseCzBaseCfxHomCygyHomCzIBaseCxIBaseCycompCIBaseCz=xycompCz
78 1 2 60 4 62 63 65 idfu2 CCatxBaseCyBaseCzBaseCfxHomCygyHomCzy2ndIzg=g
79 1 2 60 4 61 62 64 idfu2 CCatxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndIyf=f
80 77 78 79 oveq123d CCatxBaseCyBaseCzBaseCfxHomCygyHomCzy2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf=gxycompCzf
81 68 70 80 3eqtr4d CCatxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=y2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf
82 81 ralrimivva CCatxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=y2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf
83 82 ralrimivva CCatxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=y2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf
84 58 83 jca CCatxBaseCx2ndIxIdCx=IdCIBaseCxyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=y2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf
85 84 ralrimiva CCatxBaseCx2ndIxIdCx=IdCIBaseCxyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=y2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf
86 2 2 4 4 47 47 59 59 3 3 isfunc CCatIBaseCCFuncC2ndIIBaseC:BaseCBaseC2ndIzBaseC×BaseCIBaseC1stzHomCIBaseC2ndzHomCzxBaseCx2ndIxIdCx=IdCIBaseCxyBaseCzBaseCfxHomCygyHomCzx2ndIzgxycompCzf=y2ndIzgIBaseCxIBaseCycompCIBaseCzx2ndIyf
87 18 46 85 86 mpbir3and CCatIBaseCCFuncC2ndI
88 df-br IBaseCCFuncC2ndIIBaseC2ndICFuncC
89 87 88 sylib CCatIBaseC2ndICFuncC
90 15 89 eqeltrd CCatICFuncC