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

Theorem dscopn 24853
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 𝐷 = (𝑥 ∈ 𝑋, 𝑦 ∈ 𝑋 ↦ if(𝑥 = 𝑦, 0, 1))
Assertion
Ref Expression
dscopn (𝑋 ∈ 𝑉 → (MetOpen‘𝐷) = 𝒫 𝑋)
Distinct variable group:   𝑥,𝑦,𝑋
Allowed substitution hints:   𝐷(𝑥, 𝑦)   𝑉(𝑥, 𝑦)

Proof of Theorem dscopn
Dummy variables 𝑣 𝑢 𝑤 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 dscmet.1 . . . . . . 7 𝐷 = (𝑥 ∈ 𝑋, 𝑦 ∈ 𝑋 ↦ if(𝑥 = 𝑦, 0, 1))
21dscmet 24852 . . . . . 6 (𝑋 ∈ 𝑉 → 𝐷 ∈ (Met‘𝑋))
3 metxmet 24614 . . . . . 6 (𝐷 ∈ (Met‘𝑋) → 𝐷 ∈ (∞Met‘𝑋))
42, 3syl 18 . . . . 5 (𝑋 ∈ 𝑉 → 𝐷 ∈ (∞Met‘𝑋))
5 eqid 2760 . . . . . 6 (MetOpen‘𝐷) = (MetOpen‘𝐷)
65elmopn 24722 . . . . 5 (𝐷 ∈ (∞Met‘𝑋) → (𝑢 ∈ (MetOpen‘𝐷) ↔ (𝑢 ⊆ 𝑋 ∧ ∀𝑣 ∈ 𝑢 ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))))
74, 6syl 18 . . . 4 (𝑋 ∈ 𝑉 → (𝑢 ∈ (MetOpen‘𝐷) ↔ (𝑢 ⊆ 𝑋 ∧ ∀𝑣 ∈ 𝑢 ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))))
8 simpll 779 . . . . . . . . 9 (((𝑋 ∈ 𝑉 ∧ 𝑢 ⊆ 𝑋) ∧ 𝑣 ∈ 𝑢) → 𝑋 ∈ 𝑉)
9 ssel2 3925 . . . . . . . . . 10 ((𝑢 ⊆ 𝑋 ∧ 𝑣 ∈ 𝑢) → 𝑣 ∈ 𝑋)
109adantll 727 . . . . . . . . 9 (((𝑋 ∈ 𝑉 ∧ 𝑢 ⊆ 𝑋) ∧ 𝑣 ∈ 𝑢) → 𝑣 ∈ 𝑋)
118, 10jca 521 . . . . . . . 8 (((𝑋 ∈ 𝑉 ∧ 𝑢 ⊆ 𝑋) ∧ 𝑣 ∈ 𝑢) → (𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋))
12 velsn 4599 . . . . . . . . . . . 12 (𝑤 ∈ {𝑣} ↔ 𝑤 = 𝑣)
13 eleq1a 2855 . . . . . . . . . . . . . . 15 (𝑣 ∈ 𝑋 → (𝑤 = 𝑣 → 𝑤 ∈ 𝑋))
14 simpl 488 . . . . . . . . . . . . . . . 16 ((𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1) → 𝑤 ∈ 𝑋)
1514a1i 11 . . . . . . . . . . . . . . 15 (𝑣 ∈ 𝑋 → ((𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1) → 𝑤 ∈ 𝑋))
16 eqeq12 2777 . . . . . . . . . . . . . . . . . . . . 21 ((𝑥 = 𝑣 ∧ 𝑦 = 𝑤) → (𝑥 = 𝑦 ↔ 𝑣 = 𝑤))
1716ifbid 4505 . . . . . . . . . . . . . . . . . . . 20 ((𝑥 = 𝑣 ∧ 𝑦 = 𝑤) → if(𝑥 = 𝑦, 0, 1) = if(𝑣 = 𝑤, 0, 1))
18 0re 11281 . . . . . . . . . . . . . . . . . . . . . 22 0 ∈ ℝ
19 1re 11279 . . . . . . . . . . . . . . . . . . . . . 22 1 ∈ ℝ
2018, 19ifcli 4529 . . . . . . . . . . . . . . . . . . . . 21 if(𝑣 = 𝑤, 0, 1) ∈ ℝ
2120elexi 3472 . . . . . . . . . . . . . . . . . . . 20 if(𝑣 = 𝑤, 0, 1) ∈ V
2217, 1, 21ovmpoa 7563 . . . . . . . . . . . . . . . . . . 19 ((𝑣 ∈ 𝑋 ∧ 𝑤 ∈ 𝑋) → (𝑣𝐷𝑤) = if(𝑣 = 𝑤, 0, 1))
2322breq1d 5112 . . . . . . . . . . . . . . . . . 18 ((𝑣 ∈ 𝑋 ∧ 𝑤 ∈ 𝑋) → ((𝑣𝐷𝑤) < 1 ↔ if(𝑣 = 𝑤, 0, 1) < 1))
2419ltnri 11390 . . . . . . . . . . . . . . . . . . . . . 22 ¬ 1 < 1
25 iffalse 4490 . . . . . . . . . . . . . . . . . . . . . . 23 (¬ 𝑣 = 𝑤 → if(𝑣 = 𝑤, 0, 1) = 1)
2625breq1d 5112 . . . . . . . . . . . . . . . . . . . . . 22 (¬ 𝑣 = 𝑤 → (if(𝑣 = 𝑤, 0, 1) < 1 ↔ 1 < 1))
2724, 26mtbiri 330 . . . . . . . . . . . . . . . . . . . . 21 (¬ 𝑣 = 𝑤 → ¬ if(𝑣 = 𝑤, 0, 1) < 1)
2827con4i 115 . . . . . . . . . . . . . . . . . . . 20 (if(𝑣 = 𝑤, 0, 1) < 1 → 𝑣 = 𝑤)
29 iftrue 4487 . . . . . . . . . . . . . . . . . . . . 21 (𝑣 = 𝑤 → if(𝑣 = 𝑤, 0, 1) = 0)
30 0lt1 11807 . . . . . . . . . . . . . . . . . . . . 21 0 < 1
3129, 30eqbrtrdi 5143 . . . . . . . . . . . . . . . . . . . 20 (𝑣 = 𝑤 → if(𝑣 = 𝑤, 0, 1) < 1)
3228, 31impbii 212 . . . . . . . . . . . . . . . . . . 19 (if(𝑣 = 𝑤, 0, 1) < 1 ↔ 𝑣 = 𝑤)
33 equcom 2051 . . . . . . . . . . . . . . . . . . 19 (𝑣 = 𝑤 ↔ 𝑤 = 𝑣)
3432, 33bitri 278 . . . . . . . . . . . . . . . . . 18 (if(𝑣 = 𝑤, 0, 1) < 1 ↔ 𝑤 = 𝑣)
3523, 34bitr2di 291 . . . . . . . . . . . . . . . . 17 ((𝑣 ∈ 𝑋 ∧ 𝑤 ∈ 𝑋) → (𝑤 = 𝑣 ↔ (𝑣𝐷𝑤) < 1))
36 simpr 490 . . . . . . . . . . . . . . . . . 18 ((𝑣 ∈ 𝑋 ∧ 𝑤 ∈ 𝑋) → 𝑤 ∈ 𝑋)
3736biantrurd 542 . . . . . . . . . . . . . . . . 17 ((𝑣 ∈ 𝑋 ∧ 𝑤 ∈ 𝑋) → ((𝑣𝐷𝑤) < 1 ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
3835, 37bitrd 282 . . . . . . . . . . . . . . . 16 ((𝑣 ∈ 𝑋 ∧ 𝑤 ∈ 𝑋) → (𝑤 = 𝑣 ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
3938ex 418 . . . . . . . . . . . . . . 15 (𝑣 ∈ 𝑋 → (𝑤 ∈ 𝑋 → (𝑤 = 𝑣 ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1))))
4013, 15, 39pm5.21ndd 382 . . . . . . . . . . . . . 14 (𝑣 ∈ 𝑋 → (𝑤 = 𝑣 ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
4140adantl 487 . . . . . . . . . . . . 13 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → (𝑤 = 𝑣 ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
42 1xr 11339 . . . . . . . . . . . . . . 15 1 ∈ ℝ*
43 elbl 24668 . . . . . . . . . . . . . . 15 ((𝐷 ∈ (∞Met‘𝑋) ∧ 𝑣 ∈ 𝑋 ∧ 1 ∈ ℝ*) → (𝑤 ∈ (𝑣(ball‘𝐷)1) ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
4442, 43mp3an3 1479 . . . . . . . . . . . . . 14 ((𝐷 ∈ (∞Met‘𝑋) ∧ 𝑣 ∈ 𝑋) → (𝑤 ∈ (𝑣(ball‘𝐷)1) ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
454, 44sylan 592 . . . . . . . . . . . . 13 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → (𝑤 ∈ (𝑣(ball‘𝐷)1) ↔ (𝑤 ∈ 𝑋 ∧ (𝑣𝐷𝑤) < 1)))
4641, 45bitr4d 285 . . . . . . . . . . . 12 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → (𝑤 = 𝑣 ↔ 𝑤 ∈ (𝑣(ball‘𝐷)1)))
4712, 46bitrid 286 . . . . . . . . . . 11 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → (𝑤 ∈ {𝑣} ↔ 𝑤 ∈ (𝑣(ball‘𝐷)1)))
4847eqrdv 2758 . . . . . . . . . 10 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → {𝑣} = (𝑣(ball‘𝐷)1))
49 blelrn 24697 . . . . . . . . . . . 12 ((𝐷 ∈ (∞Met‘𝑋) ∧ 𝑣 ∈ 𝑋 ∧ 1 ∈ ℝ*) → (𝑣(ball‘𝐷)1) ∈ ran (ball‘𝐷))
5042, 49mp3an3 1479 . . . . . . . . . . 11 ((𝐷 ∈ (∞Met‘𝑋) ∧ 𝑣 ∈ 𝑋) → (𝑣(ball‘𝐷)1) ∈ ran (ball‘𝐷))
514, 50sylan 592 . . . . . . . . . 10 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → (𝑣(ball‘𝐷)1) ∈ ran (ball‘𝐷))
5248, 51eqeltrd 2860 . . . . . . . . 9 ((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) → {𝑣} ∈ ran (ball‘𝐷))
53 snssi 4745 . . . . . . . . . 10 (𝑣 ∈ 𝑢 → {𝑣} ⊆ 𝑢)
54 vsnid 4623 . . . . . . . . . 10 𝑣 ∈ {𝑣}
5553, 54jctil 529 . . . . . . . . 9 (𝑣 ∈ 𝑢 → (𝑣 ∈ {𝑣} ∧ {𝑣} ⊆ 𝑢))
56 eleq2 2849 . . . . . . . . . . 11 (𝑤 = {𝑣} → (𝑣 ∈ 𝑤 ↔ 𝑣 ∈ {𝑣}))
57 sseq1 3955 . . . . . . . . . . 11 (𝑤 = {𝑣} → (𝑤 ⊆ 𝑢 ↔ {𝑣} ⊆ 𝑢))
5856, 57anbi12d 644 . . . . . . . . . 10 (𝑤 = {𝑣} → ((𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢) ↔ (𝑣 ∈ {𝑣} ∧ {𝑣} ⊆ 𝑢)))
5958rspcev 3576 . . . . . . . . 9 (({𝑣} ∈ ran (ball‘𝐷) ∧ (𝑣 ∈ {𝑣} ∧ {𝑣} ⊆ 𝑢)) → ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))
6052, 55, 59syl2an 608 . . . . . . . 8 (((𝑋 ∈ 𝑉 ∧ 𝑣 ∈ 𝑋) ∧ 𝑣 ∈ 𝑢) → ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))
6111, 60sylancom 600 . . . . . . 7 (((𝑋 ∈ 𝑉 ∧ 𝑢 ⊆ 𝑋) ∧ 𝑣 ∈ 𝑢) → ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))
6261ralrimiva 3154 . . . . . 6 ((𝑋 ∈ 𝑉 ∧ 𝑢 ⊆ 𝑋) → ∀𝑣 ∈ 𝑢 ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))
6362ex 418 . . . . 5 (𝑋 ∈ 𝑉 → (𝑢 ⊆ 𝑋 → ∀𝑣 ∈ 𝑢 ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢)))
6463pm4.71d 571 . . . 4 (𝑋 ∈ 𝑉 → (𝑢 ⊆ 𝑋 ↔ (𝑢 ⊆ 𝑋 ∧ ∀𝑣 ∈ 𝑢 ∃𝑤 ∈ ran (ball‘𝐷)(𝑣 ∈ 𝑤 ∧ 𝑤 ⊆ 𝑢))))
657, 64bitr4d 285 . . 3 (𝑋 ∈ 𝑉 → (𝑢 ∈ (MetOpen‘𝐷) ↔ 𝑢 ⊆ 𝑋))
66 velpw 4561 . . 3 (𝑢 ∈ 𝒫 𝑋 ↔ 𝑢 ⊆ 𝑋)
6765, 66bitr4di 292 . 2 (𝑋 ∈ 𝑉 → (𝑢 ∈ (MetOpen‘𝐷) ↔ 𝑢 ∈ 𝒫 𝑋))
6867eqrdv 2758 1 (𝑋 ∈ 𝑉 → (MetOpen‘𝐷) = 𝒫 𝑋)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3   → wi 4   ↔ wb 209   ∧ wa 401   = wceq 1570   ∈ wcel 2145  ∀wral 3076  ∃wrex 3086   ⊆ wss 3898  ifcif 4481  𝒫 cpw 4556  {csn 4583   class class class wbr 5102  ran crn 5648  ‘cfv 6527  (class class class)co 7408   ∈ cmpo 7410  ℝcr 11170  0cc0 11171  1c1 11172  ℝ*cxr 11313   < clt 11314  ∞Metcxmet 21624  Metcmet 21625  ballcbl 21626  MetOpencmopn 21629
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1943  ax-6 2000  ax-7 2041  ax-8 2147  ax-9 2155  ax-10 2178  ax-11 2194  ax-12 2213  ax-ext 2732  ax-sep 5248  ax-nul 5259  ax-pow 5326  ax-pr 5390  ax-un 7734  ax-cnex 11227  ax-resscn 11228  ax-1cn 11229  ax-icn 11230  ax-addcl 11231  ax-addrcl 11232  ax-mulcl 11233  ax-mulrcl 11234  ax-mulcom 11235  ax-addass 11236  ax-mulass 11237  ax-distr 11238  ax-i2m1 11239  ax-1ne0 11240  ax-1rid 11241  ax-rnegex 11242  ax-rrecex 11243  ax-cnre 11244  ax-pre-lttri 11245  ax-pre-lttrn 11246  ax-pre-ltadd 11247  ax-pre-mulgt0 11248  ax-pre-sup 11249
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2100  df-mo 2564  df-eu 2594  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ne 2956  df-nel 3062  df-ral 3077  df-rex 3087  df-rmo 3365  df-reu 3366  df-rab 3413  df-v 3452  df-sbc 3739  df-csb 3847  df-dif 3901  df-un 3903  df-in 3905  df-ss 3915  df-pss 3918  df-nul 4279  df-if 4482  df-pw 4558  df-sn 4584  df-pr 4586  df-op 4590  df-uni 4867  df-iun 4952  df-br 5103  df-opab 5167  df-mpt 5186  df-tr 5212  df-id 5542  df-eprel 5547  df-po 5555  df-so 5556  df-fr 5600  df-we 5602  df-xp 5653  df-rel 5654  df-cnv 5655  df-co 5656  df-dm 5657  df-rn 5658  df-res 5659  df-ima 5660  df-pred 6293  df-ord 6354  df-on 6355  df-lim 6356  df-suc 6357  df-iota 6483  df-fun 6529  df-fn 6530  df-f 6531  df-f1 6532  df-fo 6533  df-f1o 6534  df-fv 6535  df-riota 7365  df-ov 7411  df-oprab 7412  df-mpo 7413  df-om 7861  df-1st 7984  df-2nd 7985  df-frecs 8277  df-wrecs 8308  df-recs 8357  df-rdg 8396  df-er 8695  df-map 8827  df-en 8952  df-dom 8953  df-sdom 8954  df-sup 9412  df-inf 9413  df-pnf 11316  df-mnf 11317  df-xr 11318  df-ltxr 11319  df-le 11320  df-sub 11514  df-neg 11515  df-div 11943  df-nn 12305  df-2 12374  df-n0 12576  df-z 12663  df-uz 12935  df-q 13045  df-rp 13090  df-xneg 13210  df-xadd 13211  df-xmul 13212  df-topgen 17575  df-psmet 21631  df-xmet 21632  df-met 21633  df-bl 21634  df-mopn 21635  df-bases 23225
This theorem is used by: (None)
  Copyright terms: Public domain W3C validator