Metamath Proof Explorer


Theorem mpocurryd

Description: The currying of an operation given in maps-to notation, splitting the operation (function of two arguments) into a function of the first argument, producing a function over the second argument. (Contributed by AV, 27-Oct-2019)

Ref Expression
Hypotheses mpocurryd.f F=xX,yYC
mpocurryd.c φxXyYCV
mpocurryd.n φY
Assertion mpocurryd φcurryF=xXyYC

Proof

Step Hyp Ref Expression
1 mpocurryd.f F=xX,yYC
2 mpocurryd.c φxXyYCV
3 mpocurryd.n φY
4 df-cur curryF=xdomdomFyz|xyFz
5 1 dmmpoga xXyYCVdomF=X×Y
6 2 5 syl φdomF=X×Y
7 6 dmeqd φdomdomF=domX×Y
8 dmxp YdomX×Y=X
9 3 8 syl φdomX×Y=X
10 7 9 eqtrd φdomdomF=X
11 10 mpteq1d φxdomdomFyz|xyFz=xXyz|xyFz
12 df-mpt yYC=yz|yYz=C
13 1 mpofun FunF
14 funbrfv2b FunFxyFzxydomFFxy=z
15 13 14 mp1i φxXxyFzxydomFFxy=z
16 6 adantr φxXdomF=X×Y
17 16 eleq2d φxXxydomFxyX×Y
18 opelxp xyX×YxXyY
19 17 18 bitrdi φxXxydomFxXyY
20 19 anbi1d φxXxydomFFxy=zxXyYFxy=z
21 an21 xXyYFxy=zyYxXFxy=z
22 ibar xXFxy=zxXFxy=z
23 22 bicomd xXxXFxy=zFxy=z
24 23 adantl φxXxXFxy=zFxy=z
25 24 adantr φxXyYxXFxy=zFxy=z
26 df-ov xFy=Fxy
27 nfcv _aC
28 nfcv _bC
29 nfcv _xb
30 nfcsb1v _xa/xC
31 29 30 nfcsbw _xb/ya/xC
32 nfcsb1v _yb/ya/xC
33 csbeq1a x=aC=a/xC
34 csbeq1a y=ba/xC=b/ya/xC
35 33 34 sylan9eq x=ay=bC=b/ya/xC
36 27 28 31 32 35 cbvmpo xX,yYC=aX,bYb/ya/xC
37 1 36 eqtri F=aX,bYb/ya/xC
38 37 a1i φxXyYF=aX,bYb/ya/xC
39 33 eqcomd x=aa/xC=C
40 39 equcoms a=xa/xC=C
41 40 csbeq2dv a=xb/ya/xC=b/yC
42 csbeq1a y=bC=b/yC
43 42 eqcomd y=bb/yC=C
44 43 equcoms b=yb/yC=C
45 41 44 sylan9eq a=xb=yb/ya/xC=C
46 45 adantl φxXyYa=xb=yb/ya/xC=C
47 simpr φxXxX
48 47 adantr φxXyYxX
49 simpr φxXyYyY
50 rsp2 xXyYCVxXyYCV
51 2 50 syl φxXyYCV
52 51 impl φxXyYCV
53 38 46 48 49 52 ovmpod φxXyYxFy=C
54 26 53 eqtr3id φxXyYFxy=C
55 54 eqeq1d φxXyYFxy=zC=z
56 eqcom C=zz=C
57 55 56 bitrdi φxXyYFxy=zz=C
58 25 57 bitrd φxXyYxXFxy=zz=C
59 58 pm5.32da φxXyYxXFxy=zyYz=C
60 21 59 bitrid φxXxXyYFxy=zyYz=C
61 15 20 60 3bitrrd φxXyYz=CxyFz
62 61 opabbidv φxXyz|yYz=C=yz|xyFz
63 12 62 eqtr2id φxXyz|xyFz=yYC
64 63 mpteq2dva φxXyz|xyFz=xXyYC
65 11 64 eqtrd φxdomdomFyz|xyFz=xXyYC
66 4 65 eqtrid φcurryF=xXyYC