Step |
Hyp |
Ref |
Expression |
1 |
|
isms.j |
|- J = ( TopOpen ` K ) |
2 |
|
isms.x |
|- X = ( Base ` K ) |
3 |
|
isms.d |
|- D = ( ( dist ` K ) |` ( X X. X ) ) |
4 |
1 2 3
|
isxms |
|- ( K e. *MetSp <-> ( K e. TopSp /\ J = ( MetOpen ` D ) ) ) |
5 |
2 1
|
istps |
|- ( K e. TopSp <-> J e. ( TopOn ` X ) ) |
6 |
|
df-mopn |
|- MetOpen = ( x e. U. ran *Met |-> ( topGen ` ran ( ball ` x ) ) ) |
7 |
6
|
dmmptss |
|- dom MetOpen C_ U. ran *Met |
8 |
|
toponmax |
|- ( J e. ( TopOn ` X ) -> X e. J ) |
9 |
8
|
adantl |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> X e. J ) |
10 |
|
simpl |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> J = ( MetOpen ` D ) ) |
11 |
9 10
|
eleqtrd |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> X e. ( MetOpen ` D ) ) |
12 |
|
elfvdm |
|- ( X e. ( MetOpen ` D ) -> D e. dom MetOpen ) |
13 |
11 12
|
syl |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> D e. dom MetOpen ) |
14 |
7 13
|
sselid |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> D e. U. ran *Met ) |
15 |
|
xmetunirn |
|- ( D e. U. ran *Met <-> D e. ( *Met ` dom dom D ) ) |
16 |
14 15
|
sylib |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> D e. ( *Met ` dom dom D ) ) |
17 |
|
eqid |
|- ( MetOpen ` D ) = ( MetOpen ` D ) |
18 |
17
|
mopntopon |
|- ( D e. ( *Met ` dom dom D ) -> ( MetOpen ` D ) e. ( TopOn ` dom dom D ) ) |
19 |
16 18
|
syl |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> ( MetOpen ` D ) e. ( TopOn ` dom dom D ) ) |
20 |
10 19
|
eqeltrd |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> J e. ( TopOn ` dom dom D ) ) |
21 |
|
toponuni |
|- ( J e. ( TopOn ` dom dom D ) -> dom dom D = U. J ) |
22 |
20 21
|
syl |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> dom dom D = U. J ) |
23 |
|
toponuni |
|- ( J e. ( TopOn ` X ) -> X = U. J ) |
24 |
23
|
adantl |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> X = U. J ) |
25 |
22 24
|
eqtr4d |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> dom dom D = X ) |
26 |
25
|
fveq2d |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> ( *Met ` dom dom D ) = ( *Met ` X ) ) |
27 |
16 26
|
eleqtrd |
|- ( ( J = ( MetOpen ` D ) /\ J e. ( TopOn ` X ) ) -> D e. ( *Met ` X ) ) |
28 |
27
|
ex |
|- ( J = ( MetOpen ` D ) -> ( J e. ( TopOn ` X ) -> D e. ( *Met ` X ) ) ) |
29 |
17
|
mopntopon |
|- ( D e. ( *Met ` X ) -> ( MetOpen ` D ) e. ( TopOn ` X ) ) |
30 |
|
eleq1 |
|- ( J = ( MetOpen ` D ) -> ( J e. ( TopOn ` X ) <-> ( MetOpen ` D ) e. ( TopOn ` X ) ) ) |
31 |
29 30
|
syl5ibr |
|- ( J = ( MetOpen ` D ) -> ( D e. ( *Met ` X ) -> J e. ( TopOn ` X ) ) ) |
32 |
28 31
|
impbid |
|- ( J = ( MetOpen ` D ) -> ( J e. ( TopOn ` X ) <-> D e. ( *Met ` X ) ) ) |
33 |
5 32
|
syl5bb |
|- ( J = ( MetOpen ` D ) -> ( K e. TopSp <-> D e. ( *Met ` X ) ) ) |
34 |
33
|
pm5.32ri |
|- ( ( K e. TopSp /\ J = ( MetOpen ` D ) ) <-> ( D e. ( *Met ` X ) /\ J = ( MetOpen ` D ) ) ) |
35 |
4 34
|
bitri |
|- ( K e. *MetSp <-> ( D e. ( *Met ` X ) /\ J = ( MetOpen ` D ) ) ) |