Metamath Proof Explorer


Theorem xmetrtri2

Description: The reverse triangle inequality for the distance function of an extended metric. In order to express the "extended absolute value function", we use the distance function xrsdsval defined on the extended real structure. (Contributed by Mario Carneiro, 4-Sep-2015)

Ref Expression
Hypothesis xmetrtri2.1
|- K = ( dist ` RR*s )
Assertion xmetrtri2
|- ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( ( A D C ) K ( B D C ) ) <_ ( A D B ) )

Proof

Step Hyp Ref Expression
1 xmetrtri2.1
 |-  K = ( dist ` RR*s )
2 xmetcl
 |-  ( ( D e. ( *Met ` X ) /\ A e. X /\ C e. X ) -> ( A D C ) e. RR* )
3 2 3adant3r2
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( A D C ) e. RR* )
4 xmetcl
 |-  ( ( D e. ( *Met ` X ) /\ B e. X /\ C e. X ) -> ( B D C ) e. RR* )
5 4 3adant3r1
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( B D C ) e. RR* )
6 1 xrsdsval
 |-  ( ( ( A D C ) e. RR* /\ ( B D C ) e. RR* ) -> ( ( A D C ) K ( B D C ) ) = if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) )
7 3 5 6 syl2anc
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( ( A D C ) K ( B D C ) ) = if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) )
8 3ancoma
 |-  ( ( A e. X /\ B e. X /\ C e. X ) <-> ( B e. X /\ A e. X /\ C e. X ) )
9 xmetrtri
 |-  ( ( D e. ( *Met ` X ) /\ ( B e. X /\ A e. X /\ C e. X ) ) -> ( ( B D C ) +e -e ( A D C ) ) <_ ( B D A ) )
10 8 9 sylan2b
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( ( B D C ) +e -e ( A D C ) ) <_ ( B D A ) )
11 xmetsym
 |-  ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) -> ( A D B ) = ( B D A ) )
12 11 3adant3r3
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( A D B ) = ( B D A ) )
13 10 12 breqtrrd
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( ( B D C ) +e -e ( A D C ) ) <_ ( A D B ) )
14 xmetrtri
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( ( A D C ) +e -e ( B D C ) ) <_ ( A D B ) )
15 breq1
 |-  ( ( ( B D C ) +e -e ( A D C ) ) = if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) -> ( ( ( B D C ) +e -e ( A D C ) ) <_ ( A D B ) <-> if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) <_ ( A D B ) ) )
16 breq1
 |-  ( ( ( A D C ) +e -e ( B D C ) ) = if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) -> ( ( ( A D C ) +e -e ( B D C ) ) <_ ( A D B ) <-> if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) <_ ( A D B ) ) )
17 15 16 ifboth
 |-  ( ( ( ( B D C ) +e -e ( A D C ) ) <_ ( A D B ) /\ ( ( A D C ) +e -e ( B D C ) ) <_ ( A D B ) ) -> if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) <_ ( A D B ) )
18 13 14 17 syl2anc
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> if ( ( A D C ) <_ ( B D C ) , ( ( B D C ) +e -e ( A D C ) ) , ( ( A D C ) +e -e ( B D C ) ) ) <_ ( A D B ) )
19 7 18 eqbrtrd
 |-  ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) -> ( ( A D C ) K ( B D C ) ) <_ ( A D B ) )