Step |
Hyp |
Ref |
Expression |
1 |
|
mopnval.1 |
|- J = ( MetOpen ` D ) |
2 |
1
|
elmopn |
|- ( D e. ( *Met ` X ) -> ( A e. J <-> ( A C_ X /\ A. x e. A E. z e. ran ( ball ` D ) ( x e. z /\ z C_ A ) ) ) ) |
3 |
|
ssel2 |
|- ( ( A C_ X /\ x e. A ) -> x e. X ) |
4 |
|
blssex |
|- ( ( D e. ( *Met ` X ) /\ x e. X ) -> ( E. z e. ran ( ball ` D ) ( x e. z /\ z C_ A ) <-> E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) |
5 |
3 4
|
sylan2 |
|- ( ( D e. ( *Met ` X ) /\ ( A C_ X /\ x e. A ) ) -> ( E. z e. ran ( ball ` D ) ( x e. z /\ z C_ A ) <-> E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) |
6 |
5
|
anassrs |
|- ( ( ( D e. ( *Met ` X ) /\ A C_ X ) /\ x e. A ) -> ( E. z e. ran ( ball ` D ) ( x e. z /\ z C_ A ) <-> E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) |
7 |
6
|
ralbidva |
|- ( ( D e. ( *Met ` X ) /\ A C_ X ) -> ( A. x e. A E. z e. ran ( ball ` D ) ( x e. z /\ z C_ A ) <-> A. x e. A E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) |
8 |
7
|
pm5.32da |
|- ( D e. ( *Met ` X ) -> ( ( A C_ X /\ A. x e. A E. z e. ran ( ball ` D ) ( x e. z /\ z C_ A ) ) <-> ( A C_ X /\ A. x e. A E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) ) |
9 |
2 8
|
bitrd |
|- ( D e. ( *Met ` X ) -> ( A e. J <-> ( A C_ X /\ A. x e. A E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) ) |