| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | ffn 6735 | . . . . . . . . 9
⊢ (𝐹:(𝐴 × 𝐵)⟶𝐶 → 𝐹 Fn (𝐴 × 𝐵)) | 
| 2 | 1 | anim1i 615 | . . . . . . . 8
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅})) → (𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅}))) | 
| 3 | 2 | 3adant3 1132 | . . . . . . 7
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → (𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅}))) | 
| 4 |  | 3anass 1094 | . . . . . . . . . . 11
⊢ ((𝐹 Fn (𝐴 × 𝐵) ∧ 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ↔ (𝐹 Fn (𝐴 × 𝐵) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵))) | 
| 5 |  | curfv 37608 | . . . . . . . . . . 11
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) → ((curry 𝐹‘𝑥)‘𝑦) = (𝑥𝐹𝑦)) | 
| 6 | 4, 5 | sylanbr 582 | . . . . . . . . . 10
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) → ((curry 𝐹‘𝑥)‘𝑦) = (𝑥𝐹𝑦)) | 
| 7 | 6 | an32s 652 | . . . . . . . . 9
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → ((curry 𝐹‘𝑥)‘𝑦) = (𝑥𝐹𝑦)) | 
| 8 | 7 | eqeq1d 2738 | . . . . . . . 8
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ (𝑥𝐹𝑦) = 𝑧)) | 
| 9 |  | eqcom 2743 | . . . . . . . 8
⊢ ((𝑥𝐹𝑦) = 𝑧 ↔ 𝑧 = (𝑥𝐹𝑦)) | 
| 10 | 8, 9 | bitrdi 287 | . . . . . . 7
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑧 = (𝑥𝐹𝑦))) | 
| 11 | 3, 10 | sylan 580 | . . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑧 = (𝑥𝐹𝑦))) | 
| 12 |  | curf 37606 | . . . . . . . . . 10
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → curry 𝐹:𝐴⟶(𝐶 ↑m 𝐵)) | 
| 13 | 12 | ffvelcdmda 7103 | . . . . . . . . 9
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑥 ∈ 𝐴) → (curry 𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵)) | 
| 14 |  | elmapfn 8906 | . . . . . . . . 9
⊢ ((curry
𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵) → (curry 𝐹‘𝑥) Fn 𝐵) | 
| 15 | 13, 14 | syl 17 | . . . . . . . 8
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑥 ∈ 𝐴) → (curry 𝐹‘𝑥) Fn 𝐵) | 
| 16 |  | fnbrfvb 6958 | . . . . . . . 8
⊢ (((curry
𝐹‘𝑥) Fn 𝐵 ∧ 𝑦 ∈ 𝐵) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑦(curry 𝐹‘𝑥)𝑧)) | 
| 17 | 15, 16 | sylan 580 | . . . . . . 7
⊢ ((((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑥 ∈ 𝐴) ∧ 𝑦 ∈ 𝐵) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑦(curry 𝐹‘𝑥)𝑧)) | 
| 18 | 17 | anasss 466 | . . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑦(curry 𝐹‘𝑥)𝑧)) | 
| 19 |  | ibar 528 | . . . . . . 7
⊢ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) → (𝑧 = (𝑥𝐹𝑦) ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) | 
| 20 | 19 | adantl 481 | . . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (𝑧 = (𝑥𝐹𝑦) ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) | 
| 21 | 11, 18, 20 | 3bitr3d 309 | . . . . 5
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (𝑦(curry 𝐹‘𝑥)𝑧 ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) | 
| 22 |  | df-br 5143 | . . . . . . . . . . 11
⊢ (𝑦(curry 𝐹‘𝑥)𝑧 ↔ 〈𝑦, 𝑧〉 ∈ (curry 𝐹‘𝑥)) | 
| 23 |  | elfvdm 6942 | . . . . . . . . . . 11
⊢
(〈𝑦, 𝑧〉 ∈ (curry 𝐹‘𝑥) → 𝑥 ∈ dom curry 𝐹) | 
| 24 | 22, 23 | sylbi 217 | . . . . . . . . . 10
⊢ (𝑦(curry 𝐹‘𝑥)𝑧 → 𝑥 ∈ dom curry 𝐹) | 
| 25 |  | fdm 6744 | . . . . . . . . . . . 12
⊢ (curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) → dom curry 𝐹 = 𝐴) | 
| 26 | 25 | eleq2d 2826 | . . . . . . . . . . 11
⊢ (curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) → (𝑥 ∈ dom curry 𝐹 ↔ 𝑥 ∈ 𝐴)) | 
| 27 | 26 | biimpa 476 | . . . . . . . . . 10
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ dom curry 𝐹) → 𝑥 ∈ 𝐴) | 
| 28 | 24, 27 | sylan2 593 | . . . . . . . . 9
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → 𝑥 ∈ 𝐴) | 
| 29 |  | ffvelcdm 7100 | . . . . . . . . . . . . 13
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ 𝐴) → (curry 𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵)) | 
| 30 |  | elmapi 8890 | . . . . . . . . . . . . 13
⊢ ((curry
𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵) → (curry 𝐹‘𝑥):𝐵⟶𝐶) | 
| 31 |  | fdm 6744 | . . . . . . . . . . . . 13
⊢ ((curry
𝐹‘𝑥):𝐵⟶𝐶 → dom (curry 𝐹‘𝑥) = 𝐵) | 
| 32 | 29, 30, 31 | 3syl 18 | . . . . . . . . . . . 12
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ 𝐴) → dom (curry 𝐹‘𝑥) = 𝐵) | 
| 33 |  | vex 3483 | . . . . . . . . . . . . 13
⊢ 𝑦 ∈ V | 
| 34 |  | vex 3483 | . . . . . . . . . . . . 13
⊢ 𝑧 ∈ V | 
| 35 | 33, 34 | breldm 5918 | . . . . . . . . . . . 12
⊢ (𝑦(curry 𝐹‘𝑥)𝑧 → 𝑦 ∈ dom (curry 𝐹‘𝑥)) | 
| 36 |  | eleq2 2829 | . . . . . . . . . . . . 13
⊢ (dom
(curry 𝐹‘𝑥) = 𝐵 → (𝑦 ∈ dom (curry 𝐹‘𝑥) ↔ 𝑦 ∈ 𝐵)) | 
| 37 | 36 | biimpa 476 | . . . . . . . . . . . 12
⊢ ((dom
(curry 𝐹‘𝑥) = 𝐵 ∧ 𝑦 ∈ dom (curry 𝐹‘𝑥)) → 𝑦 ∈ 𝐵) | 
| 38 | 32, 35, 37 | syl2an 596 | . . . . . . . . . . 11
⊢ (((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ 𝐴) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → 𝑦 ∈ 𝐵) | 
| 39 | 38 | an32s 652 | . . . . . . . . . 10
⊢ (((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) ∧ 𝑥 ∈ 𝐴) → 𝑦 ∈ 𝐵) | 
| 40 | 28, 39 | mpdan 687 | . . . . . . . . 9
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → 𝑦 ∈ 𝐵) | 
| 41 | 28, 40 | jca 511 | . . . . . . . 8
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) | 
| 42 | 12, 41 | sylan 580 | . . . . . . 7
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) | 
| 43 | 42 | stoic1a 1771 | . . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ ¬ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → ¬ 𝑦(curry 𝐹‘𝑥)𝑧) | 
| 44 |  | simpl 482 | . . . . . . . 8
⊢ (((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)) → (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) | 
| 45 | 44 | con3i 154 | . . . . . . 7
⊢ (¬
(𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) → ¬ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))) | 
| 46 | 45 | adantl 481 | . . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ ¬ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → ¬ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))) | 
| 47 | 43, 46 | 2falsed 376 | . . . . 5
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ ¬ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (𝑦(curry 𝐹‘𝑥)𝑧 ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) | 
| 48 | 21, 47 | pm2.61dan 812 | . . . 4
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → (𝑦(curry 𝐹‘𝑥)𝑧 ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) | 
| 49 | 48 | oprabbidv 7500 | . . 3
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → {〈〈𝑥, 𝑦〉, 𝑧〉 ∣ 𝑦(curry 𝐹‘𝑥)𝑧} = {〈〈𝑥, 𝑦〉, 𝑧〉 ∣ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))}) | 
| 50 |  | df-unc 8294 | . . 3
⊢ uncurry
curry 𝐹 =
{〈〈𝑥, 𝑦〉, 𝑧〉 ∣ 𝑦(curry 𝐹‘𝑥)𝑧} | 
| 51 |  | df-mpo 7437 | . . 3
⊢ (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦)) = {〈〈𝑥, 𝑦〉, 𝑧〉 ∣ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))} | 
| 52 | 49, 50, 51 | 3eqtr4g 2801 | . 2
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → uncurry curry 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) | 
| 53 |  | fnov 7565 | . . . 4
⊢ (𝐹 Fn (𝐴 × 𝐵) ↔ 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) | 
| 54 | 1, 53 | sylib 218 | . . 3
⊢ (𝐹:(𝐴 × 𝐵)⟶𝐶 → 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) | 
| 55 | 54 | 3ad2ant1 1133 | . 2
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) | 
| 56 | 52, 55 | eqtr4d 2779 | 1
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → uncurry curry 𝐹 = 𝐹) |