Step |
Hyp |
Ref |
Expression |
1 |
|
xmeter.1 |
|- .~ = ( `' D " RR ) |
2 |
|
cnvimass |
|- ( `' D " RR ) C_ dom D |
3 |
1 2
|
eqsstri |
|- .~ C_ dom D |
4 |
|
xmetf |
|- ( D e. ( *Met ` X ) -> D : ( X X. X ) --> RR* ) |
5 |
3 4
|
fssdm |
|- ( D e. ( *Met ` X ) -> .~ C_ ( X X. X ) ) |
6 |
|
relxp |
|- Rel ( X X. X ) |
7 |
|
relss |
|- ( .~ C_ ( X X. X ) -> ( Rel ( X X. X ) -> Rel .~ ) ) |
8 |
5 6 7
|
mpisyl |
|- ( D e. ( *Met ` X ) -> Rel .~ ) |
9 |
1
|
xmeterval |
|- ( D e. ( *Met ` X ) -> ( x .~ y <-> ( x e. X /\ y e. X /\ ( x D y ) e. RR ) ) ) |
10 |
9
|
biimpa |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> ( x e. X /\ y e. X /\ ( x D y ) e. RR ) ) |
11 |
10
|
simp2d |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> y e. X ) |
12 |
10
|
simp1d |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> x e. X ) |
13 |
|
simpl |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> D e. ( *Met ` X ) ) |
14 |
|
xmetsym |
|- ( ( D e. ( *Met ` X ) /\ x e. X /\ y e. X ) -> ( x D y ) = ( y D x ) ) |
15 |
13 12 11 14
|
syl3anc |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> ( x D y ) = ( y D x ) ) |
16 |
10
|
simp3d |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> ( x D y ) e. RR ) |
17 |
15 16
|
eqeltrrd |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> ( y D x ) e. RR ) |
18 |
1
|
xmeterval |
|- ( D e. ( *Met ` X ) -> ( y .~ x <-> ( y e. X /\ x e. X /\ ( y D x ) e. RR ) ) ) |
19 |
18
|
adantr |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> ( y .~ x <-> ( y e. X /\ x e. X /\ ( y D x ) e. RR ) ) ) |
20 |
11 12 17 19
|
mpbir3and |
|- ( ( D e. ( *Met ` X ) /\ x .~ y ) -> y .~ x ) |
21 |
12
|
adantrr |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> x e. X ) |
22 |
1
|
xmeterval |
|- ( D e. ( *Met ` X ) -> ( y .~ z <-> ( y e. X /\ z e. X /\ ( y D z ) e. RR ) ) ) |
23 |
22
|
biimpa |
|- ( ( D e. ( *Met ` X ) /\ y .~ z ) -> ( y e. X /\ z e. X /\ ( y D z ) e. RR ) ) |
24 |
23
|
adantrl |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( y e. X /\ z e. X /\ ( y D z ) e. RR ) ) |
25 |
24
|
simp2d |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> z e. X ) |
26 |
|
simpl |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> D e. ( *Met ` X ) ) |
27 |
16
|
adantrr |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( x D y ) e. RR ) |
28 |
24
|
simp3d |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( y D z ) e. RR ) |
29 |
|
rexadd |
|- ( ( ( x D y ) e. RR /\ ( y D z ) e. RR ) -> ( ( x D y ) +e ( y D z ) ) = ( ( x D y ) + ( y D z ) ) ) |
30 |
|
readdcl |
|- ( ( ( x D y ) e. RR /\ ( y D z ) e. RR ) -> ( ( x D y ) + ( y D z ) ) e. RR ) |
31 |
29 30
|
eqeltrd |
|- ( ( ( x D y ) e. RR /\ ( y D z ) e. RR ) -> ( ( x D y ) +e ( y D z ) ) e. RR ) |
32 |
27 28 31
|
syl2anc |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( ( x D y ) +e ( y D z ) ) e. RR ) |
33 |
11
|
adantrr |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> y e. X ) |
34 |
|
xmettri |
|- ( ( D e. ( *Met ` X ) /\ ( x e. X /\ z e. X /\ y e. X ) ) -> ( x D z ) <_ ( ( x D y ) +e ( y D z ) ) ) |
35 |
26 21 25 33 34
|
syl13anc |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( x D z ) <_ ( ( x D y ) +e ( y D z ) ) ) |
36 |
|
xmetlecl |
|- ( ( D e. ( *Met ` X ) /\ ( x e. X /\ z e. X ) /\ ( ( ( x D y ) +e ( y D z ) ) e. RR /\ ( x D z ) <_ ( ( x D y ) +e ( y D z ) ) ) ) -> ( x D z ) e. RR ) |
37 |
26 21 25 32 35 36
|
syl122anc |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( x D z ) e. RR ) |
38 |
1
|
xmeterval |
|- ( D e. ( *Met ` X ) -> ( x .~ z <-> ( x e. X /\ z e. X /\ ( x D z ) e. RR ) ) ) |
39 |
38
|
adantr |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> ( x .~ z <-> ( x e. X /\ z e. X /\ ( x D z ) e. RR ) ) ) |
40 |
21 25 37 39
|
mpbir3and |
|- ( ( D e. ( *Met ` X ) /\ ( x .~ y /\ y .~ z ) ) -> x .~ z ) |
41 |
|
xmet0 |
|- ( ( D e. ( *Met ` X ) /\ x e. X ) -> ( x D x ) = 0 ) |
42 |
|
0re |
|- 0 e. RR |
43 |
41 42
|
eqeltrdi |
|- ( ( D e. ( *Met ` X ) /\ x e. X ) -> ( x D x ) e. RR ) |
44 |
43
|
ex |
|- ( D e. ( *Met ` X ) -> ( x e. X -> ( x D x ) e. RR ) ) |
45 |
44
|
pm4.71rd |
|- ( D e. ( *Met ` X ) -> ( x e. X <-> ( ( x D x ) e. RR /\ x e. X ) ) ) |
46 |
|
df-3an |
|- ( ( x e. X /\ x e. X /\ ( x D x ) e. RR ) <-> ( ( x e. X /\ x e. X ) /\ ( x D x ) e. RR ) ) |
47 |
|
anidm |
|- ( ( x e. X /\ x e. X ) <-> x e. X ) |
48 |
47
|
anbi2ci |
|- ( ( ( x e. X /\ x e. X ) /\ ( x D x ) e. RR ) <-> ( ( x D x ) e. RR /\ x e. X ) ) |
49 |
46 48
|
bitri |
|- ( ( x e. X /\ x e. X /\ ( x D x ) e. RR ) <-> ( ( x D x ) e. RR /\ x e. X ) ) |
50 |
45 49
|
bitr4di |
|- ( D e. ( *Met ` X ) -> ( x e. X <-> ( x e. X /\ x e. X /\ ( x D x ) e. RR ) ) ) |
51 |
1
|
xmeterval |
|- ( D e. ( *Met ` X ) -> ( x .~ x <-> ( x e. X /\ x e. X /\ ( x D x ) e. RR ) ) ) |
52 |
50 51
|
bitr4d |
|- ( D e. ( *Met ` X ) -> ( x e. X <-> x .~ x ) ) |
53 |
8 20 40 52
|
iserd |
|- ( D e. ( *Met ` X ) -> .~ Er X ) |