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 = x X , y Y C
mpocurryd.c φ x X y Y C V
mpocurryd.n φ Y
Assertion mpocurryd φ curry F = x X y Y C

Proof

Step Hyp Ref Expression
1 mpocurryd.f F = x X , y Y C
2 mpocurryd.c φ x X y Y C V
3 mpocurryd.n φ Y
4 df-cur curry F = x dom dom F y z | x y F z
5 1 dmmpoga x X y Y C V dom F = X × Y
6 2 5 syl φ dom F = X × Y
7 6 dmeqd φ dom dom F = dom X × Y
8 dmxp Y dom X × Y = X
9 3 8 syl φ dom X × Y = X
10 7 9 eqtrd φ dom dom F = X
11 10 mpteq1d φ x dom dom F y z | x y F z = x X y z | x y F z
12 df-mpt y Y C = y z | y Y z = C
13 1 mpofun Fun F
14 funbrfv2b Fun F x y F z x y dom F F x y = z
15 13 14 mp1i φ x X x y F z x y dom F F x y = z
16 6 adantr φ x X dom F = X × Y
17 16 eleq2d φ x X x y dom F x y X × Y
18 opelxp x y X × Y x X y Y
19 17 18 bitrdi φ x X x y dom F x X y Y
20 19 anbi1d φ x X x y dom F F x y = z x X y Y F x y = z
21 an21 x X y Y F x y = z y Y x X F x y = z
22 ibar x X F x y = z x X F x y = z
23 22 bicomd x X x X F x y = z F x y = z
24 23 adantl φ x X x X F x y = z F x y = z
25 24 adantr φ x X y Y x X F x y = z F x y = z
26 df-ov x F y = F x y
27 nfcv _ a C
28 nfcv _ b C
29 nfcv _ x b
30 nfcsb1v _ x a / x C
31 29 30 nfcsbw _ x b / y a / x C
32 nfcsb1v _ y b / y a / x C
33 csbeq1a x = a C = a / x C
34 csbeq1a y = b a / x C = b / y a / x C
35 33 34 sylan9eq x = a y = b C = b / y a / x C
36 27 28 31 32 35 cbvmpo x X , y Y C = a X , b Y b / y a / x C
37 1 36 eqtri F = a X , b Y b / y a / x C
38 37 a1i φ x X y Y F = a X , b Y b / y a / x C
39 33 eqcomd x = a a / x C = C
40 39 equcoms a = x a / x C = C
41 40 csbeq2dv a = x b / y a / x C = b / y C
42 csbeq1a y = b C = b / y C
43 42 eqcomd y = b b / y C = C
44 43 equcoms b = y b / y C = C
45 41 44 sylan9eq a = x b = y b / y a / x C = C
46 45 adantl φ x X y Y a = x b = y b / y a / x C = C
47 simpr φ x X x X
48 47 adantr φ x X y Y x X
49 simpr φ x X y Y y Y
50 rsp2 x X y Y C V x X y Y C V
51 2 50 syl φ x X y Y C V
52 51 impl φ x X y Y C V
53 38 46 48 49 52 ovmpod φ x X y Y x F y = C
54 26 53 eqtr3id φ x X y Y F x y = C
55 54 eqeq1d φ x X y Y F x y = z C = z
56 eqcom C = z z = C
57 55 56 bitrdi φ x X y Y F x y = z z = C
58 25 57 bitrd φ x X y Y x X F x y = z z = C
59 58 pm5.32da φ x X y Y x X F x y = z y Y z = C
60 21 59 bitrid φ x X x X y Y F x y = z y Y z = C
61 15 20 60 3bitrrd φ x X y Y z = C x y F z
62 61 opabbidv φ x X y z | y Y z = C = y z | x y F z
63 12 62 eqtr2id φ x X y z | x y F z = y Y C
64 63 mpteq2dva φ x X y z | x y F z = x X y Y C
65 11 64 eqtrd φ x dom dom F y z | x y F z = x X y Y C
66 4 65 eqtrid φ curry F = x X y Y C