This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Triangle inequality for the distance function of a pseudometric. (Contributed by Thierry Arnoux, 11-Feb-2018)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | psmettri2 | |- ( ( D e. ( PsMet ` X ) /\ ( C e. X /\ A e. X /\ B e. X ) ) -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | elfvex | |- ( D e. ( PsMet ` X ) -> X e. _V ) |
|
| 2 | ispsmet | |- ( X e. _V -> ( D e. ( PsMet ` X ) <-> ( D : ( X X. X ) --> RR* /\ A. a e. X ( ( a D a ) = 0 /\ A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) ) ) ) |
|
| 3 | 1 2 | syl | |- ( D e. ( PsMet ` X ) -> ( D e. ( PsMet ` X ) <-> ( D : ( X X. X ) --> RR* /\ A. a e. X ( ( a D a ) = 0 /\ A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) ) ) ) |
| 4 | 3 | ibi | |- ( D e. ( PsMet ` X ) -> ( D : ( X X. X ) --> RR* /\ A. a e. X ( ( a D a ) = 0 /\ A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) ) ) |
| 5 | 4 | simprd | |- ( D e. ( PsMet ` X ) -> A. a e. X ( ( a D a ) = 0 /\ A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) ) |
| 6 | 5 | r19.21bi | |- ( ( D e. ( PsMet ` X ) /\ a e. X ) -> ( ( a D a ) = 0 /\ A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) ) |
| 7 | 6 | simprd | |- ( ( D e. ( PsMet ` X ) /\ a e. X ) -> A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) |
| 8 | 7 | ralrimiva | |- ( D e. ( PsMet ` X ) -> A. a e. X A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) |
| 9 | oveq1 | |- ( a = A -> ( a D b ) = ( A D b ) ) |
|
| 10 | oveq2 | |- ( a = A -> ( c D a ) = ( c D A ) ) |
|
| 11 | 10 | oveq1d | |- ( a = A -> ( ( c D a ) +e ( c D b ) ) = ( ( c D A ) +e ( c D b ) ) ) |
| 12 | 9 11 | breq12d | |- ( a = A -> ( ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) <-> ( A D b ) <_ ( ( c D A ) +e ( c D b ) ) ) ) |
| 13 | oveq2 | |- ( b = B -> ( A D b ) = ( A D B ) ) |
|
| 14 | oveq2 | |- ( b = B -> ( c D b ) = ( c D B ) ) |
|
| 15 | 14 | oveq2d | |- ( b = B -> ( ( c D A ) +e ( c D b ) ) = ( ( c D A ) +e ( c D B ) ) ) |
| 16 | 13 15 | breq12d | |- ( b = B -> ( ( A D b ) <_ ( ( c D A ) +e ( c D b ) ) <-> ( A D B ) <_ ( ( c D A ) +e ( c D B ) ) ) ) |
| 17 | oveq1 | |- ( c = C -> ( c D A ) = ( C D A ) ) |
|
| 18 | oveq1 | |- ( c = C -> ( c D B ) = ( C D B ) ) |
|
| 19 | 17 18 | oveq12d | |- ( c = C -> ( ( c D A ) +e ( c D B ) ) = ( ( C D A ) +e ( C D B ) ) ) |
| 20 | 19 | breq2d | |- ( c = C -> ( ( A D B ) <_ ( ( c D A ) +e ( c D B ) ) <-> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) ) |
| 21 | 12 16 20 | rspc3v | |- ( ( A e. X /\ B e. X /\ C e. X ) -> ( A. a e. X A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) ) |
| 22 | 21 | 3comr | |- ( ( C e. X /\ A e. X /\ B e. X ) -> ( A. a e. X A. b e. X A. c e. X ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) ) |
| 23 | 8 22 | mpan9 | |- ( ( D e. ( PsMet ` X ) /\ ( C e. X /\ A e. X /\ B e. X ) ) -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) |