| Step |
Hyp |
Ref |
Expression |
| 1 |
|
mopnval.1 |
|- J = ( MetOpen ` D ) |
| 2 |
|
fvssunirn |
|- ( *Met ` X ) C_ U. ran *Met |
| 3 |
2
|
sseli |
|- ( D e. ( *Met ` X ) -> D e. U. ran *Met ) |
| 4 |
|
fveq2 |
|- ( d = D -> ( ball ` d ) = ( ball ` D ) ) |
| 5 |
4
|
rneqd |
|- ( d = D -> ran ( ball ` d ) = ran ( ball ` D ) ) |
| 6 |
5
|
fveq2d |
|- ( d = D -> ( topGen ` ran ( ball ` d ) ) = ( topGen ` ran ( ball ` D ) ) ) |
| 7 |
|
df-mopn |
|- MetOpen = ( d e. U. ran *Met |-> ( topGen ` ran ( ball ` d ) ) ) |
| 8 |
|
fvex |
|- ( topGen ` ran ( ball ` D ) ) e. _V |
| 9 |
6 7 8
|
fvmpt |
|- ( D e. U. ran *Met -> ( MetOpen ` D ) = ( topGen ` ran ( ball ` D ) ) ) |
| 10 |
1 9
|
eqtrid |
|- ( D e. U. ran *Met -> J = ( topGen ` ran ( ball ` D ) ) ) |
| 11 |
3 10
|
syl |
|- ( D e. ( *Met ` X ) -> J = ( topGen ` ran ( ball ` D ) ) ) |