Metamath Proof Explorer


Theorem unccur

Description: Uncurrying of currying. (Contributed by Brendan Leahy, 5-Jun-2021)

Ref Expression
Assertion unccur F:A×BCBVCWuncurrycurryF=F

Proof

Step Hyp Ref Expression
1 ffn F:A×BCFFnA×B
2 1 anim1i F:A×BCBVFFnA×BBV
3 2 3adant3 F:A×BCBVCWFFnA×BBV
4 3anass FFnA×BxAyBFFnA×BxAyB
5 curfv FFnA×BxAyBBVcurryFxy=xFy
6 4 5 sylanbr FFnA×BxAyBBVcurryFxy=xFy
7 6 an32s FFnA×BBVxAyBcurryFxy=xFy
8 7 eqeq1d FFnA×BBVxAyBcurryFxy=zxFy=z
9 eqcom xFy=zz=xFy
10 8 9 bitrdi FFnA×BBVxAyBcurryFxy=zz=xFy
11 3 10 sylan F:A×BCBVCWxAyBcurryFxy=zz=xFy
12 curf F:A×BCBVCWcurryF:ACB
13 12 ffvelcdmda F:A×BCBVCWxAcurryFxCB
14 elmapfn curryFxCBcurryFxFnB
15 13 14 syl F:A×BCBVCWxAcurryFxFnB
16 fnbrfvb curryFxFnByBcurryFxy=zycurryFxz
17 15 16 sylan F:A×BCBVCWxAyBcurryFxy=zycurryFxz
18 17 anasss F:A×BCBVCWxAyBcurryFxy=zycurryFxz
19 ibar xAyBz=xFyxAyBz=xFy
20 19 adantl F:A×BCBVCWxAyBz=xFyxAyBz=xFy
21 11 18 20 3bitr3d F:A×BCBVCWxAyBycurryFxzxAyBz=xFy
22 df-br ycurryFxzyzcurryFx
23 elfvdm yzcurryFxxdomcurryF
24 22 23 sylbi ycurryFxzxdomcurryF
25 fdm curryF:ACBdomcurryF=A
26 25 eleq2d curryF:ACBxdomcurryFxA
27 26 biimpa curryF:ACBxdomcurryFxA
28 24 27 sylan2 curryF:ACBycurryFxzxA
29 ffvelcdm curryF:ACBxAcurryFxCB
30 elmapi curryFxCBcurryFx:BC
31 fdm curryFx:BCdomcurryFx=B
32 29 30 31 3syl curryF:ACBxAdomcurryFx=B
33 vex yV
34 vex zV
35 33 34 breldm ycurryFxzydomcurryFx
36 eleq2 domcurryFx=BydomcurryFxyB
37 36 biimpa domcurryFx=BydomcurryFxyB
38 32 35 37 syl2an curryF:ACBxAycurryFxzyB
39 38 an32s curryF:ACBycurryFxzxAyB
40 28 39 mpdan curryF:ACBycurryFxzyB
41 28 40 jca curryF:ACBycurryFxzxAyB
42 12 41 sylan F:A×BCBVCWycurryFxzxAyB
43 42 stoic1a F:A×BCBVCW¬xAyB¬ycurryFxz
44 simpl xAyBz=xFyxAyB
45 44 con3i ¬xAyB¬xAyBz=xFy
46 45 adantl F:A×BCBVCW¬xAyB¬xAyBz=xFy
47 43 46 2falsed F:A×BCBVCW¬xAyBycurryFxzxAyBz=xFy
48 21 47 pm2.61dan F:A×BCBVCWycurryFxzxAyBz=xFy
49 48 oprabbidv F:A×BCBVCWxyz|ycurryFxz=xyz|xAyBz=xFy
50 df-unc uncurrycurryF=xyz|ycurryFxz
51 df-mpo xA,yBxFy=xyz|xAyBz=xFy
52 49 50 51 3eqtr4g F:A×BCBVCWuncurrycurryF=xA,yBxFy
53 fnov FFnA×BF=xA,yBxFy
54 1 53 sylib F:A×BCF=xA,yBxFy
55 54 3ad2ant1 F:A×BCBVCWF=xA,yBxFy
56 52 55 eqtr4d F:A×BCBVCWuncurrycurryF=F