Step |
Hyp |
Ref |
Expression |
1 |
|
n0 |
|- ( A =/= (/) <-> E. x x e. A ) |
2 |
|
opelxp |
|- ( <. x , y >. e. ( A X. B ) <-> ( x e. A /\ y e. B ) ) |
3 |
|
fvres |
|- ( <. x , y >. e. ( A X. B ) -> ( ( 2nd |` ( A X. B ) ) ` <. x , y >. ) = ( 2nd ` <. x , y >. ) ) |
4 |
|
vex |
|- x e. _V |
5 |
|
vex |
|- y e. _V |
6 |
4 5
|
op2nd |
|- ( 2nd ` <. x , y >. ) = y |
7 |
3 6
|
eqtr2di |
|- ( <. x , y >. e. ( A X. B ) -> y = ( ( 2nd |` ( A X. B ) ) ` <. x , y >. ) ) |
8 |
|
f2ndres |
|- ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B |
9 |
|
ffn |
|- ( ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B -> ( 2nd |` ( A X. B ) ) Fn ( A X. B ) ) |
10 |
8 9
|
ax-mp |
|- ( 2nd |` ( A X. B ) ) Fn ( A X. B ) |
11 |
|
fnfvelrn |
|- ( ( ( 2nd |` ( A X. B ) ) Fn ( A X. B ) /\ <. x , y >. e. ( A X. B ) ) -> ( ( 2nd |` ( A X. B ) ) ` <. x , y >. ) e. ran ( 2nd |` ( A X. B ) ) ) |
12 |
10 11
|
mpan |
|- ( <. x , y >. e. ( A X. B ) -> ( ( 2nd |` ( A X. B ) ) ` <. x , y >. ) e. ran ( 2nd |` ( A X. B ) ) ) |
13 |
7 12
|
eqeltrd |
|- ( <. x , y >. e. ( A X. B ) -> y e. ran ( 2nd |` ( A X. B ) ) ) |
14 |
2 13
|
sylbir |
|- ( ( x e. A /\ y e. B ) -> y e. ran ( 2nd |` ( A X. B ) ) ) |
15 |
14
|
ex |
|- ( x e. A -> ( y e. B -> y e. ran ( 2nd |` ( A X. B ) ) ) ) |
16 |
15
|
exlimiv |
|- ( E. x x e. A -> ( y e. B -> y e. ran ( 2nd |` ( A X. B ) ) ) ) |
17 |
1 16
|
sylbi |
|- ( A =/= (/) -> ( y e. B -> y e. ran ( 2nd |` ( A X. B ) ) ) ) |
18 |
17
|
ssrdv |
|- ( A =/= (/) -> B C_ ran ( 2nd |` ( A X. B ) ) ) |
19 |
|
frn |
|- ( ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B -> ran ( 2nd |` ( A X. B ) ) C_ B ) |
20 |
8 19
|
ax-mp |
|- ran ( 2nd |` ( A X. B ) ) C_ B |
21 |
18 20
|
jctil |
|- ( A =/= (/) -> ( ran ( 2nd |` ( A X. B ) ) C_ B /\ B C_ ran ( 2nd |` ( A X. B ) ) ) ) |
22 |
|
eqss |
|- ( ran ( 2nd |` ( A X. B ) ) = B <-> ( ran ( 2nd |` ( A X. B ) ) C_ B /\ B C_ ran ( 2nd |` ( A X. B ) ) ) ) |
23 |
21 22
|
sylibr |
|- ( A =/= (/) -> ran ( 2nd |` ( A X. B ) ) = B ) |
24 |
23 8
|
jctil |
|- ( A =/= (/) -> ( ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B /\ ran ( 2nd |` ( A X. B ) ) = B ) ) |
25 |
|
dffo2 |
|- ( ( 2nd |` ( A X. B ) ) : ( A X. B ) -onto-> B <-> ( ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B /\ ran ( 2nd |` ( A X. B ) ) = B ) ) |
26 |
24 25
|
sylibr |
|- ( A =/= (/) -> ( 2nd |` ( A X. B ) ) : ( A X. B ) -onto-> B ) |