This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The topology induced by a uniform structure generated by a metric D is generated by that metric's open balls. (Contributed by Thierry Arnoux, 6-Dec-2017) (Revised by Thierry Arnoux, 11-Mar-2018)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | psmetutop | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( unifTop ` ( metUnif ` D ) ) = ( topGen ` ran ( ball ` D ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | metuust | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( metUnif ` D ) e. ( UnifOn ` X ) ) |
|
| 2 | utopval | |- ( ( metUnif ` D ) e. ( UnifOn ` X ) -> ( unifTop ` ( metUnif ` D ) ) = { a e. ~P X | A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a } ) |
|
| 3 | 1 2 | syl | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( unifTop ` ( metUnif ` D ) ) = { a e. ~P X | A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a } ) |
| 4 | 3 | eleq2d | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( a e. ( unifTop ` ( metUnif ` D ) ) <-> a e. { a e. ~P X | A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a } ) ) |
| 5 | rabid | |- ( a e. { a e. ~P X | A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a } <-> ( a e. ~P X /\ A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) |
|
| 6 | 4 5 | bitrdi | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( a e. ( unifTop ` ( metUnif ` D ) ) <-> ( a e. ~P X /\ A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) ) |
| 7 | 6 | biimpa | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> ( a e. ~P X /\ A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) |
| 8 | 7 | simpld | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> a e. ~P X ) |
| 9 | 8 | elpwid | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> a C_ X ) |
| 10 | unirnblps | |- ( D e. ( PsMet ` X ) -> U. ran ( ball ` D ) = X ) |
|
| 11 | 10 | ad2antlr | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> U. ran ( ball ` D ) = X ) |
| 12 | 9 11 | sseqtrrd | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> a C_ U. ran ( ball ` D ) ) |
| 13 | simpr | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> ( v " { x } ) C_ a ) |
|
| 14 | simp-5r | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> D e. ( PsMet ` X ) ) |
|
| 15 | simplr | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> v e. ( metUnif ` D ) ) |
|
| 16 | 9 | ad3antrrr | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> a C_ X ) |
| 17 | simpllr | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> x e. a ) |
|
| 18 | 16 17 | sseldd | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> x e. X ) |
| 19 | metustbl | |- ( ( D e. ( PsMet ` X ) /\ v e. ( metUnif ` D ) /\ x e. X ) -> E. b e. ran ( ball ` D ) ( x e. b /\ b C_ ( v " { x } ) ) ) |
|
| 20 | 14 15 18 19 | syl3anc | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> E. b e. ran ( ball ` D ) ( x e. b /\ b C_ ( v " { x } ) ) ) |
| 21 | sstr | |- ( ( b C_ ( v " { x } ) /\ ( v " { x } ) C_ a ) -> b C_ a ) |
|
| 22 | 21 | expcom | |- ( ( v " { x } ) C_ a -> ( b C_ ( v " { x } ) -> b C_ a ) ) |
| 23 | 22 | anim2d | |- ( ( v " { x } ) C_ a -> ( ( x e. b /\ b C_ ( v " { x } ) ) -> ( x e. b /\ b C_ a ) ) ) |
| 24 | 23 | reximdv | |- ( ( v " { x } ) C_ a -> ( E. b e. ran ( ball ` D ) ( x e. b /\ b C_ ( v " { x } ) ) -> E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) ) |
| 25 | 13 20 24 | sylc | |- ( ( ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) /\ v e. ( metUnif ` D ) ) /\ ( v " { x } ) C_ a ) -> E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) |
| 26 | 7 | simprd | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) |
| 27 | 26 | r19.21bi | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) -> E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) |
| 28 | 25 27 | r19.29a | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) /\ x e. a ) -> E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) |
| 29 | 28 | ralrimiva | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) |
| 30 | 12 29 | jca | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> ( a C_ U. ran ( ball ` D ) /\ A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) ) |
| 31 | fvex | |- ( ball ` D ) e. _V |
|
| 32 | 31 | rnex | |- ran ( ball ` D ) e. _V |
| 33 | eltg2 | |- ( ran ( ball ` D ) e. _V -> ( a e. ( topGen ` ran ( ball ` D ) ) <-> ( a C_ U. ran ( ball ` D ) /\ A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) ) ) |
|
| 34 | 32 33 | mp1i | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> ( a e. ( topGen ` ran ( ball ` D ) ) <-> ( a C_ U. ran ( ball ` D ) /\ A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) ) ) |
| 35 | 30 34 | mpbird | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( unifTop ` ( metUnif ` D ) ) ) -> a e. ( topGen ` ran ( ball ` D ) ) ) |
| 36 | 32 33 | mp1i | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( a e. ( topGen ` ran ( ball ` D ) ) <-> ( a C_ U. ran ( ball ` D ) /\ A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) ) ) |
| 37 | 36 | biimpa | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> ( a C_ U. ran ( ball ` D ) /\ A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) ) |
| 38 | 37 | simpld | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> a C_ U. ran ( ball ` D ) ) |
| 39 | 10 | ad2antlr | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> U. ran ( ball ` D ) = X ) |
| 40 | 38 39 | sseqtrd | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> a C_ X ) |
| 41 | elpwg | |- ( a e. ( topGen ` ran ( ball ` D ) ) -> ( a e. ~P X <-> a C_ X ) ) |
|
| 42 | 41 | adantl | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> ( a e. ~P X <-> a C_ X ) ) |
| 43 | 40 42 | mpbird | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> a e. ~P X ) |
| 44 | simpllr | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> D e. ( PsMet ` X ) ) |
|
| 45 | 40 | sselda | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> x e. X ) |
| 46 | 37 | simprd | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> A. x e. a E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) |
| 47 | 46 | r19.21bi | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) ) |
| 48 | blssexps | |- ( ( D e. ( PsMet ` X ) /\ x e. X ) -> ( E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) <-> E. d e. RR+ ( x ( ball ` D ) d ) C_ a ) ) |
|
| 49 | 44 45 48 | syl2anc | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> ( E. b e. ran ( ball ` D ) ( x e. b /\ b C_ a ) <-> E. d e. RR+ ( x ( ball ` D ) d ) C_ a ) ) |
| 50 | 47 49 | mpbid | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> E. d e. RR+ ( x ( ball ` D ) d ) C_ a ) |
| 51 | blval2 | |- ( ( D e. ( PsMet ` X ) /\ x e. X /\ d e. RR+ ) -> ( x ( ball ` D ) d ) = ( ( `' D " ( 0 [,) d ) ) " { x } ) ) |
|
| 52 | 51 | 3expa | |- ( ( ( D e. ( PsMet ` X ) /\ x e. X ) /\ d e. RR+ ) -> ( x ( ball ` D ) d ) = ( ( `' D " ( 0 [,) d ) ) " { x } ) ) |
| 53 | 52 | sseq1d | |- ( ( ( D e. ( PsMet ` X ) /\ x e. X ) /\ d e. RR+ ) -> ( ( x ( ball ` D ) d ) C_ a <-> ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) ) |
| 54 | 53 | rexbidva | |- ( ( D e. ( PsMet ` X ) /\ x e. X ) -> ( E. d e. RR+ ( x ( ball ` D ) d ) C_ a <-> E. d e. RR+ ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) ) |
| 55 | 54 | biimpa | |- ( ( ( D e. ( PsMet ` X ) /\ x e. X ) /\ E. d e. RR+ ( x ( ball ` D ) d ) C_ a ) -> E. d e. RR+ ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) |
| 56 | 44 45 50 55 | syl21anc | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> E. d e. RR+ ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) |
| 57 | cnvexg | |- ( D e. ( PsMet ` X ) -> `' D e. _V ) |
|
| 58 | imaexg | |- ( `' D e. _V -> ( `' D " ( 0 [,) d ) ) e. _V ) |
|
| 59 | 57 58 | syl | |- ( D e. ( PsMet ` X ) -> ( `' D " ( 0 [,) d ) ) e. _V ) |
| 60 | 59 | ralrimivw | |- ( D e. ( PsMet ` X ) -> A. d e. RR+ ( `' D " ( 0 [,) d ) ) e. _V ) |
| 61 | eqid | |- ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) = ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) |
|
| 62 | imaeq1 | |- ( v = ( `' D " ( 0 [,) d ) ) -> ( v " { x } ) = ( ( `' D " ( 0 [,) d ) ) " { x } ) ) |
|
| 63 | 62 | sseq1d | |- ( v = ( `' D " ( 0 [,) d ) ) -> ( ( v " { x } ) C_ a <-> ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) ) |
| 64 | 61 63 | rexrnmptw | |- ( A. d e. RR+ ( `' D " ( 0 [,) d ) ) e. _V -> ( E. v e. ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ( v " { x } ) C_ a <-> E. d e. RR+ ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) ) |
| 65 | 44 60 64 | 3syl | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> ( E. v e. ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ( v " { x } ) C_ a <-> E. d e. RR+ ( ( `' D " ( 0 [,) d ) ) " { x } ) C_ a ) ) |
| 66 | 56 65 | mpbird | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> E. v e. ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ( v " { x } ) C_ a ) |
| 67 | oveq2 | |- ( d = e -> ( 0 [,) d ) = ( 0 [,) e ) ) |
|
| 68 | 67 | imaeq2d | |- ( d = e -> ( `' D " ( 0 [,) d ) ) = ( `' D " ( 0 [,) e ) ) ) |
| 69 | 68 | cbvmptv | |- ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) = ( e e. RR+ |-> ( `' D " ( 0 [,) e ) ) ) |
| 70 | 69 | rneqi | |- ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) = ran ( e e. RR+ |-> ( `' D " ( 0 [,) e ) ) ) |
| 71 | 70 | metustfbas | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) e. ( fBas ` ( X X. X ) ) ) |
| 72 | ssfg | |- ( ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) e. ( fBas ` ( X X. X ) ) -> ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) C_ ( ( X X. X ) filGen ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ) ) |
|
| 73 | 71 72 | syl | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) C_ ( ( X X. X ) filGen ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ) ) |
| 74 | metuval | |- ( D e. ( PsMet ` X ) -> ( metUnif ` D ) = ( ( X X. X ) filGen ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ) ) |
|
| 75 | 74 | adantl | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( metUnif ` D ) = ( ( X X. X ) filGen ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ) ) |
| 76 | 73 75 | sseqtrrd | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) C_ ( metUnif ` D ) ) |
| 77 | ssrexv | |- ( ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) C_ ( metUnif ` D ) -> ( E. v e. ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ( v " { x } ) C_ a -> E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) |
|
| 78 | 76 77 | syl | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( E. v e. ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ( v " { x } ) C_ a -> E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) |
| 79 | 78 | ad2antrr | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> ( E. v e. ran ( d e. RR+ |-> ( `' D " ( 0 [,) d ) ) ) ( v " { x } ) C_ a -> E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) |
| 80 | 66 79 | mpd | |- ( ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) /\ x e. a ) -> E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) |
| 81 | 80 | ralrimiva | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) |
| 82 | 43 81 | jca | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> ( a e. ~P X /\ A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) |
| 83 | 6 | biimpar | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ ( a e. ~P X /\ A. x e. a E. v e. ( metUnif ` D ) ( v " { x } ) C_ a ) ) -> a e. ( unifTop ` ( metUnif ` D ) ) ) |
| 84 | 82 83 | syldan | |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ a e. ( topGen ` ran ( ball ` D ) ) ) -> a e. ( unifTop ` ( metUnif ` D ) ) ) |
| 85 | 35 84 | impbida | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( a e. ( unifTop ` ( metUnif ` D ) ) <-> a e. ( topGen ` ran ( ball ` D ) ) ) ) |
| 86 | 85 | eqrdv | |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> ( unifTop ` ( metUnif ` D ) ) = ( topGen ` ran ( ball ` D ) ) ) |