Step |
Hyp |
Ref |
Expression |
1 |
|
xmetf |
|- ( D e. ( *Met ` X ) -> D : ( X X. X ) --> RR* ) |
2 |
|
xmet0 |
|- ( ( D e. ( *Met ` X ) /\ x e. X ) -> ( x D x ) = 0 ) |
3 |
|
3anrot |
|- ( ( z e. X /\ x e. X /\ y e. X ) <-> ( x e. X /\ y e. X /\ z e. X ) ) |
4 |
|
xmettri2 |
|- ( ( D e. ( *Met ` X ) /\ ( z e. X /\ x e. X /\ y e. X ) ) -> ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) |
5 |
3 4
|
sylan2br |
|- ( ( D e. ( *Met ` X ) /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) |
6 |
5
|
3anassrs |
|- ( ( ( ( D e. ( *Met ` X ) /\ x e. X ) /\ y e. X ) /\ z e. X ) -> ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) |
7 |
6
|
ralrimiva |
|- ( ( ( D e. ( *Met ` X ) /\ x e. X ) /\ y e. X ) -> A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) |
8 |
7
|
ralrimiva |
|- ( ( D e. ( *Met ` X ) /\ x e. X ) -> A. y e. X A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) |
9 |
2 8
|
jca |
|- ( ( D e. ( *Met ` X ) /\ x e. X ) -> ( ( x D x ) = 0 /\ A. y e. X A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) |
10 |
9
|
ralrimiva |
|- ( D e. ( *Met ` X ) -> A. x e. X ( ( x D x ) = 0 /\ A. y e. X A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) |
11 |
|
elfvex |
|- ( D e. ( *Met ` X ) -> X e. _V ) |
12 |
|
ispsmet |
|- ( X e. _V -> ( D e. ( PsMet ` X ) <-> ( D : ( X X. X ) --> RR* /\ A. x e. X ( ( x D x ) = 0 /\ A. y e. X A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) ) |
13 |
11 12
|
syl |
|- ( D e. ( *Met ` X ) -> ( D e. ( PsMet ` X ) <-> ( D : ( X X. X ) --> RR* /\ A. x e. X ( ( x D x ) = 0 /\ A. y e. X A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) ) |
14 |
1 10 13
|
mpbir2and |
|- ( D e. ( *Met ` X ) -> D e. ( PsMet ` X ) ) |