Metamath Proof Explorer


Theorem uncfval

Description: Value of the uncurry functor, which is the reverse of the curry functor, taking G : C --> ( D --> E ) to uncurryF ( G ) : C X. D --> E . (Contributed by Mario Carneiro, 13-Jan-2017)

Ref Expression
Hypotheses uncfval.g F=⟨“CDE”⟩uncurryFG
uncfval.c φDCat
uncfval.d φECat
uncfval.f φGCFuncDFuncCatE
Assertion uncfval φF=DevalFEfuncGfuncC1stFD⟨,⟩FC2ndFD

Proof

Step Hyp Ref Expression
1 uncfval.g F=⟨“CDE”⟩uncurryFG
2 uncfval.c φDCat
3 uncfval.d φECat
4 uncfval.f φGCFuncDFuncCatE
5 df-uncf uncurryF=cV,fVc1evalFc2funcffuncc01stFc1⟨,⟩Fc02ndFc1
6 5 a1i φuncurryF=cV,fVc1evalFc2funcffuncc01stFc1⟨,⟩Fc02ndFc1
7 simprl φc=⟨“CDE”⟩f=Gc=⟨“CDE”⟩
8 7 fveq1d φc=⟨“CDE”⟩f=Gc1=⟨“CDE”⟩1
9 s3fv1 DCat⟨“CDE”⟩1=D
10 2 9 syl φ⟨“CDE”⟩1=D
11 10 adantr φc=⟨“CDE”⟩f=G⟨“CDE”⟩1=D
12 8 11 eqtrd φc=⟨“CDE”⟩f=Gc1=D
13 7 fveq1d φc=⟨“CDE”⟩f=Gc2=⟨“CDE”⟩2
14 s3fv2 ECat⟨“CDE”⟩2=E
15 3 14 syl φ⟨“CDE”⟩2=E
16 15 adantr φc=⟨“CDE”⟩f=G⟨“CDE”⟩2=E
17 13 16 eqtrd φc=⟨“CDE”⟩f=Gc2=E
18 12 17 oveq12d φc=⟨“CDE”⟩f=Gc1evalFc2=DevalFE
19 simprr φc=⟨“CDE”⟩f=Gf=G
20 7 fveq1d φc=⟨“CDE”⟩f=Gc0=⟨“CDE”⟩0
21 funcrcl GCFuncDFuncCatECCatDFuncCatECat
22 4 21 syl φCCatDFuncCatECat
23 22 simpld φCCat
24 s3fv0 CCat⟨“CDE”⟩0=C
25 23 24 syl φ⟨“CDE”⟩0=C
26 25 adantr φc=⟨“CDE”⟩f=G⟨“CDE”⟩0=C
27 20 26 eqtrd φc=⟨“CDE”⟩f=Gc0=C
28 27 12 oveq12d φc=⟨“CDE”⟩f=Gc01stFc1=C1stFD
29 19 28 oveq12d φc=⟨“CDE”⟩f=Gffuncc01stFc1=GfuncC1stFD
30 27 12 oveq12d φc=⟨“CDE”⟩f=Gc02ndFc1=C2ndFD
31 29 30 oveq12d φc=⟨“CDE”⟩f=Gffuncc01stFc1⟨,⟩Fc02ndFc1=GfuncC1stFD⟨,⟩FC2ndFD
32 18 31 oveq12d φc=⟨“CDE”⟩f=Gc1evalFc2funcffuncc01stFc1⟨,⟩Fc02ndFc1=DevalFEfuncGfuncC1stFD⟨,⟩FC2ndFD
33 s3cli ⟨“CDE”⟩WordV
34 elex ⟨“CDE”⟩WordV⟨“CDE”⟩V
35 33 34 mp1i φ⟨“CDE”⟩V
36 4 elexd φGV
37 ovexd φDevalFEfuncGfuncC1stFD⟨,⟩FC2ndFDV
38 6 32 35 36 37 ovmpod φ⟨“CDE”⟩uncurryFG=DevalFEfuncGfuncC1stFD⟨,⟩FC2ndFD
39 1 38 eqtrid φF=DevalFEfuncGfuncC1stFD⟨,⟩FC2ndFD