Step |
Hyp |
Ref |
Expression |
1 |
|
opelxpi |
⊢ ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) → 〈 𝑥 , 𝑦 〉 ∈ ( 𝐴 × 𝐵 ) ) |
2 |
|
ffvelrn |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 〈 𝑥 , 𝑦 〉 ∈ ( 𝐴 × 𝐵 ) ) → ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ∈ 𝐶 ) |
3 |
1 2
|
sylan2 |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ) → ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ∈ 𝐶 ) |
4 |
3
|
anassrs |
⊢ ( ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝑥 ∈ 𝐴 ) ∧ 𝑦 ∈ 𝐵 ) → ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ∈ 𝐶 ) |
5 |
4
|
fmpttd |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝑥 ∈ 𝐴 ) → ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) : 𝐵 ⟶ 𝐶 ) |
6 |
5
|
3ad2antl1 |
⊢ ( ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) ∧ 𝑥 ∈ 𝐴 ) → ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) : 𝐵 ⟶ 𝐶 ) |
7 |
|
elmapg |
⊢ ( ( 𝐶 ∈ 𝑊 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ) → ( ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ∈ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) : 𝐵 ⟶ 𝐶 ) ) |
8 |
7
|
ancoms |
⊢ ( ( 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) → ( ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ∈ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) : 𝐵 ⟶ 𝐶 ) ) |
9 |
8
|
3adant1 |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) → ( ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ∈ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) : 𝐵 ⟶ 𝐶 ) ) |
10 |
9
|
adantr |
⊢ ( ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) ∧ 𝑥 ∈ 𝐴 ) → ( ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ∈ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) : 𝐵 ⟶ 𝐶 ) ) |
11 |
6 10
|
mpbird |
⊢ ( ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) ∧ 𝑥 ∈ 𝐴 ) → ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ∈ ( 𝐶 ↑m 𝐵 ) ) |
12 |
11
|
fmpttd |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) → ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ) |
13 |
|
eldifsni |
⊢ ( 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) → 𝐵 ≠ ∅ ) |
14 |
|
df-cur |
⊢ curry 𝐹 = ( 𝑥 ∈ dom dom 𝐹 ↦ { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } ) |
15 |
|
fdm |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → dom 𝐹 = ( 𝐴 × 𝐵 ) ) |
16 |
15
|
dmeqd |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → dom dom 𝐹 = dom ( 𝐴 × 𝐵 ) ) |
17 |
|
dmxp |
⊢ ( 𝐵 ≠ ∅ → dom ( 𝐴 × 𝐵 ) = 𝐴 ) |
18 |
16 17
|
sylan9eq |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ≠ ∅ ) → dom dom 𝐹 = 𝐴 ) |
19 |
18
|
mpteq1d |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ≠ ∅ ) → ( 𝑥 ∈ dom dom 𝐹 ↦ { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } ) = ( 𝑥 ∈ 𝐴 ↦ { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } ) ) |
20 |
|
ffun |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → Fun 𝐹 ) |
21 |
|
funbrfv2b |
⊢ ( Fun 𝐹 → ( 〈 𝑥 , 𝑦 〉 𝐹 𝑧 ↔ ( 〈 𝑥 , 𝑦 〉 ∈ dom 𝐹 ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ) ) |
22 |
20 21
|
syl |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → ( 〈 𝑥 , 𝑦 〉 𝐹 𝑧 ↔ ( 〈 𝑥 , 𝑦 〉 ∈ dom 𝐹 ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ) ) |
23 |
15
|
eleq2d |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → ( 〈 𝑥 , 𝑦 〉 ∈ dom 𝐹 ↔ 〈 𝑥 , 𝑦 〉 ∈ ( 𝐴 × 𝐵 ) ) ) |
24 |
|
opelxp |
⊢ ( 〈 𝑥 , 𝑦 〉 ∈ ( 𝐴 × 𝐵 ) ↔ ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ) |
25 |
23 24
|
bitrdi |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → ( 〈 𝑥 , 𝑦 〉 ∈ dom 𝐹 ↔ ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ) ) |
26 |
25
|
anbi1d |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → ( ( 〈 𝑥 , 𝑦 〉 ∈ dom 𝐹 ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ↔ ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ) ) |
27 |
22 26
|
bitrd |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → ( 〈 𝑥 , 𝑦 〉 𝐹 𝑧 ↔ ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ) ) |
28 |
|
ibar |
⊢ ( 𝑥 ∈ 𝐴 → ( ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ↔ ( 𝑥 ∈ 𝐴 ∧ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) ) |
29 |
|
anass |
⊢ ( ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ↔ ( 𝑥 ∈ 𝐴 ∧ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
30 |
|
eqcom |
⊢ ( 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ↔ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) |
31 |
30
|
anbi2i |
⊢ ( ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ↔ ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ) |
32 |
29 31
|
bitr3i |
⊢ ( ( 𝑥 ∈ 𝐴 ∧ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ↔ ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ) |
33 |
28 32
|
bitr2di |
⊢ ( 𝑥 ∈ 𝐴 → ( ( ( 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵 ) ∧ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) = 𝑧 ) ↔ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
34 |
27 33
|
sylan9bb |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝑥 ∈ 𝐴 ) → ( 〈 𝑥 , 𝑦 〉 𝐹 𝑧 ↔ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
35 |
34
|
opabbidv |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝑥 ∈ 𝐴 ) → { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } = { 〈 𝑦 , 𝑧 〉 ∣ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) } ) |
36 |
|
df-mpt |
⊢ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) = { 〈 𝑦 , 𝑧 〉 ∣ ( 𝑦 ∈ 𝐵 ∧ 𝑧 = ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) } |
37 |
35 36
|
eqtr4di |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝑥 ∈ 𝐴 ) → { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } = ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) |
38 |
37
|
mpteq2dva |
⊢ ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 → ( 𝑥 ∈ 𝐴 ↦ { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } ) = ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
39 |
38
|
adantr |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ≠ ∅ ) → ( 𝑥 ∈ 𝐴 ↦ { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } ) = ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
40 |
19 39
|
eqtrd |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ≠ ∅ ) → ( 𝑥 ∈ dom dom 𝐹 ↦ { 〈 𝑦 , 𝑧 〉 ∣ 〈 𝑥 , 𝑦 〉 𝐹 𝑧 } ) = ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
41 |
14 40
|
eqtrid |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ≠ ∅ ) → curry 𝐹 = ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) ) |
42 |
41
|
feq1d |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ≠ ∅ ) → ( curry 𝐹 : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ) ) |
43 |
13 42
|
sylan2 |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ) → ( curry 𝐹 : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ) ) |
44 |
43
|
3adant3 |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) → ( curry 𝐹 : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ↔ ( 𝑥 ∈ 𝐴 ↦ ( 𝑦 ∈ 𝐵 ↦ ( 𝐹 ‘ 〈 𝑥 , 𝑦 〉 ) ) ) : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ) ) |
45 |
12 44
|
mpbird |
⊢ ( ( 𝐹 : ( 𝐴 × 𝐵 ) ⟶ 𝐶 ∧ 𝐵 ∈ ( 𝑉 ∖ { ∅ } ) ∧ 𝐶 ∈ 𝑊 ) → curry 𝐹 : 𝐴 ⟶ ( 𝐶 ↑m 𝐵 ) ) |