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

Theorem dscmet 9196
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 6603 . . . . 5 |- 0 e. RR
4 1re 6598 . . . . 5 |- 1 e. RR
53, 4keepel 3030 . . . 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 5062 . 2 |- D:(X X. X)-->RR
83, 4keepel 3030 . . . . . 6 |- if(w = v, 0, 1) e. RR
98elisseti 2301 . . . . 5 |- if(w = v, 0, 1) e. _V
10 eqeq1 1890 . . . . . 6 |- (x = w -> (x = y <-> w = y))
1110ifbid 2996 . . . . 5 |- (x = w -> if(x = y, 0, 1) = if(w = y, 0, 1))
12 eqeq2 1893 . . . . . 6 |- (y = v -> (w = y <-> w = v))
1312ifbid 2996 . . . . 5 |- (y = v -> if(w = y, 0, 1) = if(w = v, 0, 1))
149, 11, 13, 2oprabval2 4957 . . . 4 |- ((w e. X /\ v e. X) -> (wDv) = if(w = v, 0, 1))
1514eqeq1d 1892 . . 3 |- ((w e. X /\ v e. X) -> ((wDv) = 0 <-> if(w = v, 0, 1) = 0))
16 eqif 3004 . . . . . 6 |- (0 = if(w = v, 0, 1) <-> ((w = v /\ 0 = 0) \/ (-. w = v /\ 0 = 1)))
17 simpl 346 . . . . . . 7 |- ((w = v /\ 0 = 0) -> w = v)
18 ax1ne0 6433 . . . . . . . . . . . 12 |- 1 =/= 0
19 necom 2094 . . . . . . . . . . . 12 |- (1 =/= 0 <-> 0 =/= 1)
2018, 19mpbi 206 . . . . . . . . . . 11 |- 0 =/= 1
21 df-ne 2019 . . . . . . . . . . 11 |- (0 =/= 1 <-> -. 0 = 1)
2220, 21mpbi 206 . . . . . . . . . 10 |- -. 0 = 1
2322pm2.21i 93 . . . . . . . . 9 |- (0 = 1 -> (w = v \/ w = v))
2423orcanai 754 . . . . . . . 8 |- ((0 = 1 /\ -. w = v) -> w = v)
2524ancoms 484 . . . . . . 7 |- ((-. w = v /\ 0 = 1) -> w = v)
2617, 25jaoi 368 . . . . . 6 |- (((w = v /\ 0 = 0) \/ (-. w = v /\ 0 = 1)) -> w = v)
2716, 26sylbi 216 . . . . 5 |- (0 = if(w = v, 0, 1) -> w = v)
2827eqcoms 1887 . . . 4 |- (if(w = v, 0, 1) = 0 -> w = v)
29 iftrue 2989 . . . 4 |- (w = v -> if(w = v, 0, 1) = 0)
3028, 29impbii 174 . . 3 |- (if(w = v, 0, 1) = 0 <-> w = v)
3115, 30syl6bb 595 . 2 |- ((w e. X /\ v e. X) -> ((wDv) = 0 <-> w = v))
32 equtr 1490 . . . . . . . . 9 |- (u = w -> (w = v -> u = v))
3332imdistani 491 . . . . . . . 8 |- ((u = w /\ w = v) -> (u = w /\ u = v))
34 iftrue 2989 . . . . . . . . . 10 |- (u = w -> if(u = w, 0, 1) = 0)
35 iftrue 2989 . . . . . . . . . 10 |- (u = v -> if(u = v, 0, 1) = 0)
3634, 35opreqan12d 4902 . . . . . . . . 9 |- ((u = w /\ u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (0 + 0))
37 0nn0 7322 . . . . . . . . . 10 |- 0 e. NN0
383, 37nn0addge1i 7341 . . . . . . . . 9 |- 0 <_ (0 + 0)
3936, 38syl5breqr 3373 . . . . . . . 8 |- ((u = w /\ u = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
4033, 39syl 12 . . . . . . 7 |- ((u = w /\ w = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
41 equequ2 1495 . . . . . . . . . . 11 |- (w = v -> (u = w <-> u = v))
4241notbid 673 . . . . . . . . . 10 |- (w = v -> (-. u = w <-> -. u = v))
4342biimpcd 172 . . . . . . . . 9 |- (-. u = w -> (w = v -> -. u = v))
4443imdistani 491 . . . . . . . 8 |- ((-. u = w /\ w = v) -> (-. u = w /\ -. u = v))
45 iffalse 2991 . . . . . . . . . 10 |- (-. u = w -> if(u = w, 0, 1) = 1)
46 iffalse 2991 . . . . . . . . . 10 |- (-. u = v -> if(u = v, 0, 1) = 1)
4745, 46opreqan12d 4902 . . . . . . . . 9 |- ((-. u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (1 + 1))
48 lt01 6871 . . . . . . . . . . 11 |- 0 < 1
493, 4, 48ltleii 6756 . . . . . . . . . 10 |- 0 <_ 1
504, 4addge0i 6777 . . . . . . . . . 10 |- ((0 <_ 1 /\ 0 <_ 1) -> 0 <_ (1 + 1))
5149, 49, 50mp2an 761 . . . . . . . . 9 |- 0 <_ (1 + 1)
5247, 51syl5breqr 3373 . . . . . . . 8 |- ((-. u = w /\ -. u = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
5344, 52syl 12 . . . . . . 7 |- ((-. u = w /\ w = v) -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
5440, 53pm2.61ian 534 . . . . . 6 |- (w = v -> 0 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
5529, 54eqbrtrd 3357 . . . . 5 |- (w = v -> if(w = v, 0, 1) <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
56 iffalse 2991 . . . . . 6 |- (-. w = v -> if(w = v, 0, 1) = 1)
57 neeq1 2024 . . . . . . . . . . . 12 |- (u = w -> (u =/= v <-> w =/= v))
5857biimprd 171 . . . . . . . . . . 11 |- (u = w -> (w =/= v -> u =/= v))
59 df-ne 2019 . . . . . . . . . . 11 |- (w =/= v <-> -. w = v)
60 df-ne 2019 . . . . . . . . . . 11 |- (u =/= v <-> -. u = v)
6158, 59, 603imtr3g 611 . . . . . . . . . 10 |- (u = w -> (-. w = v -> -. u = v))
6261imdistani 491 . . . . . . . . 9 |- ((u = w /\ -. w = v) -> (u = w /\ -. u = v))
6334, 46opreqan12d 4902 . . . . . . . . . . 11 |- ((u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (0 + 1))
64 ax1cn 6422 . . . . . . . . . . . 12 |- 1 e. CC
6564addid2i 6484 . . . . . . . . . . 11 |- (0 + 1) = 1
6663, 65syl6eq 1944 . . . . . . . . . 10 |- ((u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = 1)
674leidi 6790 . . . . . . . . . 10 |- 1 <_ 1
6866, 67syl5breqr 3373 . . . . . . . . 9 |- ((u = w /\ -. u = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
6962, 68syl 12 . . . . . . . 8 |- ((u = w /\ -. w = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
7069ex 402 . . . . . . 7 |- (u = w -> (-. w = v -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1))))
7145, 35opreqan12d 4902 . . . . . . . . . . 11 |- ((-. u = w /\ u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = (1 + 0))
7264addid1i 6483 . . . . . . . . . . 11 |- (1 + 0) = 1
7371, 72syl6eq 1944 . . . . . . . . . 10 |- ((-. u = w /\ u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = 1)
7473, 67syl5breqr 3373 . . . . . . . . 9 |- ((-. u = w /\ u = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
75 df-2 7154 . . . . . . . . . . 11 |- 2 = (1 + 1)
7647, 75syl6eqr 1946 . . . . . . . . . 10 |- ((-. u = w /\ -. u = v) -> (if(u = w, 0, 1) + if(u = v, 0, 1)) = 2)
77 2re 7163 . . . . . . . . . . 11 |- 2 e. RR
78 1lt2 7212 . . . . . . . . . . 11 |- 1 < 2
794, 77, 78ltleii 6756 . . . . . . . . . 10 |- 1 <_ 2
8076, 79syl5breqr 3373 . . . . . . . . 9 |- ((-. u = w /\ -. u = v) -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8174, 80pm2.61dan 535 . . . . . . . 8 |- (-. u = w -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8281a1d 15 . . . . . . 7 |- (-. u = w -> (-. w = v -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1))))
8370, 82pm2.61i 140 . . . . . 6 |- (-. w = v -> 1 <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8456, 83eqbrtrd 3357 . . . . 5 |- (-. w = v -> if(w = v, 0, 1) <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
8555, 84pm2.61i 140 . . . 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 = v, 0, 1) <_ (if(u = w, 0, 1) + if(u = v, 0, 1)))
87143adant3 896 . . 3 |- ((w e. X /\ v e. X /\ u e. X) -> (wDv) = if(w = v, 0, 1))
883, 4keepel 3030 . . . . . . . 8 |- if(u = w, 0, 1) e. RR
8988elisseti 2301 . . . . . . 7 |- if(u = w, 0, 1) e. _V
90 eqeq1 1890 . . . . . . . 8 |- (x = u -> (x = y <-> u = y))
9190ifbid 2996 . . . . . . 7 |- (x = u -> if(x = y, 0, 1) = if(u = y, 0, 1))
92 eqeq2 1893 . . . . . . . 8 |- (y = w -> (u = y <-> u = w))
9392ifbid 2996 . . . . . . 7 |- (y = w -> if(u = y, 0, 1) = if(u = w, 0, 1))
9489, 91, 93, 2oprabval2 4957 . . . . . 6 |- ((u e. X /\ w e. X) -> (uDw) = if(u = w, 0, 1))
9594ancoms 484 . . . . 5 |- ((w e. X /\ u e. X) -> (uDw) = if(u = w, 0, 1))
96953adant2 895 . . . 4 |- ((w e. X /\ v e. X /\ u e. X) -> (uDw) = if(u = w, 0, 1))
973, 4keepel 3030 . . . . . . . 8 |- if(u = v, 0, 1) e. RR
9897elisseti 2301 . . . . . . 7 |- if(u = v, 0, 1) e. _V
99 eqeq2 1893 . . . . . . . 8 |- (y = v -> (u = y <-> u = v))
10099ifbid 2996 . . . . . . 7 |- (y = v -> if(u = y, 0, 1) = if(u = v, 0, 1))
10198, 91, 100, 2oprabval2 4957 . . . . . 6 |- ((u e. X /\ v e. X) -> (uDv) = if(u = v, 0, 1))
102101ancoms 484 . . . . 5 |- ((v e. X /\ u e. X) -> (uDv) = if(u = v, 0, 1))
1031023adant1 894 . . . 4 |- ((w e. X /\ v e. X /\ u e. X) -> (uDv) = if(u = v, 0, 1))
10496, 103opreq12d 4900 . . 3 |- ((w e. X /\ v e. X /\ u e. X) -> ((uDw) + (uDv)) = (if(u = w, 0, 1) + if(u = v, 0, 1)))
10586, 87, 1043brtr4d 3367 . 2 |- ((w e. X /\ v e. X /\ u e. X) -> (wDv) <_ ((uDw) + (uDv)))
1061, 7, 31, 105ismeti 9079 1 |- D e. Met
Colors of variables: wff set class
Syntax hints:  -. wn 2   -> wi 3   \/ wo 239   /\ wa 240   /\ w3a 858   = wceq 1298   e. wcel 1300   =/= wne 2017  _Vcvv 2292  ifcif 2982   class class class wbr 3338  (class class class)co 4884  {copab2 4885  RRcr 6385  0cc0 6386  1c1 6387   + caddc 6389   <_ cle 6448  2c2 7145  Metcme 9066
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 1304  ax-gen 1305  ax-8 1306  ax-9 1307  ax-10 1308  ax-11 1309  ax-12 1310  ax-13 1311  ax-14 1312  ax-17 1317  ax-4 1319  ax-5o 1321  ax-6o 1324  ax-9o 1481  ax-10o 1500  ax-16 1580  ax-11o 1588  ax-ext 1865  ax-rep 3428  ax-sep 3438  ax-nul 3445  ax-pow 3481  ax-pr 3524  ax-un 3790  ax-inf2 5731
This theorem depends on definitions:  df-bi 164  df-or 241  df-an 242  df-3or 859  df-3an 860  df-ex 1327  df-sb 1536  df-eu 1775  df-mo 1776  df-clab 1872  df-cleq 1877  df-clel 1880  df-ne 2019  df-nel 2020  df-ral 2109  df-rex 2110  df-reu 2111  df-rab 2112  df-v 2294  df-sbc 2454  df-csb 2541  df-dif 2597  df-un 2600  df-in 2603  df-ss 2605  df-pss 2607  df-nul 2876  df-if 2983  df-pw 3035  df-sn 3049  df-pr 3050  df-tp 3052  df-op 3053  df-uni 3178  df-int 3215  df-iun 3257  df-br 3339  df-opab 3396  df-tr 3412  df-eprel 3583  df-id 3586  df-po 3591  df-so 3604  df-fr 3625  df-we 3644  df-ord 3660  df-on 3661  df-lim 3662  df-suc 3663  df-om 3950  df-xp 4000  df-rel 4001  df-cnv 4002  df-co 4003  df-dm 4004  df-rn 4005  df-res 4006  df-ima 4007  df-fun 4008  df-fn 4009  df-f 4010  df-f1 4011  df-fo 4012  df-f1o 4013  df-fv 4014  df-opr 4886  df-oprab 4887  df-mpt 5006  df-1st 5020  df-2nd 5021  df-iota 5089  df-rdg 5140  df-1o 5177  df-oadd 5179  df-omul 5180  df-er 5318  df-ec 5320  df-qs 5323  df-en 5427  df-dom 5428  df-sdom 5429  df-undef 5556  df-riota 5560  df-ni 6152  df-pli 6153  df-mi 6154  df-lti 6155  df-plpq 6187  df-mpq 6188  df-enq 6189  df-nq 6190  df-plq 6191  df-mq 6192  df-rq 6193  df-ltq 6194  df-1q 6195  df-np 6238  df-1p 6239  df-plp 6240  df-mp 6241  df-ltp 6242  df-plpr 6316  df-mpr 6317  df-enr 6318  df-nr 6319  df-plr 6320  df-mr 6321  df-ltr 6322  df-0r 6323  df-1r 6324  df-m1r 6325  df-c 6392  df-0 6393  df-1 6394  df-i 6395  df-r 6396  df-plus 6397  df-mul 6398  df-lt 6399  df-sub 6511  df-neg 6513  df-pnf 6654  df-mnf 6655  df-xr 6656  df-ltxr 6657  df-le 6658  df-n 7108  df-2 7154  df-n0 7309  df-met 9070
Copyright terms: Public domain