Metamath Proof Explorer


Theorem curf1cl

Description: The partially evaluated curry functor is a functor. (Contributed by Mario Carneiro, 13-Jan-2017)

Ref Expression
Hypotheses curfval.g G=CDcurryFF
curfval.a A=BaseC
curfval.c φCCat
curfval.d φDCat
curfval.f φFC×cDFuncE
curfval.b B=BaseD
curf1.x φXA
curf1.k K=1stGX
Assertion curf1cl φKDFuncE

Proof

Step Hyp Ref Expression
1 curfval.g G=CDcurryFF
2 curfval.a A=BaseC
3 curfval.c φCCat
4 curfval.d φDCat
5 curfval.f φFC×cDFuncE
6 curfval.b B=BaseD
7 curf1.x φXA
8 curf1.k K=1stGX
9 eqid HomD=HomD
10 eqid IdC=IdC
11 1 2 3 4 5 6 7 8 9 10 curf1 φK=yBX1stFyyB,zBgyHomDzIdCXXy2ndFXzg
12 6 fvexi BV
13 12 mptex yBX1stFyV
14 12 12 mpoex yB,zBgyHomDzIdCXXy2ndFXzgV
15 13 14 op1std K=yBX1stFyyB,zBgyHomDzIdCXXy2ndFXzg1stK=yBX1stFy
16 11 15 syl φ1stK=yBX1stFy
17 13 14 op2ndd K=yBX1stFyyB,zBgyHomDzIdCXXy2ndFXzg2ndK=yB,zBgyHomDzIdCXXy2ndFXzg
18 11 17 syl φ2ndK=yB,zBgyHomDzIdCXXy2ndFXzg
19 16 18 opeq12d φ1stK2ndK=yBX1stFyyB,zBgyHomDzIdCXXy2ndFXzg
20 11 19 eqtr4d φK=1stK2ndK
21 eqid BaseE=BaseE
22 eqid HomE=HomE
23 eqid IdD=IdD
24 eqid IdE=IdE
25 eqid compD=compD
26 eqid compE=compE
27 funcrcl FC×cDFuncEC×cDCatECat
28 5 27 syl φC×cDCatECat
29 28 simprd φECat
30 eqid C×cD=C×cD
31 30 2 6 xpcbas A×B=BaseC×cD
32 relfunc RelC×cDFuncE
33 1st2ndbr RelC×cDFuncEFC×cDFuncE1stFC×cDFuncE2ndF
34 32 5 33 sylancr φ1stFC×cDFuncE2ndF
35 31 21 34 funcf1 φ1stF:A×BBaseE
36 35 adantr φyB1stF:A×BBaseE
37 7 adantr φyBXA
38 simpr φyByB
39 36 37 38 fovcdmd φyBX1stFyBaseE
40 16 39 fmpt3d φ1stK:BBaseE
41 eqid yB,zBgyHomDzIdCXXy2ndFXzg=yB,zBgyHomDzIdCXXy2ndFXzg
42 ovex yHomDzV
43 42 mptex gyHomDzIdCXXy2ndFXzgV
44 41 43 fnmpoi yB,zBgyHomDzIdCXXy2ndFXzgFnB×B
45 18 fneq1d φ2ndKFnB×ByB,zBgyHomDzIdCXXy2ndFXzgFnB×B
46 44 45 mpbiri φ2ndKFnB×B
47 18 oveqd φy2ndKz=yyB,zBgyHomDzIdCXXy2ndFXzgz
48 41 ovmpt4g yBzBgyHomDzIdCXXy2ndFXzgVyyB,zBgyHomDzIdCXXy2ndFXzgz=gyHomDzIdCXXy2ndFXzg
49 43 48 mp3an3 yBzByyB,zBgyHomDzIdCXXy2ndFXzgz=gyHomDzIdCXXy2ndFXzg
50 47 49 sylan9eq φyBzBy2ndKz=gyHomDzIdCXXy2ndFXzg
51 eqid HomC×cD=HomC×cD
52 34 ad2antrr φyBzBgyHomDz1stFC×cDFuncE2ndF
53 7 ad2antrr φyBzBgyHomDzXA
54 simplrl φyBzBgyHomDzyB
55 53 54 opelxpd φyBzBgyHomDzXyA×B
56 simplrr φyBzBgyHomDzzB
57 53 56 opelxpd φyBzBgyHomDzXzA×B
58 31 51 22 52 55 57 funcf2 φyBzBgyHomDzXy2ndFXz:XyHomC×cDXz1stFXyHomE1stFXz
59 eqid HomC=HomC
60 30 31 59 9 51 55 57 xpchom φyBzBgyHomDzXyHomC×cDXz=1stXyHomC1stXz×2ndXyHomD2ndXz
61 3 ad2antrr φyBzBgyHomDzCCat
62 4 ad2antrr φyBzBgyHomDzDCat
63 5 ad2antrr φyBzBgyHomDzFC×cDFuncE
64 1 2 61 62 63 6 53 8 54 curf11 φyBzBgyHomDz1stKy=X1stFy
65 df-ov X1stFy=1stFXy
66 64 65 eqtr2di φyBzBgyHomDz1stFXy=1stKy
67 1 2 61 62 63 6 53 8 56 curf11 φyBzBgyHomDz1stKz=X1stFz
68 df-ov X1stFz=1stFXz
69 67 68 eqtr2di φyBzBgyHomDz1stFXz=1stKz
70 66 69 oveq12d φyBzBgyHomDz1stFXyHomE1stFXz=1stKyHomE1stKz
71 60 70 feq23d φyBzBgyHomDzXy2ndFXz:XyHomC×cDXz1stFXyHomE1stFXzXy2ndFXz:1stXyHomC1stXz×2ndXyHomD2ndXz1stKyHomE1stKz
72 58 71 mpbid φyBzBgyHomDzXy2ndFXz:1stXyHomC1stXz×2ndXyHomD2ndXz1stKyHomE1stKz
73 2 59 10 61 53 catidcl φyBzBgyHomDzIdCXXHomCX
74 op1stg XAyB1stXy=X
75 53 54 74 syl2anc φyBzBgyHomDz1stXy=X
76 op1stg XAzB1stXz=X
77 53 56 76 syl2anc φyBzBgyHomDz1stXz=X
78 75 77 oveq12d φyBzBgyHomDz1stXyHomC1stXz=XHomCX
79 73 78 eleqtrrd φyBzBgyHomDzIdCX1stXyHomC1stXz
80 simpr φyBzBgyHomDzgyHomDz
81 op2ndg XAyB2ndXy=y
82 53 54 81 syl2anc φyBzBgyHomDz2ndXy=y
83 op2ndg XAzB2ndXz=z
84 53 56 83 syl2anc φyBzBgyHomDz2ndXz=z
85 82 84 oveq12d φyBzBgyHomDz2ndXyHomD2ndXz=yHomDz
86 80 85 eleqtrrd φyBzBgyHomDzg2ndXyHomD2ndXz
87 72 79 86 fovcdmd φyBzBgyHomDzIdCXXy2ndFXzg1stKyHomE1stKz
88 50 87 fmpt3d φyBzBy2ndKz:yHomDz1stKyHomE1stKz
89 3 adantr φyBCCat
90 4 adantr φyBDCat
91 eqid IdC×cD=IdC×cD
92 30 89 90 2 6 10 23 91 37 38 xpcid φyBIdC×cDXy=IdCXIdDy
93 92 fveq2d φyBXy2ndFXyIdC×cDXy=Xy2ndFXyIdCXIdDy
94 df-ov IdCXXy2ndFXyIdDy=Xy2ndFXyIdCXIdDy
95 93 94 eqtr4di φyBXy2ndFXyIdC×cDXy=IdCXXy2ndFXyIdDy
96 34 adantr φyB1stFC×cDFuncE2ndF
97 opelxpi XAyBXyA×B
98 7 97 sylan φyBXyA×B
99 31 91 24 96 98 funcid φyBXy2ndFXyIdC×cDXy=IdE1stFXy
100 95 99 eqtr3d φyBIdCXXy2ndFXyIdDy=IdE1stFXy
101 5 adantr φyBFC×cDFuncE
102 6 9 23 90 38 catidcl φyBIdDyyHomDy
103 1 2 89 90 101 6 37 8 38 9 10 38 102 curf12 φyBy2ndKyIdDy=IdCXXy2ndFXyIdDy
104 1 2 89 90 101 6 37 8 38 curf11 φyB1stKy=X1stFy
105 104 65 eqtrdi φyB1stKy=1stFXy
106 105 fveq2d φyBIdE1stKy=IdE1stFXy
107 100 103 106 3eqtr4d φyBy2ndKyIdDy=IdE1stKy
108 7 3ad2ant1 φyBzBwBgyHomDzhzHomDwXA
109 simp21 φyBzBwBgyHomDzhzHomDwyB
110 simp22 φyBzBwBgyHomDzhzHomDwzB
111 eqid compC=compC
112 eqid compC×cD=compC×cD
113 simp23 φyBzBwBgyHomDzhzHomDwwB
114 3 3ad2ant1 φyBzBwBgyHomDzhzHomDwCCat
115 2 59 10 114 108 catidcl φyBzBwBgyHomDzhzHomDwIdCXXHomCX
116 simp3l φyBzBwBgyHomDzhzHomDwgyHomDz
117 simp3r φyBzBwBgyHomDzhzHomDwhzHomDw
118 30 2 6 59 9 108 109 108 110 111 25 112 108 113 115 116 115 117 xpcco2 φyBzBwBgyHomDzhzHomDwIdCXhXyXzcompC×cDXwIdCXg=IdCXXXcompCXIdCXhyzcompDwg
119 2 59 10 114 108 111 108 115 catlid φyBzBwBgyHomDzhzHomDwIdCXXXcompCXIdCX=IdCX
120 119 opeq1d φyBzBwBgyHomDzhzHomDwIdCXXXcompCXIdCXhyzcompDwg=IdCXhyzcompDwg
121 118 120 eqtrd φyBzBwBgyHomDzhzHomDwIdCXhXyXzcompC×cDXwIdCXg=IdCXhyzcompDwg
122 121 fveq2d φyBzBwBgyHomDzhzHomDwXy2ndFXwIdCXhXyXzcompC×cDXwIdCXg=Xy2ndFXwIdCXhyzcompDwg
123 df-ov IdCXXy2ndFXwhyzcompDwg=Xy2ndFXwIdCXhyzcompDwg
124 122 123 eqtr4di φyBzBwBgyHomDzhzHomDwXy2ndFXwIdCXhXyXzcompC×cDXwIdCXg=IdCXXy2ndFXwhyzcompDwg
125 34 3ad2ant1 φyBzBwBgyHomDzhzHomDw1stFC×cDFuncE2ndF
126 108 109 opelxpd φyBzBwBgyHomDzhzHomDwXyA×B
127 108 110 opelxpd φyBzBwBgyHomDzhzHomDwXzA×B
128 108 113 opelxpd φyBzBwBgyHomDzhzHomDwXwA×B
129 115 116 opelxpd φyBzBwBgyHomDzhzHomDwIdCXgXHomCX×yHomDz
130 30 2 6 59 9 108 109 108 110 51 xpchom2 φyBzBwBgyHomDzhzHomDwXyHomC×cDXz=XHomCX×yHomDz
131 129 130 eleqtrrd φyBzBwBgyHomDzhzHomDwIdCXgXyHomC×cDXz
132 115 117 opelxpd φyBzBwBgyHomDzhzHomDwIdCXhXHomCX×zHomDw
133 30 2 6 59 9 108 110 108 113 51 xpchom2 φyBzBwBgyHomDzhzHomDwXzHomC×cDXw=XHomCX×zHomDw
134 132 133 eleqtrrd φyBzBwBgyHomDzhzHomDwIdCXhXzHomC×cDXw
135 31 51 112 26 125 126 127 128 131 134 funcco φyBzBwBgyHomDzhzHomDwXy2ndFXwIdCXhXyXzcompC×cDXwIdCXg=Xz2ndFXwIdCXh1stFXy1stFXzcompE1stFXwXy2ndFXzIdCXg
136 124 135 eqtr3d φyBzBwBgyHomDzhzHomDwIdCXXy2ndFXwhyzcompDwg=Xz2ndFXwIdCXh1stFXy1stFXzcompE1stFXwXy2ndFXzIdCXg
137 4 3ad2ant1 φyBzBwBgyHomDzhzHomDwDCat
138 5 3ad2ant1 φyBzBwBgyHomDzhzHomDwFC×cDFuncE
139 6 9 25 137 109 110 113 116 117 catcocl φyBzBwBgyHomDzhzHomDwhyzcompDwgyHomDw
140 1 2 114 137 138 6 108 8 109 9 10 113 139 curf12 φyBzBwBgyHomDzhzHomDwy2ndKwhyzcompDwg=IdCXXy2ndFXwhyzcompDwg
141 1 2 114 137 138 6 108 8 109 curf11 φyBzBwBgyHomDzhzHomDw1stKy=X1stFy
142 141 65 eqtrdi φyBzBwBgyHomDzhzHomDw1stKy=1stFXy
143 1 2 114 137 138 6 108 8 110 curf11 φyBzBwBgyHomDzhzHomDw1stKz=X1stFz
144 143 68 eqtrdi φyBzBwBgyHomDzhzHomDw1stKz=1stFXz
145 142 144 opeq12d φyBzBwBgyHomDzhzHomDw1stKy1stKz=1stFXy1stFXz
146 1 2 114 137 138 6 108 8 113 curf11 φyBzBwBgyHomDzhzHomDw1stKw=X1stFw
147 df-ov X1stFw=1stFXw
148 146 147 eqtrdi φyBzBwBgyHomDzhzHomDw1stKw=1stFXw
149 145 148 oveq12d φyBzBwBgyHomDzhzHomDw1stKy1stKzcompE1stKw=1stFXy1stFXzcompE1stFXw
150 1 2 114 137 138 6 108 8 110 9 10 113 117 curf12 φyBzBwBgyHomDzhzHomDwz2ndKwh=IdCXXz2ndFXwh
151 df-ov IdCXXz2ndFXwh=Xz2ndFXwIdCXh
152 150 151 eqtrdi φyBzBwBgyHomDzhzHomDwz2ndKwh=Xz2ndFXwIdCXh
153 1 2 114 137 138 6 108 8 109 9 10 110 116 curf12 φyBzBwBgyHomDzhzHomDwy2ndKzg=IdCXXy2ndFXzg
154 df-ov IdCXXy2ndFXzg=Xy2ndFXzIdCXg
155 153 154 eqtrdi φyBzBwBgyHomDzhzHomDwy2ndKzg=Xy2ndFXzIdCXg
156 149 152 155 oveq123d φyBzBwBgyHomDzhzHomDwz2ndKwh1stKy1stKzcompE1stKwy2ndKzg=Xz2ndFXwIdCXh1stFXy1stFXzcompE1stFXwXy2ndFXzIdCXg
157 136 140 156 3eqtr4d φyBzBwBgyHomDzhzHomDwy2ndKwhyzcompDwg=z2ndKwh1stKy1stKzcompE1stKwy2ndKzg
158 6 21 9 22 23 24 25 26 4 29 40 46 88 107 157 isfuncd φ1stKDFuncE2ndK
159 df-br 1stKDFuncE2ndK1stK2ndKDFuncE
160 158 159 sylib φ1stK2ndKDFuncE
161 20 160 eqeltrd φKDFuncE