| Step |
Hyp |
Ref |
Expression |
| 1 |
|
opelxpi |
|- ( ( x e. A /\ y e. B ) -> <. x , y >. e. ( A X. B ) ) |
| 2 |
|
ffvelcdm |
|- ( ( F : ( A X. B ) --> C /\ <. x , y >. e. ( A X. B ) ) -> ( F ` <. x , y >. ) e. C ) |
| 3 |
1 2
|
sylan2 |
|- ( ( F : ( A X. B ) --> C /\ ( x e. A /\ y e. B ) ) -> ( F ` <. x , y >. ) e. C ) |
| 4 |
3
|
anassrs |
|- ( ( ( F : ( A X. B ) --> C /\ x e. A ) /\ y e. B ) -> ( F ` <. x , y >. ) e. C ) |
| 5 |
4
|
fmpttd |
|- ( ( F : ( A X. B ) --> C /\ x e. A ) -> ( y e. B |-> ( F ` <. x , y >. ) ) : B --> C ) |
| 6 |
5
|
3ad2antl1 |
|- ( ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) /\ x e. A ) -> ( y e. B |-> ( F ` <. x , y >. ) ) : B --> C ) |
| 7 |
|
elmapg |
|- ( ( C e. W /\ B e. ( V \ { (/) } ) ) -> ( ( y e. B |-> ( F ` <. x , y >. ) ) e. ( C ^m B ) <-> ( y e. B |-> ( F ` <. x , y >. ) ) : B --> C ) ) |
| 8 |
7
|
ancoms |
|- ( ( B e. ( V \ { (/) } ) /\ C e. W ) -> ( ( y e. B |-> ( F ` <. x , y >. ) ) e. ( C ^m B ) <-> ( y e. B |-> ( F ` <. x , y >. ) ) : B --> C ) ) |
| 9 |
8
|
3adant1 |
|- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) -> ( ( y e. B |-> ( F ` <. x , y >. ) ) e. ( C ^m B ) <-> ( y e. B |-> ( F ` <. x , y >. ) ) : B --> C ) ) |
| 10 |
9
|
adantr |
|- ( ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) /\ x e. A ) -> ( ( y e. B |-> ( F ` <. x , y >. ) ) e. ( C ^m B ) <-> ( y e. B |-> ( F ` <. x , y >. ) ) : B --> C ) ) |
| 11 |
6 10
|
mpbird |
|- ( ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) /\ x e. A ) -> ( y e. B |-> ( F ` <. x , y >. ) ) e. ( C ^m B ) ) |
| 12 |
11
|
fmpttd |
|- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) -> ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) : A --> ( C ^m B ) ) |
| 13 |
|
eldifsni |
|- ( B e. ( V \ { (/) } ) -> B =/= (/) ) |
| 14 |
|
df-cur |
|- curry F = ( x e. dom dom F |-> { <. y , z >. | <. x , y >. F z } ) |
| 15 |
|
fdm |
|- ( F : ( A X. B ) --> C -> dom F = ( A X. B ) ) |
| 16 |
15
|
dmeqd |
|- ( F : ( A X. B ) --> C -> dom dom F = dom ( A X. B ) ) |
| 17 |
|
dmxp |
|- ( B =/= (/) -> dom ( A X. B ) = A ) |
| 18 |
16 17
|
sylan9eq |
|- ( ( F : ( A X. B ) --> C /\ B =/= (/) ) -> dom dom F = A ) |
| 19 |
18
|
mpteq1d |
|- ( ( F : ( A X. B ) --> C /\ B =/= (/) ) -> ( x e. dom dom F |-> { <. y , z >. | <. x , y >. F z } ) = ( x e. A |-> { <. y , z >. | <. x , y >. F z } ) ) |
| 20 |
|
ffun |
|- ( F : ( A X. B ) --> C -> Fun F ) |
| 21 |
|
funbrfv2b |
|- ( Fun F -> ( <. x , y >. F z <-> ( <. x , y >. e. dom F /\ ( F ` <. x , y >. ) = z ) ) ) |
| 22 |
20 21
|
syl |
|- ( F : ( A X. B ) --> C -> ( <. x , y >. F z <-> ( <. x , y >. e. dom F /\ ( F ` <. x , y >. ) = z ) ) ) |
| 23 |
15
|
eleq2d |
|- ( F : ( A X. B ) --> C -> ( <. x , y >. e. dom F <-> <. x , y >. e. ( A X. B ) ) ) |
| 24 |
|
opelxp |
|- ( <. x , y >. e. ( A X. B ) <-> ( x e. A /\ y e. B ) ) |
| 25 |
23 24
|
bitrdi |
|- ( F : ( A X. B ) --> C -> ( <. x , y >. e. dom F <-> ( x e. A /\ y e. B ) ) ) |
| 26 |
25
|
anbi1d |
|- ( F : ( A X. B ) --> C -> ( ( <. x , y >. e. dom F /\ ( F ` <. x , y >. ) = z ) <-> ( ( x e. A /\ y e. B ) /\ ( F ` <. x , y >. ) = z ) ) ) |
| 27 |
22 26
|
bitrd |
|- ( F : ( A X. B ) --> C -> ( <. x , y >. F z <-> ( ( x e. A /\ y e. B ) /\ ( F ` <. x , y >. ) = z ) ) ) |
| 28 |
|
ibar |
|- ( x e. A -> ( ( y e. B /\ z = ( F ` <. x , y >. ) ) <-> ( x e. A /\ ( y e. B /\ z = ( F ` <. x , y >. ) ) ) ) ) |
| 29 |
|
anass |
|- ( ( ( x e. A /\ y e. B ) /\ z = ( F ` <. x , y >. ) ) <-> ( x e. A /\ ( y e. B /\ z = ( F ` <. x , y >. ) ) ) ) |
| 30 |
|
eqcom |
|- ( z = ( F ` <. x , y >. ) <-> ( F ` <. x , y >. ) = z ) |
| 31 |
30
|
anbi2i |
|- ( ( ( x e. A /\ y e. B ) /\ z = ( F ` <. x , y >. ) ) <-> ( ( x e. A /\ y e. B ) /\ ( F ` <. x , y >. ) = z ) ) |
| 32 |
29 31
|
bitr3i |
|- ( ( x e. A /\ ( y e. B /\ z = ( F ` <. x , y >. ) ) ) <-> ( ( x e. A /\ y e. B ) /\ ( F ` <. x , y >. ) = z ) ) |
| 33 |
28 32
|
bitr2di |
|- ( x e. A -> ( ( ( x e. A /\ y e. B ) /\ ( F ` <. x , y >. ) = z ) <-> ( y e. B /\ z = ( F ` <. x , y >. ) ) ) ) |
| 34 |
27 33
|
sylan9bb |
|- ( ( F : ( A X. B ) --> C /\ x e. A ) -> ( <. x , y >. F z <-> ( y e. B /\ z = ( F ` <. x , y >. ) ) ) ) |
| 35 |
34
|
opabbidv |
|- ( ( F : ( A X. B ) --> C /\ x e. A ) -> { <. y , z >. | <. x , y >. F z } = { <. y , z >. | ( y e. B /\ z = ( F ` <. x , y >. ) ) } ) |
| 36 |
|
df-mpt |
|- ( y e. B |-> ( F ` <. x , y >. ) ) = { <. y , z >. | ( y e. B /\ z = ( F ` <. x , y >. ) ) } |
| 37 |
35 36
|
eqtr4di |
|- ( ( F : ( A X. B ) --> C /\ x e. A ) -> { <. y , z >. | <. x , y >. F z } = ( y e. B |-> ( F ` <. x , y >. ) ) ) |
| 38 |
37
|
mpteq2dva |
|- ( F : ( A X. B ) --> C -> ( x e. A |-> { <. y , z >. | <. x , y >. F z } ) = ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) ) |
| 39 |
38
|
adantr |
|- ( ( F : ( A X. B ) --> C /\ B =/= (/) ) -> ( x e. A |-> { <. y , z >. | <. x , y >. F z } ) = ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) ) |
| 40 |
19 39
|
eqtrd |
|- ( ( F : ( A X. B ) --> C /\ B =/= (/) ) -> ( x e. dom dom F |-> { <. y , z >. | <. x , y >. F z } ) = ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) ) |
| 41 |
14 40
|
eqtrid |
|- ( ( F : ( A X. B ) --> C /\ B =/= (/) ) -> curry F = ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) ) |
| 42 |
41
|
feq1d |
|- ( ( F : ( A X. B ) --> C /\ B =/= (/) ) -> ( curry F : A --> ( C ^m B ) <-> ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) : A --> ( C ^m B ) ) ) |
| 43 |
13 42
|
sylan2 |
|- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) ) -> ( curry F : A --> ( C ^m B ) <-> ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) : A --> ( C ^m B ) ) ) |
| 44 |
43
|
3adant3 |
|- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) -> ( curry F : A --> ( C ^m B ) <-> ( x e. A |-> ( y e. B |-> ( F ` <. x , y >. ) ) ) : A --> ( C ^m B ) ) ) |
| 45 |
12 44
|
mpbird |
|- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) -> curry F : A --> ( C ^m B ) ) |