Step | Hyp | Ref
| Expression |
1 | | ffn 6600 |
. . . . . . . . 9
⊢ (𝐹:(𝐴 × 𝐵)⟶𝐶 → 𝐹 Fn (𝐴 × 𝐵)) |
2 | 1 | anim1i 615 |
. . . . . . . 8
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅})) → (𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅}))) |
3 | 2 | 3adant3 1131 |
. . . . . . 7
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → (𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅}))) |
4 | | 3anass 1094 |
. . . . . . . . . . 11
⊢ ((𝐹 Fn (𝐴 × 𝐵) ∧ 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ↔ (𝐹 Fn (𝐴 × 𝐵) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵))) |
5 | | curfv 35757 |
. . . . . . . . . . 11
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) → ((curry 𝐹‘𝑥)‘𝑦) = (𝑥𝐹𝑦)) |
6 | 4, 5 | sylanbr 582 |
. . . . . . . . . 10
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) → ((curry 𝐹‘𝑥)‘𝑦) = (𝑥𝐹𝑦)) |
7 | 6 | an32s 649 |
. . . . . . . . 9
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → ((curry 𝐹‘𝑥)‘𝑦) = (𝑥𝐹𝑦)) |
8 | 7 | eqeq1d 2740 |
. . . . . . . 8
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ (𝑥𝐹𝑦) = 𝑧)) |
9 | | eqcom 2745 |
. . . . . . . 8
⊢ ((𝑥𝐹𝑦) = 𝑧 ↔ 𝑧 = (𝑥𝐹𝑦)) |
10 | 8, 9 | bitrdi 287 |
. . . . . . 7
⊢ (((𝐹 Fn (𝐴 × 𝐵) ∧ 𝐵 ∈ (𝑉 ∖ {∅})) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑧 = (𝑥𝐹𝑦))) |
11 | 3, 10 | sylan 580 |
. . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑧 = (𝑥𝐹𝑦))) |
12 | | curf 35755 |
. . . . . . . . . 10
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → curry 𝐹:𝐴⟶(𝐶 ↑m 𝐵)) |
13 | 12 | ffvelrnda 6961 |
. . . . . . . . 9
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑥 ∈ 𝐴) → (curry 𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵)) |
14 | | elmapfn 8653 |
. . . . . . . . 9
⊢ ((curry
𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵) → (curry 𝐹‘𝑥) Fn 𝐵) |
15 | 13, 14 | syl 17 |
. . . . . . . 8
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑥 ∈ 𝐴) → (curry 𝐹‘𝑥) Fn 𝐵) |
16 | | fnbrfvb 6822 |
. . . . . . . 8
⊢ (((curry
𝐹‘𝑥) Fn 𝐵 ∧ 𝑦 ∈ 𝐵) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑦(curry 𝐹‘𝑥)𝑧)) |
17 | 15, 16 | sylan 580 |
. . . . . . 7
⊢ ((((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑥 ∈ 𝐴) ∧ 𝑦 ∈ 𝐵) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑦(curry 𝐹‘𝑥)𝑧)) |
18 | 17 | anasss 467 |
. . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (((curry 𝐹‘𝑥)‘𝑦) = 𝑧 ↔ 𝑦(curry 𝐹‘𝑥)𝑧)) |
19 | | ibar 529 |
. . . . . . 7
⊢ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) → (𝑧 = (𝑥𝐹𝑦) ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) |
20 | 19 | adantl 482 |
. . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (𝑧 = (𝑥𝐹𝑦) ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) |
21 | 11, 18, 20 | 3bitr3d 309 |
. . . . 5
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (𝑦(curry 𝐹‘𝑥)𝑧 ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) |
22 | | df-br 5075 |
. . . . . . . . . . 11
⊢ (𝑦(curry 𝐹‘𝑥)𝑧 ↔ 〈𝑦, 𝑧〉 ∈ (curry 𝐹‘𝑥)) |
23 | | elfvdm 6806 |
. . . . . . . . . . 11
⊢
(〈𝑦, 𝑧〉 ∈ (curry 𝐹‘𝑥) → 𝑥 ∈ dom curry 𝐹) |
24 | 22, 23 | sylbi 216 |
. . . . . . . . . 10
⊢ (𝑦(curry 𝐹‘𝑥)𝑧 → 𝑥 ∈ dom curry 𝐹) |
25 | | fdm 6609 |
. . . . . . . . . . . 12
⊢ (curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) → dom curry 𝐹 = 𝐴) |
26 | 25 | eleq2d 2824 |
. . . . . . . . . . 11
⊢ (curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) → (𝑥 ∈ dom curry 𝐹 ↔ 𝑥 ∈ 𝐴)) |
27 | 26 | biimpa 477 |
. . . . . . . . . 10
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ dom curry 𝐹) → 𝑥 ∈ 𝐴) |
28 | 24, 27 | sylan2 593 |
. . . . . . . . 9
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → 𝑥 ∈ 𝐴) |
29 | | ffvelrn 6959 |
. . . . . . . . . . . . 13
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ 𝐴) → (curry 𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵)) |
30 | | elmapi 8637 |
. . . . . . . . . . . . 13
⊢ ((curry
𝐹‘𝑥) ∈ (𝐶 ↑m 𝐵) → (curry 𝐹‘𝑥):𝐵⟶𝐶) |
31 | | fdm 6609 |
. . . . . . . . . . . . 13
⊢ ((curry
𝐹‘𝑥):𝐵⟶𝐶 → dom (curry 𝐹‘𝑥) = 𝐵) |
32 | 29, 30, 31 | 3syl 18 |
. . . . . . . . . . . 12
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ 𝐴) → dom (curry 𝐹‘𝑥) = 𝐵) |
33 | | vex 3436 |
. . . . . . . . . . . . 13
⊢ 𝑦 ∈ V |
34 | | vex 3436 |
. . . . . . . . . . . . 13
⊢ 𝑧 ∈ V |
35 | 33, 34 | breldm 5817 |
. . . . . . . . . . . 12
⊢ (𝑦(curry 𝐹‘𝑥)𝑧 → 𝑦 ∈ dom (curry 𝐹‘𝑥)) |
36 | | eleq2 2827 |
. . . . . . . . . . . . 13
⊢ (dom
(curry 𝐹‘𝑥) = 𝐵 → (𝑦 ∈ dom (curry 𝐹‘𝑥) ↔ 𝑦 ∈ 𝐵)) |
37 | 36 | biimpa 477 |
. . . . . . . . . . . 12
⊢ ((dom
(curry 𝐹‘𝑥) = 𝐵 ∧ 𝑦 ∈ dom (curry 𝐹‘𝑥)) → 𝑦 ∈ 𝐵) |
38 | 32, 35, 37 | syl2an 596 |
. . . . . . . . . . 11
⊢ (((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑥 ∈ 𝐴) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → 𝑦 ∈ 𝐵) |
39 | 38 | an32s 649 |
. . . . . . . . . 10
⊢ (((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) ∧ 𝑥 ∈ 𝐴) → 𝑦 ∈ 𝐵) |
40 | 28, 39 | mpdan 684 |
. . . . . . . . 9
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → 𝑦 ∈ 𝐵) |
41 | 28, 40 | jca 512 |
. . . . . . . 8
⊢ ((curry
𝐹:𝐴⟶(𝐶 ↑m 𝐵) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) |
42 | 12, 41 | sylan 580 |
. . . . . . 7
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ 𝑦(curry 𝐹‘𝑥)𝑧) → (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) |
43 | 42 | stoic1a 1775 |
. . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ ¬ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → ¬ 𝑦(curry 𝐹‘𝑥)𝑧) |
44 | | simpl 483 |
. . . . . . . 8
⊢ (((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)) → (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) |
45 | 44 | con3i 154 |
. . . . . . 7
⊢ (¬
(𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) → ¬ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))) |
46 | 45 | adantl 482 |
. . . . . 6
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ ¬ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → ¬ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))) |
47 | 43, 46 | 2falsed 377 |
. . . . 5
⊢ (((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) ∧ ¬ (𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵)) → (𝑦(curry 𝐹‘𝑥)𝑧 ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) |
48 | 21, 47 | pm2.61dan 810 |
. . . 4
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → (𝑦(curry 𝐹‘𝑥)𝑧 ↔ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦)))) |
49 | 48 | oprabbidv 7341 |
. . 3
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → {〈〈𝑥, 𝑦〉, 𝑧〉 ∣ 𝑦(curry 𝐹‘𝑥)𝑧} = {〈〈𝑥, 𝑦〉, 𝑧〉 ∣ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))}) |
50 | | df-unc 8084 |
. . 3
⊢ uncurry
curry 𝐹 =
{〈〈𝑥, 𝑦〉, 𝑧〉 ∣ 𝑦(curry 𝐹‘𝑥)𝑧} |
51 | | df-mpo 7280 |
. . 3
⊢ (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦)) = {〈〈𝑥, 𝑦〉, 𝑧〉 ∣ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑧 = (𝑥𝐹𝑦))} |
52 | 49, 50, 51 | 3eqtr4g 2803 |
. 2
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → uncurry curry 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) |
53 | | fnov 7405 |
. . . 4
⊢ (𝐹 Fn (𝐴 × 𝐵) ↔ 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) |
54 | 1, 53 | sylib 217 |
. . 3
⊢ (𝐹:(𝐴 × 𝐵)⟶𝐶 → 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) |
55 | 54 | 3ad2ant1 1132 |
. 2
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → 𝐹 = (𝑥 ∈ 𝐴, 𝑦 ∈ 𝐵 ↦ (𝑥𝐹𝑦))) |
56 | 52, 55 | eqtr4d 2781 |
1
⊢ ((𝐹:(𝐴 × 𝐵)⟶𝐶 ∧ 𝐵 ∈ (𝑉 ∖ {∅}) ∧ 𝐶 ∈ 𝑊) → uncurry curry 𝐹 = 𝐹) |