This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The value of an extended metric is zero iff its arguments are equal. (Contributed by Mario Carneiro, 20-Aug-2015)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | xmeteq0 | |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) -> ( ( A D B ) = 0 <-> A = B ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | elfvdm | |- ( D e. ( *Met ` X ) -> X e. dom *Met ) |
|
| 2 | isxmet | |- ( X e. dom *Met -> ( D e. ( *Met ` X ) <-> ( D : ( X X. X ) --> RR* /\ A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\ A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) ) |
|
| 3 | 1 2 | syl | |- ( D e. ( *Met ` X ) -> ( D e. ( *Met ` X ) <-> ( D : ( X X. X ) --> RR* /\ A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\ A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) ) |
| 4 | 3 | ibi | |- ( D e. ( *Met ` X ) -> ( D : ( X X. X ) --> RR* /\ A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\ A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) |
| 5 | simpl | |- ( ( ( ( x D y ) = 0 <-> x = y ) /\ A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) -> ( ( x D y ) = 0 <-> x = y ) ) |
|
| 6 | 5 | 2ralimi | |- ( A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\ A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) -> A. x e. X A. y e. X ( ( x D y ) = 0 <-> x = y ) ) |
| 7 | 4 6 | simpl2im | |- ( D e. ( *Met ` X ) -> A. x e. X A. y e. X ( ( x D y ) = 0 <-> x = y ) ) |
| 8 | oveq1 | |- ( x = A -> ( x D y ) = ( A D y ) ) |
|
| 9 | 8 | eqeq1d | |- ( x = A -> ( ( x D y ) = 0 <-> ( A D y ) = 0 ) ) |
| 10 | eqeq1 | |- ( x = A -> ( x = y <-> A = y ) ) |
|
| 11 | 9 10 | bibi12d | |- ( x = A -> ( ( ( x D y ) = 0 <-> x = y ) <-> ( ( A D y ) = 0 <-> A = y ) ) ) |
| 12 | oveq2 | |- ( y = B -> ( A D y ) = ( A D B ) ) |
|
| 13 | 12 | eqeq1d | |- ( y = B -> ( ( A D y ) = 0 <-> ( A D B ) = 0 ) ) |
| 14 | eqeq2 | |- ( y = B -> ( A = y <-> A = B ) ) |
|
| 15 | 13 14 | bibi12d | |- ( y = B -> ( ( ( A D y ) = 0 <-> A = y ) <-> ( ( A D B ) = 0 <-> A = B ) ) ) |
| 16 | 11 15 | rspc2v | |- ( ( A e. X /\ B e. X ) -> ( A. x e. X A. y e. X ( ( x D y ) = 0 <-> x = y ) -> ( ( A D B ) = 0 <-> A = B ) ) ) |
| 17 | 7 16 | syl5com | |- ( D e. ( *Met ` X ) -> ( ( A e. X /\ B e. X ) -> ( ( A D B ) = 0 <-> A = B ) ) ) |
| 18 | 17 | 3impib | |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) -> ( ( A D B ) = 0 <-> A = B ) ) |