Metamath Proof Explorer


Theorem curfcl

Description: The curry functor of a functor F : C X. D --> E is a functor curryF ( F ) : C --> ( D --> E ) . (Contributed by Mario Carneiro, 13-Jan-2017)

Ref Expression
Hypotheses curfcl.g G=CDcurryFF
curfcl.q Q=DFuncCatE
curfcl.c φCCat
curfcl.d φDCat
curfcl.f φFC×cDFuncE
Assertion curfcl φGCFuncQ

Proof

Step Hyp Ref Expression
1 curfcl.g G=CDcurryFF
2 curfcl.q Q=DFuncCatE
3 curfcl.c φCCat
4 curfcl.d φDCat
5 curfcl.f φFC×cDFuncE
6 eqid BaseC=BaseC
7 eqid BaseD=BaseD
8 eqid HomD=HomD
9 eqid IdC=IdC
10 eqid HomC=HomC
11 eqid IdD=IdD
12 1 6 3 4 5 7 8 9 10 11 curfval φG=xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz
13 fvex BaseCV
14 13 mptex xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgV
15 13 13 mpoex xBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDzV
16 14 15 op1std G=xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz1stG=xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzg
17 12 16 syl φ1stG=xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzg
18 14 15 op2ndd G=xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz2ndG=xBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz
19 12 18 syl φ2ndG=xBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz
20 17 19 opeq12d φ1stG2ndG=xBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz
21 12 20 eqtr4d φG=1stG2ndG
22 2 fucbas DFuncE=BaseQ
23 eqid DNatE=DNatE
24 2 23 fuchom DNatE=HomQ
25 eqid IdQ=IdQ
26 eqid compC=compC
27 eqid compQ=compQ
28 funcrcl FC×cDFuncEC×cDCatECat
29 5 28 syl φC×cDCatECat
30 29 simprd φECat
31 2 4 30 fuccat φQCat
32 opex yBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgV
33 32 a1i φxBaseCyBaseDx1stFyyBaseD,zBaseDgyHomDzIdCxxy2ndFxzgV
34 3 adantr φxBaseCCCat
35 4 adantr φxBaseCDCat
36 5 adantr φxBaseCFC×cDFuncE
37 simpr φxBaseCxBaseC
38 eqid 1stGx=1stGx
39 1 6 34 35 36 7 37 38 curf1cl φxBaseC1stGxDFuncE
40 33 17 39 fmpt2d φ1stG:BaseCDFuncE
41 eqid xBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz=xBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDz
42 ovex xHomCyV
43 42 mptex gxHomCyzBaseDgxz2ndFyzIdDzV
44 41 43 fnmpoi xBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDzFnBaseC×BaseC
45 19 fneq1d φ2ndGFnBaseC×BaseCxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDzFnBaseC×BaseC
46 44 45 mpbiri φ2ndGFnBaseC×BaseC
47 fvex BaseDV
48 47 mptex zBaseDgxz2ndFyzIdDzV
49 48 a1i φxBaseCyBaseCgxHomCyzBaseDgxz2ndFyzIdDzV
50 19 oveqd φx2ndGy=xxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDzy
51 41 ovmpt4g xBaseCyBaseCgxHomCyzBaseDgxz2ndFyzIdDzVxxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDzy=gxHomCyzBaseDgxz2ndFyzIdDz
52 43 51 mp3an3 xBaseCyBaseCxxBaseC,yBaseCgxHomCyzBaseDgxz2ndFyzIdDzy=gxHomCyzBaseDgxz2ndFyzIdDz
53 50 52 sylan9eq φxBaseCyBaseCx2ndGy=gxHomCyzBaseDgxz2ndFyzIdDz
54 3 ad2antrr φxBaseCyBaseCgxHomCyCCat
55 4 ad2antrr φxBaseCyBaseCgxHomCyDCat
56 5 ad2antrr φxBaseCyBaseCgxHomCyFC×cDFuncE
57 simplrl φxBaseCyBaseCgxHomCyxBaseC
58 simplrr φxBaseCyBaseCgxHomCyyBaseC
59 simpr φxBaseCyBaseCgxHomCygxHomCy
60 eqid x2ndGyg=x2ndGyg
61 1 6 54 55 56 7 10 11 57 58 59 60 23 curf2cl φxBaseCyBaseCgxHomCyx2ndGyg1stGxDNatE1stGy
62 49 53 61 fmpt2d φxBaseCyBaseCx2ndGy:xHomCy1stGxDNatE1stGy
63 eqid C×cD=C×cD
64 63 6 7 xpcbas BaseC×BaseD=BaseC×cD
65 eqid IdC×cD=IdC×cD
66 eqid IdE=IdE
67 relfunc RelC×cDFuncE
68 1st2ndbr RelC×cDFuncEFC×cDFuncE1stFC×cDFuncE2ndF
69 67 5 68 sylancr φ1stFC×cDFuncE2ndF
70 69 ad2antrr φxBaseCyBaseD1stFC×cDFuncE2ndF
71 opelxpi xBaseCyBaseDxyBaseC×BaseD
72 71 adantll φxBaseCyBaseDxyBaseC×BaseD
73 64 65 66 70 72 funcid φxBaseCyBaseDxy2ndFxyIdC×cDxy=IdE1stFxy
74 3 ad2antrr φxBaseCyBaseDCCat
75 4 ad2antrr φxBaseCyBaseDDCat
76 37 adantr φxBaseCyBaseDxBaseC
77 simpr φxBaseCyBaseDyBaseD
78 63 74 75 6 7 9 11 65 76 77 xpcid φxBaseCyBaseDIdC×cDxy=IdCxIdDy
79 78 fveq2d φxBaseCyBaseDxy2ndFxyIdC×cDxy=xy2ndFxyIdCxIdDy
80 df-ov IdCxxy2ndFxyIdDy=xy2ndFxyIdCxIdDy
81 79 80 eqtr4di φxBaseCyBaseDxy2ndFxyIdC×cDxy=IdCxxy2ndFxyIdDy
82 5 ad2antrr φxBaseCyBaseDFC×cDFuncE
83 1 6 74 75 82 7 76 38 77 curf11 φxBaseCyBaseD1st1stGxy=x1stFy
84 df-ov x1stFy=1stFxy
85 83 84 eqtr2di φxBaseCyBaseD1stFxy=1st1stGxy
86 85 fveq2d φxBaseCyBaseDIdE1stFxy=IdE1st1stGxy
87 73 81 86 3eqtr3d φxBaseCyBaseDIdCxxy2ndFxyIdDy=IdE1st1stGxy
88 87 mpteq2dva φxBaseCyBaseDIdCxxy2ndFxyIdDy=yBaseDIdE1st1stGxy
89 30 adantr φxBaseCECat
90 eqid BaseE=BaseE
91 90 66 cidfn ECatIdEFnBaseE
92 89 91 syl φxBaseCIdEFnBaseE
93 dffn2 IdEFnBaseEIdE:BaseEV
94 92 93 sylib φxBaseCIdE:BaseEV
95 relfunc RelDFuncE
96 1st2ndbr RelDFuncE1stGxDFuncE1st1stGxDFuncE2nd1stGx
97 95 39 96 sylancr φxBaseC1st1stGxDFuncE2nd1stGx
98 7 90 97 funcf1 φxBaseC1st1stGx:BaseDBaseE
99 fcompt IdE:BaseEV1st1stGx:BaseDBaseEIdE1st1stGx=yBaseDIdE1st1stGxy
100 94 98 99 syl2anc φxBaseCIdE1st1stGx=yBaseDIdE1st1stGxy
101 88 100 eqtr4d φxBaseCyBaseDIdCxxy2ndFxyIdDy=IdE1st1stGx
102 6 10 9 34 37 catidcl φxBaseCIdCxxHomCx
103 eqid x2ndGxIdCx=x2ndGxIdCx
104 1 6 34 35 36 7 10 11 37 37 102 103 curf2 φxBaseCx2ndGxIdCx=yBaseDIdCxxy2ndFxyIdDy
105 2 25 66 39 fucid φxBaseCIdQ1stGx=IdE1st1stGx
106 101 104 105 3eqtr4d φxBaseCx2ndGxIdCx=IdQ1stGx
107 3 3ad2ant1 φxBaseCyBaseCzBaseCfxHomCygyHomCzCCat
108 107 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDCCat
109 4 3ad2ant1 φxBaseCyBaseCzBaseCfxHomCygyHomCzDCat
110 109 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDDCat
111 5 3ad2ant1 φxBaseCyBaseCzBaseCfxHomCygyHomCzFC×cDFuncE
112 111 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDFC×cDFuncE
113 simp21 φxBaseCyBaseCzBaseCfxHomCygyHomCzxBaseC
114 113 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDxBaseC
115 simpr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDwBaseD
116 1 6 108 110 112 7 114 38 115 curf11 φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGxw=x1stFw
117 df-ov x1stFw=1stFxw
118 116 117 eqtrdi φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGxw=1stFxw
119 simp22 φxBaseCyBaseCzBaseCfxHomCygyHomCzyBaseC
120 119 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDyBaseC
121 eqid 1stGy=1stGy
122 1 6 108 110 112 7 120 121 115 curf11 φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGyw=y1stFw
123 df-ov y1stFw=1stFyw
124 122 123 eqtrdi φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGyw=1stFyw
125 118 124 opeq12d φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGxw1st1stGyw=1stFxw1stFyw
126 simp23 φxBaseCyBaseCzBaseCfxHomCygyHomCzzBaseC
127 126 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDzBaseC
128 eqid 1stGz=1stGz
129 1 6 108 110 112 7 127 128 115 curf11 φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGzw=z1stFw
130 df-ov z1stFw=1stFzw
131 129 130 eqtrdi φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGzw=1stFzw
132 125 131 oveq12d φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1st1stGxw1st1stGywcompE1st1stGzw=1stFxw1stFywcompE1stFzw
133 simp3r φxBaseCyBaseCzBaseCfxHomCygyHomCzgyHomCz
134 133 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgyHomCz
135 eqid y2ndGzg=y2ndGzg
136 1 6 108 110 112 7 10 11 120 127 134 135 115 curf2val φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDy2ndGzgw=gyw2ndFzwIdDw
137 df-ov gyw2ndFzwIdDw=yw2ndFzwgIdDw
138 136 137 eqtrdi φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDy2ndGzgw=yw2ndFzwgIdDw
139 simp3l φxBaseCyBaseCzBaseCfxHomCygyHomCzfxHomCy
140 139 adantr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDfxHomCy
141 eqid x2ndGyf=x2ndGyf
142 1 6 108 110 112 7 10 11 114 120 140 141 115 curf2val φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDx2ndGyfw=fxw2ndFywIdDw
143 df-ov fxw2ndFywIdDw=xw2ndFywfIdDw
144 142 143 eqtrdi φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDx2ndGyfw=xw2ndFywfIdDw
145 132 138 144 oveq123d φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDy2ndGzgw1st1stGxw1st1stGywcompE1st1stGzwx2ndGyfw=yw2ndFzwgIdDw1stFxw1stFywcompE1stFzwxw2ndFywfIdDw
146 eqid HomC×cD=HomC×cD
147 eqid compC×cD=compC×cD
148 eqid compE=compE
149 67 112 68 sylancr φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseD1stFC×cDFuncE2ndF
150 opelxpi xBaseCwBaseDxwBaseC×BaseD
151 113 150 sylan φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDxwBaseC×BaseD
152 opelxpi yBaseCwBaseDywBaseC×BaseD
153 119 152 sylan φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDywBaseC×BaseD
154 opelxpi zBaseCwBaseDzwBaseC×BaseD
155 126 154 sylan φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDzwBaseC×BaseD
156 7 8 11 110 115 catidcl φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDIdDwwHomDw
157 140 156 opelxpd φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDfIdDwxHomCy×wHomDw
158 63 6 7 10 8 114 115 120 115 146 xpchom2 φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDxwHomC×cDyw=xHomCy×wHomDw
159 157 158 eleqtrrd φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDfIdDwxwHomC×cDyw
160 134 156 opelxpd φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgIdDwyHomCz×wHomDw
161 63 6 7 10 8 120 115 127 115 146 xpchom2 φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDywHomC×cDzw=yHomCz×wHomDw
162 160 161 eleqtrrd φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgIdDwywHomC×cDzw
163 64 146 147 148 149 151 153 155 159 162 funcco φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDxw2ndFzwgIdDwxwywcompC×cDzwfIdDw=yw2ndFzwgIdDw1stFxw1stFywcompE1stFzwxw2ndFywfIdDw
164 eqid compD=compD
165 63 6 7 10 8 114 115 120 115 26 164 147 127 115 140 156 134 156 xpcco2 φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgIdDwxwywcompC×cDzwfIdDw=gxycompCzfIdDwwwcompDwIdDw
166 7 8 11 110 115 164 115 156 catlid φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDIdDwwwcompDwIdDw=IdDw
167 166 opeq2d φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgxycompCzfIdDwwwcompDwIdDw=gxycompCzfIdDw
168 165 167 eqtrd φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgIdDwxwywcompC×cDzwfIdDw=gxycompCzfIdDw
169 168 fveq2d φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDxw2ndFzwgIdDwxwywcompC×cDzwfIdDw=xw2ndFzwgxycompCzfIdDw
170 df-ov gxycompCzfxw2ndFzwIdDw=xw2ndFzwgxycompCzfIdDw
171 169 170 eqtr4di φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDxw2ndFzwgIdDwxwywcompC×cDzwfIdDw=gxycompCzfxw2ndFzwIdDw
172 145 163 171 3eqtr2rd φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgxycompCzfxw2ndFzwIdDw=y2ndGzgw1st1stGxw1st1stGywcompE1st1stGzwx2ndGyfw
173 172 mpteq2dva φxBaseCyBaseCzBaseCfxHomCygyHomCzwBaseDgxycompCzfxw2ndFzwIdDw=wBaseDy2ndGzgw1st1stGxw1st1stGywcompE1st1stGzwx2ndGyfw
174 6 10 26 107 113 119 126 139 133 catcocl φxBaseCyBaseCzBaseCfxHomCygyHomCzgxycompCzfxHomCz
175 eqid x2ndGzgxycompCzf=x2ndGzgxycompCzf
176 1 6 107 109 111 7 10 11 113 126 174 175 curf2 φxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndGzgxycompCzf=wBaseDgxycompCzfxw2ndFzwIdDw
177 1 6 107 109 111 7 10 11 113 119 139 141 23 curf2cl φxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndGyf1stGxDNatE1stGy
178 1 6 107 109 111 7 10 11 119 126 133 135 23 curf2cl φxBaseCyBaseCzBaseCfxHomCygyHomCzy2ndGzg1stGyDNatE1stGz
179 2 23 7 148 27 177 178 fucco φxBaseCyBaseCzBaseCfxHomCygyHomCzy2ndGzg1stGx1stGycompQ1stGzx2ndGyf=wBaseDy2ndGzgw1st1stGxw1st1stGywcompE1st1stGzwx2ndGyfw
180 173 176 179 3eqtr4d φxBaseCyBaseCzBaseCfxHomCygyHomCzx2ndGzgxycompCzf=y2ndGzg1stGx1stGycompQ1stGzx2ndGyf
181 6 22 10 24 9 25 26 27 3 31 40 46 62 106 180 isfuncd φ1stGCFuncQ2ndG
182 df-br 1stGCFuncQ2ndG1stG2ndGCFuncQ
183 181 182 sylib φ1stG2ndGCFuncQ
184 21 183 eqeltrd φGCFuncQ