Metamath Proof Explorer


Theorem comet

Description: The composition of an extended metric with a monotonic subadditive function is an extended metric. (Contributed by Mario Carneiro, 21-Mar-2015)

Ref Expression
Hypotheses comet.1
|- ( ph -> D e. ( *Met ` X ) )
comet.2
|- ( ph -> F : ( 0 [,] +oo ) --> RR* )
comet.3
|- ( ( ph /\ x e. ( 0 [,] +oo ) ) -> ( ( F ` x ) = 0 <-> x = 0 ) )
comet.4
|- ( ( ph /\ ( x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ) -> ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) )
comet.5
|- ( ( ph /\ ( x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ) -> ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) )
Assertion comet
|- ( ph -> ( F o. D ) e. ( *Met ` X ) )

Proof

Step Hyp Ref Expression
1 comet.1
 |-  ( ph -> D e. ( *Met ` X ) )
2 comet.2
 |-  ( ph -> F : ( 0 [,] +oo ) --> RR* )
3 comet.3
 |-  ( ( ph /\ x e. ( 0 [,] +oo ) ) -> ( ( F ` x ) = 0 <-> x = 0 ) )
4 comet.4
 |-  ( ( ph /\ ( x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ) -> ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) )
5 comet.5
 |-  ( ( ph /\ ( x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ) -> ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) )
6 1 elfvexd
 |-  ( ph -> X e. _V )
7 xmetf
 |-  ( D e. ( *Met ` X ) -> D : ( X X. X ) --> RR* )
8 1 7 syl
 |-  ( ph -> D : ( X X. X ) --> RR* )
9 8 ffnd
 |-  ( ph -> D Fn ( X X. X ) )
10 xmetcl
 |-  ( ( D e. ( *Met ` X ) /\ a e. X /\ b e. X ) -> ( a D b ) e. RR* )
11 xmetge0
 |-  ( ( D e. ( *Met ` X ) /\ a e. X /\ b e. X ) -> 0 <_ ( a D b ) )
12 elxrge0
 |-  ( ( a D b ) e. ( 0 [,] +oo ) <-> ( ( a D b ) e. RR* /\ 0 <_ ( a D b ) ) )
13 10 11 12 sylanbrc
 |-  ( ( D e. ( *Met ` X ) /\ a e. X /\ b e. X ) -> ( a D b ) e. ( 0 [,] +oo ) )
14 13 3expb
 |-  ( ( D e. ( *Met ` X ) /\ ( a e. X /\ b e. X ) ) -> ( a D b ) e. ( 0 [,] +oo ) )
15 1 14 sylan
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( a D b ) e. ( 0 [,] +oo ) )
16 15 ralrimivva
 |-  ( ph -> A. a e. X A. b e. X ( a D b ) e. ( 0 [,] +oo ) )
17 ffnov
 |-  ( D : ( X X. X ) --> ( 0 [,] +oo ) <-> ( D Fn ( X X. X ) /\ A. a e. X A. b e. X ( a D b ) e. ( 0 [,] +oo ) ) )
18 9 16 17 sylanbrc
 |-  ( ph -> D : ( X X. X ) --> ( 0 [,] +oo ) )
19 2 18 fcod
 |-  ( ph -> ( F o. D ) : ( X X. X ) --> RR* )
20 opelxpi
 |-  ( ( a e. X /\ b e. X ) -> <. a , b >. e. ( X X. X ) )
21 fvco3
 |-  ( ( D : ( X X. X ) --> RR* /\ <. a , b >. e. ( X X. X ) ) -> ( ( F o. D ) ` <. a , b >. ) = ( F ` ( D ` <. a , b >. ) ) )
22 8 20 21 syl2an
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( ( F o. D ) ` <. a , b >. ) = ( F ` ( D ` <. a , b >. ) ) )
23 df-ov
 |-  ( a ( F o. D ) b ) = ( ( F o. D ) ` <. a , b >. )
24 df-ov
 |-  ( a D b ) = ( D ` <. a , b >. )
25 24 fveq2i
 |-  ( F ` ( a D b ) ) = ( F ` ( D ` <. a , b >. ) )
26 22 23 25 3eqtr4g
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( a ( F o. D ) b ) = ( F ` ( a D b ) ) )
27 26 eqeq1d
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( ( a ( F o. D ) b ) = 0 <-> ( F ` ( a D b ) ) = 0 ) )
28 fveq2
 |-  ( x = ( a D b ) -> ( F ` x ) = ( F ` ( a D b ) ) )
29 28 eqeq1d
 |-  ( x = ( a D b ) -> ( ( F ` x ) = 0 <-> ( F ` ( a D b ) ) = 0 ) )
30 eqeq1
 |-  ( x = ( a D b ) -> ( x = 0 <-> ( a D b ) = 0 ) )
31 29 30 bibi12d
 |-  ( x = ( a D b ) -> ( ( ( F ` x ) = 0 <-> x = 0 ) <-> ( ( F ` ( a D b ) ) = 0 <-> ( a D b ) = 0 ) ) )
32 3 ralrimiva
 |-  ( ph -> A. x e. ( 0 [,] +oo ) ( ( F ` x ) = 0 <-> x = 0 ) )
33 32 adantr
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> A. x e. ( 0 [,] +oo ) ( ( F ` x ) = 0 <-> x = 0 ) )
34 31 33 15 rspcdva
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( ( F ` ( a D b ) ) = 0 <-> ( a D b ) = 0 ) )
35 xmeteq0
 |-  ( ( D e. ( *Met ` X ) /\ a e. X /\ b e. X ) -> ( ( a D b ) = 0 <-> a = b ) )
36 35 3expb
 |-  ( ( D e. ( *Met ` X ) /\ ( a e. X /\ b e. X ) ) -> ( ( a D b ) = 0 <-> a = b ) )
37 1 36 sylan
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( ( a D b ) = 0 <-> a = b ) )
38 27 34 37 3bitrd
 |-  ( ( ph /\ ( a e. X /\ b e. X ) ) -> ( ( a ( F o. D ) b ) = 0 <-> a = b ) )
39 2 adantr
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> F : ( 0 [,] +oo ) --> RR* )
40 15 3adantr3
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( a D b ) e. ( 0 [,] +oo ) )
41 39 40 ffvelrnd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( a D b ) ) e. RR* )
42 18 adantr
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> D : ( X X. X ) --> ( 0 [,] +oo ) )
43 simpr3
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> c e. X )
44 simpr1
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> a e. X )
45 42 43 44 fovrnd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( c D a ) e. ( 0 [,] +oo ) )
46 simpr2
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> b e. X )
47 42 43 46 fovrnd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( c D b ) e. ( 0 [,] +oo ) )
48 ge0xaddcl
 |-  ( ( ( c D a ) e. ( 0 [,] +oo ) /\ ( c D b ) e. ( 0 [,] +oo ) ) -> ( ( c D a ) +e ( c D b ) ) e. ( 0 [,] +oo ) )
49 45 47 48 syl2anc
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( ( c D a ) +e ( c D b ) ) e. ( 0 [,] +oo ) )
50 39 49 ffvelrnd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( ( c D a ) +e ( c D b ) ) ) e. RR* )
51 39 45 ffvelrnd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( c D a ) ) e. RR* )
52 39 47 ffvelrnd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( c D b ) ) e. RR* )
53 51 52 xaddcld
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) e. RR* )
54 3anrot
 |-  ( ( c e. X /\ a e. X /\ b e. X ) <-> ( a e. X /\ b e. X /\ c e. X ) )
55 xmettri2
 |-  ( ( D e. ( *Met ` X ) /\ ( c e. X /\ a e. X /\ b e. X ) ) -> ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) )
56 54 55 sylan2br
 |-  ( ( D e. ( *Met ` X ) /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) )
57 1 56 sylan
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) )
58 4 ralrimivva
 |-  ( ph -> A. x e. ( 0 [,] +oo ) A. y e. ( 0 [,] +oo ) ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) )
59 58 adantr
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> A. x e. ( 0 [,] +oo ) A. y e. ( 0 [,] +oo ) ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) )
60 breq1
 |-  ( x = ( a D b ) -> ( x <_ y <-> ( a D b ) <_ y ) )
61 28 breq1d
 |-  ( x = ( a D b ) -> ( ( F ` x ) <_ ( F ` y ) <-> ( F ` ( a D b ) ) <_ ( F ` y ) ) )
62 60 61 imbi12d
 |-  ( x = ( a D b ) -> ( ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) <-> ( ( a D b ) <_ y -> ( F ` ( a D b ) ) <_ ( F ` y ) ) ) )
63 breq2
 |-  ( y = ( ( c D a ) +e ( c D b ) ) -> ( ( a D b ) <_ y <-> ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) ) )
64 fveq2
 |-  ( y = ( ( c D a ) +e ( c D b ) ) -> ( F ` y ) = ( F ` ( ( c D a ) +e ( c D b ) ) ) )
65 64 breq2d
 |-  ( y = ( ( c D a ) +e ( c D b ) ) -> ( ( F ` ( a D b ) ) <_ ( F ` y ) <-> ( F ` ( a D b ) ) <_ ( F ` ( ( c D a ) +e ( c D b ) ) ) ) )
66 63 65 imbi12d
 |-  ( y = ( ( c D a ) +e ( c D b ) ) -> ( ( ( a D b ) <_ y -> ( F ` ( a D b ) ) <_ ( F ` y ) ) <-> ( ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) -> ( F ` ( a D b ) ) <_ ( F ` ( ( c D a ) +e ( c D b ) ) ) ) ) )
67 62 66 rspc2va
 |-  ( ( ( ( a D b ) e. ( 0 [,] +oo ) /\ ( ( c D a ) +e ( c D b ) ) e. ( 0 [,] +oo ) ) /\ A. x e. ( 0 [,] +oo ) A. y e. ( 0 [,] +oo ) ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) ) -> ( ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) -> ( F ` ( a D b ) ) <_ ( F ` ( ( c D a ) +e ( c D b ) ) ) ) )
68 40 49 59 67 syl21anc
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( ( a D b ) <_ ( ( c D a ) +e ( c D b ) ) -> ( F ` ( a D b ) ) <_ ( F ` ( ( c D a ) +e ( c D b ) ) ) ) )
69 57 68 mpd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( a D b ) ) <_ ( F ` ( ( c D a ) +e ( c D b ) ) ) )
70 5 ralrimivva
 |-  ( ph -> A. x e. ( 0 [,] +oo ) A. y e. ( 0 [,] +oo ) ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) )
71 70 adantr
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> A. x e. ( 0 [,] +oo ) A. y e. ( 0 [,] +oo ) ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) )
72 fvoveq1
 |-  ( x = ( c D a ) -> ( F ` ( x +e y ) ) = ( F ` ( ( c D a ) +e y ) ) )
73 fveq2
 |-  ( x = ( c D a ) -> ( F ` x ) = ( F ` ( c D a ) ) )
74 73 oveq1d
 |-  ( x = ( c D a ) -> ( ( F ` x ) +e ( F ` y ) ) = ( ( F ` ( c D a ) ) +e ( F ` y ) ) )
75 72 74 breq12d
 |-  ( x = ( c D a ) -> ( ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) <-> ( F ` ( ( c D a ) +e y ) ) <_ ( ( F ` ( c D a ) ) +e ( F ` y ) ) ) )
76 oveq2
 |-  ( y = ( c D b ) -> ( ( c D a ) +e y ) = ( ( c D a ) +e ( c D b ) ) )
77 76 fveq2d
 |-  ( y = ( c D b ) -> ( F ` ( ( c D a ) +e y ) ) = ( F ` ( ( c D a ) +e ( c D b ) ) ) )
78 fveq2
 |-  ( y = ( c D b ) -> ( F ` y ) = ( F ` ( c D b ) ) )
79 78 oveq2d
 |-  ( y = ( c D b ) -> ( ( F ` ( c D a ) ) +e ( F ` y ) ) = ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) )
80 77 79 breq12d
 |-  ( y = ( c D b ) -> ( ( F ` ( ( c D a ) +e y ) ) <_ ( ( F ` ( c D a ) ) +e ( F ` y ) ) <-> ( F ` ( ( c D a ) +e ( c D b ) ) ) <_ ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) ) )
81 75 80 rspc2va
 |-  ( ( ( ( c D a ) e. ( 0 [,] +oo ) /\ ( c D b ) e. ( 0 [,] +oo ) ) /\ A. x e. ( 0 [,] +oo ) A. y e. ( 0 [,] +oo ) ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) ) -> ( F ` ( ( c D a ) +e ( c D b ) ) ) <_ ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) )
82 45 47 71 81 syl21anc
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( ( c D a ) +e ( c D b ) ) ) <_ ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) )
83 41 50 53 69 82 xrletrd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( F ` ( a D b ) ) <_ ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) )
84 26 3adantr3
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( a ( F o. D ) b ) = ( F ` ( a D b ) ) )
85 8 adantr
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> D : ( X X. X ) --> RR* )
86 43 44 opelxpd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> <. c , a >. e. ( X X. X ) )
87 85 86 fvco3d
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( ( F o. D ) ` <. c , a >. ) = ( F ` ( D ` <. c , a >. ) ) )
88 df-ov
 |-  ( c ( F o. D ) a ) = ( ( F o. D ) ` <. c , a >. )
89 df-ov
 |-  ( c D a ) = ( D ` <. c , a >. )
90 89 fveq2i
 |-  ( F ` ( c D a ) ) = ( F ` ( D ` <. c , a >. ) )
91 87 88 90 3eqtr4g
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( c ( F o. D ) a ) = ( F ` ( c D a ) ) )
92 43 46 opelxpd
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> <. c , b >. e. ( X X. X ) )
93 85 92 fvco3d
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( ( F o. D ) ` <. c , b >. ) = ( F ` ( D ` <. c , b >. ) ) )
94 df-ov
 |-  ( c ( F o. D ) b ) = ( ( F o. D ) ` <. c , b >. )
95 df-ov
 |-  ( c D b ) = ( D ` <. c , b >. )
96 95 fveq2i
 |-  ( F ` ( c D b ) ) = ( F ` ( D ` <. c , b >. ) )
97 93 94 96 3eqtr4g
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( c ( F o. D ) b ) = ( F ` ( c D b ) ) )
98 91 97 oveq12d
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( ( c ( F o. D ) a ) +e ( c ( F o. D ) b ) ) = ( ( F ` ( c D a ) ) +e ( F ` ( c D b ) ) ) )
99 83 84 98 3brtr4d
 |-  ( ( ph /\ ( a e. X /\ b e. X /\ c e. X ) ) -> ( a ( F o. D ) b ) <_ ( ( c ( F o. D ) a ) +e ( c ( F o. D ) b ) ) )
100 6 19 38 99 isxmetd
 |-  ( ph -> ( F o. D ) e. ( *Met ` X ) )