Metamath Proof Explorer


Theorem mpocurryvald

Description: The value of a curried operation given in maps-to notation is a function over the second argument of the original operation. (Contributed by AV, 27-Oct-2019)

Ref Expression
Hypotheses mpocurryd.f 𝐹 = ( 𝑥𝑋 , 𝑦𝑌𝐶 )
mpocurryd.c ( 𝜑 → ∀ 𝑥𝑋𝑦𝑌 𝐶𝑉 )
mpocurryd.n ( 𝜑𝑌 ≠ ∅ )
mpocurryvald.y ( 𝜑𝑌𝑊 )
mpocurryvald.a ( 𝜑𝐴𝑋 )
Assertion mpocurryvald ( 𝜑 → ( curry 𝐹𝐴 ) = ( 𝑦𝑌 𝐴 / 𝑥 𝐶 ) )

Proof

Step Hyp Ref Expression
1 mpocurryd.f 𝐹 = ( 𝑥𝑋 , 𝑦𝑌𝐶 )
2 mpocurryd.c ( 𝜑 → ∀ 𝑥𝑋𝑦𝑌 𝐶𝑉 )
3 mpocurryd.n ( 𝜑𝑌 ≠ ∅ )
4 mpocurryvald.y ( 𝜑𝑌𝑊 )
5 mpocurryvald.a ( 𝜑𝐴𝑋 )
6 1 2 3 mpocurryd ( 𝜑 → curry 𝐹 = ( 𝑥𝑋 ↦ ( 𝑦𝑌𝐶 ) ) )
7 nfcv 𝑎 ( 𝑦𝑌𝐶 )
8 nfcv 𝑥 𝑌
9 nfcsb1v 𝑥 𝑎 / 𝑥 𝐶
10 8 9 nfmpt 𝑥 ( 𝑦𝑌 𝑎 / 𝑥 𝐶 )
11 csbeq1a ( 𝑥 = 𝑎𝐶 = 𝑎 / 𝑥 𝐶 )
12 11 mpteq2dv ( 𝑥 = 𝑎 → ( 𝑦𝑌𝐶 ) = ( 𝑦𝑌 𝑎 / 𝑥 𝐶 ) )
13 7 10 12 cbvmpt ( 𝑥𝑋 ↦ ( 𝑦𝑌𝐶 ) ) = ( 𝑎𝑋 ↦ ( 𝑦𝑌 𝑎 / 𝑥 𝐶 ) )
14 6 13 eqtrdi ( 𝜑 → curry 𝐹 = ( 𝑎𝑋 ↦ ( 𝑦𝑌 𝑎 / 𝑥 𝐶 ) ) )
15 csbeq1 ( 𝑎 = 𝐴 𝑎 / 𝑥 𝐶 = 𝐴 / 𝑥 𝐶 )
16 15 adantl ( ( 𝜑𝑎 = 𝐴 ) → 𝑎 / 𝑥 𝐶 = 𝐴 / 𝑥 𝐶 )
17 16 mpteq2dv ( ( 𝜑𝑎 = 𝐴 ) → ( 𝑦𝑌 𝑎 / 𝑥 𝐶 ) = ( 𝑦𝑌 𝐴 / 𝑥 𝐶 ) )
18 4 mptexd ( 𝜑 → ( 𝑦𝑌 𝐴 / 𝑥 𝐶 ) ∈ V )
19 14 17 5 18 fvmptd ( 𝜑 → ( curry 𝐹𝐴 ) = ( 𝑦𝑌 𝐴 / 𝑥 𝐶 ) )