HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem dscmet 7918
Description: The discrete metric on any set X. Definition 1.1-8 of [Kreyszig] p. 8. (Contributed by FL, 12-Oct-2006.)
Hypotheses
Ref Expression
dscmet.1 |- X e. V
dscmet.2 |- D = {<.<.x, y>., z>. | ((x e. X /\ y e. X) /\ z = if(x = y, 0, 1))}
Assertion
Ref Expression
dscmet |- D e. Met
Distinct variable group:   x,X,y,z

Proof of Theorem dscmet
StepHypRef Expression
1 dscmet.1 . 2 |- X e. V
2 dscmet.2 . . 3 |- D = {<.<.x, y>., z>. | ((x e. X /\ y e. X) /\ z = if(x = y, 0, 1))}
3 0re 5440 . . . . 5 |- 0 e. RR
4 1re 5435 . . . . 5 |- 1 e. RR
53, 4keepel 2399 . . . 4 |- if(x = y, 0, 1) e. RR
65a1i 8 . . 3 |- ((x e. X /\ y e. X) -> if(x = y, 0, 1) e. RR)
72, 6foprab 4120 . 2 |- D:(X X. X)-->RR
83, 4keepel 2399 . . . . . 6 |- if(w = v, 0, 1) e. RR
98elisseti 1818 . . . . 5 |- if(w = v, 0, 1) e. V
10 eqeq1 1481 . . . . . 6 |- (x = w -> (x = y <-> w = y))
1110ifbid 2372 . . . . 5 |- (x = w -> if(x = y, 0, 1) = if(w = y, 0, 1))
12 eqeq2 1484 . . . . . 6 |- (y = v -> (w = y <-> w = v))
1312ifbid 2372 . . . . 5 |- (y = v -> if(w = y, 0, 1) = if(w = v, 0, 1))
149, 11, 13, 2oprabval2 4028 . . . 4 |- ((w e. X /\ v e. X) -> (wDv) = if(w = v, 0, 1))
1514eqeq1d 1483 . . 3 |- ((w e. X /\ v e. X) -> ((wDv) = 0 <-> if(w = v, 0, 1) = 0))
16 eqif 2377 . . . . . 6 |- (0 = if(w = v, 0, 1) <-> ((w = v /\ 0 = 0) \/ (-. w = v /\ 0 = 1)))
17 pm3.26 319 . . . . . . 7 |- ((w = v /\ 0 = 0) -> w = v)
18 ax1ne0 5280 . . . . . . . . . . . 12 |- 1 =/= 0
19 necom 1636 . . . . . . . . . . . 12 |- (1 =/= 0 <-> 0 =/= 1)
2018, 19mpbi 189 . . . . . . . . . . 11 |- 0 =/= 1
21 df-ne 1587 . . . . . . . . . . 11 |- (0 =/= 1 <-> -. 0 = 1)
2220, 21mpbi 189 . . . . . . . . . 10 |- -. 0 = 1
2322pm2.21i 77 . . . . . . . . 9 |- (0 = 1 -> (w = v \/ w = v))
2423orcanai 690 . . . . . . . 8 |- ((0 = 1 /\ -. w = v) -> w = v)
2524ancoms 436 . . . . . . 7 |- ((-. w = v /\ 0 = 1) -> w = v)
2617, 25jaoi 341 . . . . . 6 |- (((w = v /\ 0 = 0) \/ (-. w = v /\ 0 = 1)) -> w = v)
2716, 26sylbi 199 . . . . 5 |- (0 = if(w = v, 0, 1) -> w = v)
2827eqcoms 1478 . . . 4 |- (if(w = v, 0, 1) = 0 -> w = v)
29 iftrue 2366 . . . 4 |- (w = v -> if(w = v, 0, 1) = 0)
3028, 29impbi 157 . . 3 |- (if(w = v, 0, 1) = 0 <-> w = v)
3115, 30syl6bb 536 . 2 |- ((w e. X /\ v e. X) -> ((wDv) = 0 <-> w = v))
32 equtr 1131 . . . . . . . . 9 |- (u = w -> (w = v -> u = v))
3332imdistani 443 . . . . . . . 8 |- ((u = w /\ w = v) -> (u = w /\ u = v))
34 iftrue 2366 . . . . . . . . . 10 |- (u = w -> if(u = w, 0, 1) = 0)
35 iftrue 2366 . . . . . . . . . 10 |- (u = v -> if(u = v, 0, 1) = 0)
3634, 35opreqan12d 3979 . . . . . . . . 9 |- ((u = w /\ u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (0 + 0))
37 0nn0 6113 . . . . . . . . . 10 |- 0 e. NN0
383, 37nn0addge1 6132 . . . . . . . . 9 |- 0 <_ (0 + 0)
3936, 38syl5breqr 2651 . . . . . . . 8 |- ((u = w /\ u = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
4033, 39syl 10 . . . . . . 7 |- ((u = w /\ w = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
41 equequ2 1135 . . . . . . . . . . 11 |- (w = v -> (u = w <-> u = v))
4241negbid 611 . . . . . . . . . 10 |- (w = v -> (-. u = w <-> -. u = v))
4342biimpcd 155 . . . . . . . . 9 |- (-. u = w -> (w = v -> -. u = v))
4443imdistani 443 . . . . . . . 8 |- ((-. u = w /\ w = v) -> (-. u = w /\ -. u = v))
45 iffalse 2367 . . . . . . . . . 10 |- (-. u = w -> if(u = w, 0, 1) = 1)
46 iffalse 2367 . . . . . . . . . 10 |- (-. u = v -> if(u = v, 0, 1) = 1)
4745, 46opreqan12d 3979 . . . . . . . . 9 |- ((-. u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (1 + 1))
48 lt01 5680 . . . . . . . . . . 11 |- 0 < 1
493, 4, 48ltlei 5581 . . . . . . . . . 10 |- 0 <_ 1
504, 4addge0 5599 . . . . . . . . . 10 |- ((0 <_ 1 /\ 0 <_ 1) -> 0 <_ (1 + 1))
5149, 49, 50mp2an 697 . . . . . . . . 9 |- 0 <_ (1 + 1)
5247, 51syl5breqr 2651 . . . . . . . 8 |- ((-. u = w /\ -. u = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
5344, 52syl 10 . . . . . . 7 |- ((-. u = w /\ w = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
5440, 53pm2.61ian 476 . . . . . 6 |- (w = v -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
5529, 54eqbrtrd 2635 . . . . 5 |- (w = v -> if(w = v, 0, 1) <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
56 iffalse 2367 . . . . . 6 |- (-. w = v -> if(w = v, 0, 1) = 1)
57 neeq1 1590 . . . . . . . . . . . 12 |- (u = w -> (u =/= v <-> w =/= v))
5857biimprd 154 . . . . . . . . . . 11 |- (u = w -> (w =/= v -> u =/= v))
59 df-ne 1587 . . . . . . . . . . 11 |- (w =/= v <-> -. w = v)
60 df-ne 1587 . . . . . . . . . . 11 |- (u =/= v <-> -. u = v)
6158, 59, 603imtr3g 552 . . . . . . . . . 10 |- (u = w -> (-. w = v -> -. u = v))
6261imdistani 443 . . . . . . . . 9 |- ((u = w /\ -. w = v) -> (u = w /\ -. u = v))
6334, 46opreqan12d 3979 . . . . . . . . . . 11 |- ((u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (0 + 1))
64 ax1cn 5269 . . . . . . . . . . . 12 |- 1 e. CC
6564addid2 5331 . . . . . . . . . . 11 |- (0 + 1) = 1
6663, 65syl6eq 1523 . . . . . . . . . 10 |- ((u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = 1)
674leid 5610 . . . . . . . . . 10 |- 1 <_ 1
6866, 67syl5breqr 2651 . . . . . . . . 9 |- ((u = w /\ -. u = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
6962, 68syl 10 . . . . . . . 8 |- ((u = w /\ -. w = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
7069ex 373 . . . . . . 7 |- (u = w -> (-. w = v -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1))))
7145, 35opreqan12d 3979 . . . . . . . . . . 11 |- ((-. u = w /\ u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (1 + 0))
7264addid1 5330 . . . . . . . . . . 11 |- (1 + 0) = 1
7371, 72syl6eq 1523 . . . . . . . . . 10 |- ((-. u = w /\ u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = 1)
7473, 67syl5breqr 2651 . . . . . . . . 9 |- ((-. u = w /\ u = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
75 df-2 5970 . . . . . . . . . . 11 |- 2 = (1 + 1)
7647, 75syl6eqr 1525 . . . . . . . . . 10 |- ((-. u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = 2)
77 2re 5979 . . . . . . . . . . 11 |- 2 e. RR
78 1lt2 6028 . . . . . . . . . . 11 |- 1 < 2
794, 77, 78ltlei 5581 . . . . . . . . . 10 |- 1 <_ 2
8076, 79syl5breqr 2651 . . . . . . . . 9 |- ((-. u = w /\ -. u = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8174, 80pm2.61dan 477 . . . . . . . 8 |- (-. u = w -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8281a1d 12 . . . . . . 7 |- (-. u = w -> (-. w = v -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1))))
8370, 82pm2.61i 126 . . . . . 6 |- (-. w = v -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8456, 83eqbrtrd 2635 . . . . 5 |- (-. w = v -> if(w = v, 0, 1) <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8555, 84pm2.61i 126 . . . 4 |- if(w = v, 0, 1) <_ (if(u = w, 0, 1) + if(u = v, 0, 1))
8685a1i 8 . . 3 |- ((w e. X /\ v e. X /\ u e. X) -> if(w