MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  dscopn Structured version   Unicode version

Theorem dscopn 20007
Description: The discrete metric generates the discrete topology. In particular, the discrete topology is metrizable. (Contributed by Mario Carneiro, 29-Jan-2014.)
Hypothesis
Ref Expression
dscmet.1  |-  D  =  ( x  e.  X ,  y  e.  X  |->  if ( x  =  y ,  0 ,  1 ) )
Assertion
Ref Expression
dscopn  |-  ( X  e.  V  ->  ( MetOpen
`  D )  =  ~P X )
Distinct variable group:    x, y, X
Allowed substitution hints:    D( x, y)    V( x, y)

Proof of Theorem dscopn
Dummy variables  v  u  w are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 dscmet.1 . . . . . . 7  |-  D  =  ( x  e.  X ,  y  e.  X  |->  if ( x  =  y ,  0 ,  1 ) )
21dscmet 20006 . . . . . 6  |-  ( X  e.  V  ->  D  e.  ( Met `  X
) )
3 metxmet 19750 . . . . . 6  |-  ( D  e.  ( Met `  X
)  ->  D  e.  ( *Met `  X
) )
42, 3syl 16 . . . . 5  |-  ( X  e.  V  ->  D  e.  ( *Met `  X ) )
5 eqid 2433 . . . . . 6  |-  ( MetOpen `  D )  =  (
MetOpen `  D )
65elmopn 19858 . . . . 5  |-  ( D  e.  ( *Met `  X )  ->  (
u  e.  ( MetOpen `  D )  <->  ( u  C_  X  /\  A. v  e.  u  E. w  e.  ran  ( ball `  D
) ( v  e.  w  /\  w  C_  u ) ) ) )
74, 6syl 16 . . . 4  |-  ( X  e.  V  ->  (
u  e.  ( MetOpen `  D )  <->  ( u  C_  X  /\  A. v  e.  u  E. w  e.  ran  ( ball `  D
) ( v  e.  w  /\  w  C_  u ) ) ) )
8 simpll 746 . . . . . . . . 9  |-  ( ( ( X  e.  V  /\  u  C_  X )  /\  v  e.  u
)  ->  X  e.  V )
9 ssel2 3339 . . . . . . . . . 10  |-  ( ( u  C_  X  /\  v  e.  u )  ->  v  e.  X )
109adantll 706 . . . . . . . . 9  |-  ( ( ( X  e.  V  /\  u  C_  X )  /\  v  e.  u
)  ->  v  e.  X )
118, 10jca 529 . . . . . . . 8  |-  ( ( ( X  e.  V  /\  u  C_  X )  /\  v  e.  u
)  ->  ( X  e.  V  /\  v  e.  X ) )
12 elsn 3879 . . . . . . . . . . . 12  |-  ( w  e.  { v }  <-> 
w  =  v )
13 eleq1a 2502 . . . . . . . . . . . . . . 15  |-  ( v  e.  X  ->  (
w  =  v  ->  w  e.  X )
)
14 simpl 454 . . . . . . . . . . . . . . . 16  |-  ( ( w  e.  X  /\  ( v D w )  <  1 )  ->  w  e.  X
)
1514a1i 11 . . . . . . . . . . . . . . 15  |-  ( v  e.  X  ->  (
( w  e.  X  /\  ( v D w )  <  1 )  ->  w  e.  X
) )
16 eqeq12 2445 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( x  =  v  /\  y  =  w )  ->  ( x  =  y  <-> 
v  =  w ) )
1716ifbid 3799 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( x  =  v  /\  y  =  w )  ->  if ( x  =  y ,  0 ,  1 )  =  if ( v  =  w ,  0 ,  1 ) )
18 0re 9373 . . . . . . . . . . . . . . . . . . . . . 22  |-  0  e.  RR
19 1re 9372 . . . . . . . . . . . . . . . . . . . . . 22  |-  1  e.  RR
2018, 19keepel 3845 . . . . . . . . . . . . . . . . . . . . 21  |-  if ( v  =  w ,  0 ,  1 )  e.  RR
2120elexi 2972 . . . . . . . . . . . . . . . . . . . 20  |-  if ( v  =  w ,  0 ,  1 )  e.  _V
2217, 1, 21ovmpt2a 6210 . . . . . . . . . . . . . . . . . . 19  |-  ( ( v  e.  X  /\  w  e.  X )  ->  ( v D w )  =  if ( v  =  w ,  0 ,  1 ) )
2322breq1d 4290 . . . . . . . . . . . . . . . . . 18  |-  ( ( v  e.  X  /\  w  e.  X )  ->  ( ( v D w )  <  1  <->  if ( v  =  w ,  0 ,  1 )  <  1 ) )
2419ltnri 9470 . . . . . . . . . . . . . . . . . . . . . 22  |-  -.  1  <  1
25 iffalse 3787 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( -.  v  =  w  ->  if ( v  =  w ,  0 ,  1 )  =  1 )
2625breq1d 4290 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( -.  v  =  w  -> 
( if ( v  =  w ,  0 ,  1 )  <  1  <->  1  <  1
) )
2724, 26mtbiri 303 . . . . . . . . . . . . . . . . . . . . 21  |-  ( -.  v  =  w  ->  -.  if ( v  =  w ,  0 ,  1 )  <  1
)
2827con4i 130 . . . . . . . . . . . . . . . . . . . 20  |-  ( if ( v  =  w ,  0 ,  1 )  <  1  -> 
v  =  w )
29 iftrue 3785 . . . . . . . . . . . . . . . . . . . . 21  |-  ( v  =  w  ->  if ( v  =  w ,  0 ,  1 )  =  0 )
30 0lt1 9849 . . . . . . . . . . . . . . . . . . . . 21  |-  0  <  1
3129, 30syl6eqbr 4317 . . . . . . . . . . . . . . . . . . . 20  |-  ( v  =  w  ->  if ( v  =  w ,  0 ,  1 )  <  1 )
3228, 31impbii 188 . . . . . . . . . . . . . . . . . . 19  |-  ( if ( v  =  w ,  0 ,  1 )  <  1  <->  v  =  w )
33 equcom 1731 . . . . . . . . . . . . . . . . . . 19  |-  ( v  =  w  <->  w  =  v )
3432, 33bitri 249 . . . . . . . . . . . . . . . . . 18  |-  ( if ( v  =  w ,  0 ,  1 )  <  1  <->  w  =  v )
3523, 34syl6rbb 262 . . . . . . . . . . . . . . . . 17  |-  ( ( v  e.  X  /\  w  e.  X )  ->  ( w  =  v  <-> 
( v D w )  <  1 ) )
36 simpr 458 . . . . . . . . . . . . . . . . . 18  |-  ( ( v  e.  X  /\  w  e.  X )  ->  w  e.  X )
3736biantrurd 505 . . . . . . . . . . . . . . . . 17  |-  ( ( v  e.  X  /\  w  e.  X )  ->  ( ( v D w )  <  1  <->  ( w  e.  X  /\  ( v D w )  <  1 ) ) )
3835, 37bitrd 253 . . . . . . . . . . . . . . . 16  |-  ( ( v  e.  X  /\  w  e.  X )  ->  ( w  =  v  <-> 
( w  e.  X  /\  ( v D w )  <  1 ) ) )
3938ex 434 . . . . . . . . . . . . . . 15  |-  ( v  e.  X  ->  (
w  e.  X  -> 
( w  =  v  <-> 
( w  e.  X  /\  ( v D w )  <  1 ) ) ) )
4013, 15, 39pm5.21ndd 354 . . . . . . . . . . . . . 14  |-  ( v  e.  X  ->  (
w  =  v  <->  ( w  e.  X  /\  (
v D w )  <  1 ) ) )
4140adantl 463 . . . . . . . . . . . . 13  |-  ( ( X  e.  V  /\  v  e.  X )  ->  ( w  =  v  <-> 
( w  e.  X  /\  ( v D w )  <  1 ) ) )
42 1rp 10982 . . . . . . . . . . . . . . . 16  |-  1  e.  RR+
43 rpxr 10985 . . . . . . . . . . . . . . . 16  |-  ( 1  e.  RR+  ->  1  e. 
RR* )
4442, 43ax-mp 5 . . . . . . . . . . . . . . 15  |-  1  e.  RR*
45 elbl 19804 . . . . . . . . . . . . . . 15  |-  ( ( D  e.  ( *Met `  X )  /\  v  e.  X  /\  1  e.  RR* )  ->  ( w  e.  ( v ( ball `  D
) 1 )  <->  ( w  e.  X  /\  (
v D w )  <  1 ) ) )
4644, 45mp3an3 1296 . . . . . . . . . . . . . 14  |-  ( ( D  e.  ( *Met `  X )  /\  v  e.  X
)  ->  ( w  e.  ( v ( ball `  D ) 1 )  <-> 
( w  e.  X  /\  ( v D w )  <  1 ) ) )
474, 46sylan 468 . . . . . . . . . . . . 13  |-  ( ( X  e.  V  /\  v  e.  X )  ->  ( w  e.  ( v ( ball `  D
) 1 )  <->  ( w  e.  X  /\  (
v D w )  <  1 ) ) )
4841, 47bitr4d 256 . . . . . . . . . . . 12  |-  ( ( X  e.  V  /\  v  e.  X )  ->  ( w  =  v  <-> 
w  e.  ( v ( ball `  D
) 1 ) ) )
4912, 48syl5bb 257 . . . . . . . . . . 11  |-  ( ( X  e.  V  /\  v  e.  X )  ->  ( w  e.  {
v }  <->  w  e.  ( v ( ball `  D ) 1 ) ) )
5049eqrdv 2431 . . . . . . . . . 10  |-  ( ( X  e.  V  /\  v  e.  X )  ->  { v }  =  ( v ( ball `  D ) 1 ) )
51 blelrn 19833 . . . . . . . . . . . 12  |-  ( ( D  e.  ( *Met `  X )  /\  v  e.  X  /\  1  e.  RR* )  ->  ( v ( ball `  D ) 1 )  e.  ran  ( ball `  D ) )
5244, 51mp3an3 1296 . . . . . . . . . . 11  |-  ( ( D  e.  ( *Met `  X )  /\  v  e.  X
)  ->  ( v
( ball `  D )
1 )  e.  ran  ( ball `  D )
)
534, 52sylan 468 . . . . . . . . . 10  |-  ( ( X  e.  V  /\  v  e.  X )  ->  ( v ( ball `  D ) 1 )  e.  ran  ( ball `  D ) )
5450, 53eqeltrd 2507 . . . . . . . . 9  |-  ( ( X  e.  V  /\  v  e.  X )  ->  { v }  e.  ran  ( ball `  D
) )
55 snssi 4005 . . . . . . . . . 10  |-  ( v  e.  u  ->  { v }  C_  u )
56 ssnid 3894 . . . . . . . . . 10  |-  v  e. 
{ v }
5755, 56jctil 534 . . . . . . . . 9  |-  ( v  e.  u  ->  (
v  e.  { v }  /\  { v }  C_  u )
)
58 eleq2 2494 . . . . . . . . . . 11  |-  ( w  =  { v }  ->  ( v  e.  w  <->  v  e.  {
v } ) )
59 sseq1 3365 . . . . . . . . . . 11  |-  ( w  =  { v }  ->  ( w  C_  u 
<->  { v }  C_  u ) )
6058, 59anbi12d 703 . . . . . . . . . 10  |-  ( w  =  { v }  ->  ( ( v  e.  w  /\  w  C_  u )  <->  ( v  e.  { v }  /\  { v }  C_  u
) ) )
6160rspcev 3062 . . . . . . . . 9  |-  ( ( { v }  e.  ran  ( ball `  D
)  /\  ( v  e.  { v }  /\  { v }  C_  u
) )  ->  E. w  e.  ran  ( ball `  D
) ( v  e.  w  /\  w  C_  u ) )
6254, 57, 61syl2an 474 . . . . . . . 8  |-  ( ( ( X  e.  V  /\  v  e.  X
)  /\  v  e.  u )  ->  E. w  e.  ran  ( ball `  D
) ( v  e.  w  /\  w  C_  u ) )
6311, 62sylancom 660 . . . . . . 7  |-  ( ( ( X  e.  V  /\  u  C_  X )  /\  v  e.  u
)  ->  E. w  e.  ran  ( ball `  D
) ( v  e.  w  /\  w  C_  u ) )
6463ralrimiva 2789 . . . . . 6  |-  ( ( X  e.  V  /\  u  C_  X )  ->  A. v  e.  u  E. w  e.  ran  ( ball `  D )
( v  e.  w  /\  w  C_  u ) )
6564ex 434 . . . . 5  |-  ( X  e.  V  ->  (
u  C_  X  ->  A. v  e.  u  E. w  e.  ran  ( ball `  D ) ( v  e.  w  /\  w  C_  u ) ) )
6665pm4.71d 627 . . . 4  |-  ( X  e.  V  ->  (
u  C_  X  <->  ( u  C_  X  /\  A. v  e.  u  E. w  e.  ran  ( ball `  D
) ( v  e.  w  /\  w  C_  u ) ) ) )
677, 66bitr4d 256 . . 3  |-  ( X  e.  V  ->  (
u  e.  ( MetOpen `  D )  <->  u  C_  X
) )
68 selpw 3855 . . 3  |-  ( u  e.  ~P X  <->  u  C_  X
)
6967, 68syl6bbr 263 . 2  |-  ( X  e.  V  ->  (
u  e.  ( MetOpen `  D )  <->  u  e.  ~P X ) )
7069eqrdv 2431 1  |-  ( X  e.  V  ->  ( MetOpen
`  D )  =  ~P X )
Colors of variables: wff setvar class
Syntax hints:   -. wn 3    -> wi 4    <-> wb 184    /\ wa 369    = wceq 1362    e. wcel 1755   A.wral 2705   E.wrex 2706    C_ wss 3316   ifcif 3779   ~Pcpw 3848   {csn 3865   class class class wbr 4280   ran crn 4828   ` cfv 5406  (class class class)co 6080    e. cmpt2 6082   RRcr 9268   0cc0 9269   1c1 9270   RR*cxr 9404    < clt 9405   RR+crp 10978   *Metcxmt 17644   Metcme 17645   ballcbl 17646   MetOpencmopn 17649
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1594  ax-4 1605  ax-5 1669  ax-6 1707  ax-7 1727  ax-8 1757  ax-9 1759  ax-10 1774  ax-11 1779  ax-12 1791  ax-13 1942  ax-ext 2414  ax-sep 4401  ax-nul 4409  ax-pow 4458  ax-pr 4519  ax-un 6361  ax-cnex 9325  ax-resscn 9326  ax-1cn 9327  ax-icn 9328  ax-addcl 9329  ax-addrcl 9330  ax-mulcl 9331  ax-mulrcl 9332  ax-mulcom 9333  ax-addass 9334  ax-mulass 9335  ax-distr 9336  ax-i2m1 9337  ax-1ne0 9338  ax-1rid 9339  ax-rnegex 9340  ax-rrecex 9341  ax-cnre 9342  ax-pre-lttri 9343  ax-pre-lttrn 9344  ax-pre-ltadd 9345  ax-pre-mulgt0 9346  ax-pre-sup 9347
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 959  df-3an 960  df-tru 1365  df-ex 1590  df-nf 1593  df-sb 1700  df-eu 2258  df-mo 2259  df-clab 2420  df-cleq 2426  df-clel 2429  df-nfc 2558  df-ne 2598  df-nel 2599  df-ral 2710  df-rex 2711  df-reu 2712  df-rmo 2713  df-rab 2714  df-v 2964  df-sbc 3176  df-csb 3277  df-dif 3319  df-un 3321  df-in 3323  df-ss 3330  df-pss 3332  df-nul 3626  df-if 3780  df-pw 3850  df-sn 3866  df-pr 3868  df-tp 3870  df-op 3872  df-uni 4080  df-iun 4161  df-br 4281  df-opab 4339  df-mpt 4340  df-tr 4374  df-eprel 4619  df-id 4623  df-po 4628  df-so 4629  df-fr 4666  df-we 4668  df-ord 4709  df-on 4710  df-lim 4711  df-suc 4712  df-xp 4833  df-rel 4834  df-cnv 4835  df-co 4836  df-dm 4837  df-rn 4838  df-res 4839  df-ima 4840  df-iota 5369  df-fun 5408  df-fn 5409  df-f 5410  df-f1 5411  df-fo 5412  df-f1o 5413  df-fv 5414  df-riota 6039  df-ov 6083  df-oprab 6084  df-mpt2 6085  df-om 6466  df-1st 6566  df-2nd 6567  df-recs 6818  df-rdg 6852  df-er 7089  df-map 7204  df-en 7299  df-dom 7300  df-sdom 7301  df-sup 7679  df-pnf 9407  df-mnf 9408  df-xr 9409  df-ltxr 9410  df-le 9411  df-sub 9584  df-neg 9585  df-div 9981  df-nn 10310  df-2 10367  df-n0 10567  df-z 10634  df-uz 10849  df-q 10941  df-rp 10979  df-xneg 11076  df-xadd 11077  df-xmul 11078  df-topgen 14364  df-psmet 17652  df-xmet 17653  df-met 17654  df-bl 17655  df-mopn 17656  df-bases 18346
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator