Step |
Hyp |
Ref |
Expression |
1 |
|
mopnval.1 |
|- J = ( MetOpen ` D ) |
2 |
1
|
mopnval |
|- ( D e. ( *Met ` X ) -> J = ( topGen ` ran ( ball ` D ) ) ) |
3 |
2
|
eleq2d |
|- ( D e. ( *Met ` X ) -> ( A e. J <-> A e. ( topGen ` ran ( ball ` D ) ) ) ) |
4 |
|
blbas |
|- ( D e. ( *Met ` X ) -> ran ( ball ` D ) e. TopBases ) |
5 |
|
eltg2 |
|- ( ran ( ball ` D ) e. TopBases -> ( A e. ( topGen ` ran ( ball ` D ) ) <-> ( A C_ U. ran ( ball ` D ) /\ A. x e. A E. y e. ran ( ball ` D ) ( x e. y /\ y C_ A ) ) ) ) |
6 |
4 5
|
syl |
|- ( D e. ( *Met ` X ) -> ( A e. ( topGen ` ran ( ball ` D ) ) <-> ( A C_ U. ran ( ball ` D ) /\ A. x e. A E. y e. ran ( ball ` D ) ( x e. y /\ y C_ A ) ) ) ) |
7 |
|
unirnbl |
|- ( D e. ( *Met ` X ) -> U. ran ( ball ` D ) = X ) |
8 |
7
|
sseq2d |
|- ( D e. ( *Met ` X ) -> ( A C_ U. ran ( ball ` D ) <-> A C_ X ) ) |
9 |
8
|
anbi1d |
|- ( D e. ( *Met ` X ) -> ( ( A C_ U. ran ( ball ` D ) /\ A. x e. A E. y e. ran ( ball ` D ) ( x e. y /\ y C_ A ) ) <-> ( A C_ X /\ A. x e. A E. y e. ran ( ball ` D ) ( x e. y /\ y C_ A ) ) ) ) |
10 |
3 6 9
|
3bitrd |
|- ( D e. ( *Met ` X ) -> ( A e. J <-> ( A C_ X /\ A. x e. A E. y e. ran ( ball ` D ) ( x e. y /\ y C_ A ) ) ) ) |