Metamath Proof Explorer


Theorem reperflem

Description: A subset of the real numbers that is closed under addition with real numbers is perfect. (Contributed by Mario Carneiro, 26-Dec-2016)

Ref Expression
Hypotheses recld2.1 𝐽 = ( TopOpen ‘ ℂfld )
reperflem.2 ( ( 𝑢𝑆𝑣 ∈ ℝ ) → ( 𝑢 + 𝑣 ) ∈ 𝑆 )
reperflem.3 𝑆 ⊆ ℂ
Assertion reperflem ( 𝐽t 𝑆 ) ∈ Perf

Proof

Step Hyp Ref Expression
1 recld2.1 𝐽 = ( TopOpen ‘ ℂfld )
2 reperflem.2 ( ( 𝑢𝑆𝑣 ∈ ℝ ) → ( 𝑢 + 𝑣 ) ∈ 𝑆 )
3 reperflem.3 𝑆 ⊆ ℂ
4 cnxmet ( abs ∘ − ) ∈ ( ∞Met ‘ ℂ )
5 3 sseli ( 𝑢𝑆𝑢 ∈ ℂ )
6 1 cnfldtopn 𝐽 = ( MetOpen ‘ ( abs ∘ − ) )
7 6 neibl ( ( ( abs ∘ − ) ∈ ( ∞Met ‘ ℂ ) ∧ 𝑢 ∈ ℂ ) → ( 𝑛 ∈ ( ( nei ‘ 𝐽 ) ‘ { 𝑢 } ) ↔ ( 𝑛 ⊆ ℂ ∧ ∃ 𝑟 ∈ ℝ+ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ⊆ 𝑛 ) ) )
8 4 5 7 sylancr ( 𝑢𝑆 → ( 𝑛 ∈ ( ( nei ‘ 𝐽 ) ‘ { 𝑢 } ) ↔ ( 𝑛 ⊆ ℂ ∧ ∃ 𝑟 ∈ ℝ+ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ⊆ 𝑛 ) ) )
9 ssrin ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ⊆ 𝑛 → ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ⊆ ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) )
10 2 ralrimiva ( 𝑢𝑆 → ∀ 𝑣 ∈ ℝ ( 𝑢 + 𝑣 ) ∈ 𝑆 )
11 rpre ( 𝑟 ∈ ℝ+𝑟 ∈ ℝ )
12 11 rehalfcld ( 𝑟 ∈ ℝ+ → ( 𝑟 / 2 ) ∈ ℝ )
13 oveq2 ( 𝑣 = ( 𝑟 / 2 ) → ( 𝑢 + 𝑣 ) = ( 𝑢 + ( 𝑟 / 2 ) ) )
14 13 eleq1d ( 𝑣 = ( 𝑟 / 2 ) → ( ( 𝑢 + 𝑣 ) ∈ 𝑆 ↔ ( 𝑢 + ( 𝑟 / 2 ) ) ∈ 𝑆 ) )
15 14 rspccva ( ( ∀ 𝑣 ∈ ℝ ( 𝑢 + 𝑣 ) ∈ 𝑆 ∧ ( 𝑟 / 2 ) ∈ ℝ ) → ( 𝑢 + ( 𝑟 / 2 ) ) ∈ 𝑆 )
16 10 12 15 syl2an ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑢 + ( 𝑟 / 2 ) ) ∈ 𝑆 )
17 3 16 sselid ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ℂ )
18 5 adantr ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → 𝑢 ∈ ℂ )
19 eqid ( abs ∘ − ) = ( abs ∘ − )
20 19 cnmetdval ( ( ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ℂ ∧ 𝑢 ∈ ℂ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) ( abs ∘ − ) 𝑢 ) = ( abs ‘ ( ( 𝑢 + ( 𝑟 / 2 ) ) − 𝑢 ) ) )
21 17 18 20 syl2anc ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) ( abs ∘ − ) 𝑢 ) = ( abs ‘ ( ( 𝑢 + ( 𝑟 / 2 ) ) − 𝑢 ) ) )
22 simpr ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → 𝑟 ∈ ℝ+ )
23 22 rphalfcld ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑟 / 2 ) ∈ ℝ+ )
24 23 rpcnd ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑟 / 2 ) ∈ ℂ )
25 18 24 pncan2d ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) − 𝑢 ) = ( 𝑟 / 2 ) )
26 25 fveq2d ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( abs ‘ ( ( 𝑢 + ( 𝑟 / 2 ) ) − 𝑢 ) ) = ( abs ‘ ( 𝑟 / 2 ) ) )
27 23 rpred ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑟 / 2 ) ∈ ℝ )
28 23 rpge0d ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → 0 ≤ ( 𝑟 / 2 ) )
29 27 28 absidd ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( abs ‘ ( 𝑟 / 2 ) ) = ( 𝑟 / 2 ) )
30 21 26 29 3eqtrd ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) ( abs ∘ − ) 𝑢 ) = ( 𝑟 / 2 ) )
31 rphalflt ( 𝑟 ∈ ℝ+ → ( 𝑟 / 2 ) < 𝑟 )
32 31 adantl ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑟 / 2 ) < 𝑟 )
33 30 32 eqbrtrd ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) ( abs ∘ − ) 𝑢 ) < 𝑟 )
34 4 a1i ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( abs ∘ − ) ∈ ( ∞Met ‘ ℂ ) )
35 rpxr ( 𝑟 ∈ ℝ+𝑟 ∈ ℝ* )
36 35 adantl ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → 𝑟 ∈ ℝ* )
37 elbl3 ( ( ( ( abs ∘ − ) ∈ ( ∞Met ‘ ℂ ) ∧ 𝑟 ∈ ℝ* ) ∧ ( 𝑢 ∈ ℂ ∧ ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ℂ ) ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ↔ ( ( 𝑢 + ( 𝑟 / 2 ) ) ( abs ∘ − ) 𝑢 ) < 𝑟 ) )
38 34 36 18 17 37 syl22anc ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ↔ ( ( 𝑢 + ( 𝑟 / 2 ) ) ( abs ∘ − ) 𝑢 ) < 𝑟 ) )
39 33 38 mpbird ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) )
40 23 rpne0d ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑟 / 2 ) ≠ 0 )
41 25 40 eqnetrd ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 + ( 𝑟 / 2 ) ) − 𝑢 ) ≠ 0 )
42 17 18 41 subne0ad ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑢 + ( 𝑟 / 2 ) ) ≠ 𝑢 )
43 eldifsn ( ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑆 ∖ { 𝑢 } ) ↔ ( ( 𝑢 + ( 𝑟 / 2 ) ) ∈ 𝑆 ∧ ( 𝑢 + ( 𝑟 / 2 ) ) ≠ 𝑢 ) )
44 16 42 43 sylanbrc ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑆 ∖ { 𝑢 } ) )
45 inelcm ( ( ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∧ ( 𝑢 + ( 𝑟 / 2 ) ) ∈ ( 𝑆 ∖ { 𝑢 } ) ) → ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ )
46 39 44 45 syl2anc ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ )
47 ssn0 ( ( ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ⊆ ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ∧ ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) → ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ )
48 47 ex ( ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ⊆ ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) → ( ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ → ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
49 9 46 48 syl2imc ( ( 𝑢𝑆𝑟 ∈ ℝ+ ) → ( ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ⊆ 𝑛 → ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
50 49 rexlimdva ( 𝑢𝑆 → ( ∃ 𝑟 ∈ ℝ+ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ⊆ 𝑛 → ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
51 50 adantld ( 𝑢𝑆 → ( ( 𝑛 ⊆ ℂ ∧ ∃ 𝑟 ∈ ℝ+ ( 𝑢 ( ball ‘ ( abs ∘ − ) ) 𝑟 ) ⊆ 𝑛 ) → ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
52 8 51 sylbid ( 𝑢𝑆 → ( 𝑛 ∈ ( ( nei ‘ 𝐽 ) ‘ { 𝑢 } ) → ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
53 52 ralrimiv ( 𝑢𝑆 → ∀ 𝑛 ∈ ( ( nei ‘ 𝐽 ) ‘ { 𝑢 } ) ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ )
54 1 cnfldtop 𝐽 ∈ Top
55 1 cnfldtopon 𝐽 ∈ ( TopOn ‘ ℂ )
56 55 toponunii ℂ = 𝐽
57 56 islp2 ( ( 𝐽 ∈ Top ∧ 𝑆 ⊆ ℂ ∧ 𝑢 ∈ ℂ ) → ( 𝑢 ∈ ( ( limPt ‘ 𝐽 ) ‘ 𝑆 ) ↔ ∀ 𝑛 ∈ ( ( nei ‘ 𝐽 ) ‘ { 𝑢 } ) ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
58 54 3 5 57 mp3an12i ( 𝑢𝑆 → ( 𝑢 ∈ ( ( limPt ‘ 𝐽 ) ‘ 𝑆 ) ↔ ∀ 𝑛 ∈ ( ( nei ‘ 𝐽 ) ‘ { 𝑢 } ) ( 𝑛 ∩ ( 𝑆 ∖ { 𝑢 } ) ) ≠ ∅ ) )
59 53 58 mpbird ( 𝑢𝑆𝑢 ∈ ( ( limPt ‘ 𝐽 ) ‘ 𝑆 ) )
60 59 ssriv 𝑆 ⊆ ( ( limPt ‘ 𝐽 ) ‘ 𝑆 )
61 eqid ( 𝐽t 𝑆 ) = ( 𝐽t 𝑆 )
62 56 61 restperf ( ( 𝐽 ∈ Top ∧ 𝑆 ⊆ ℂ ) → ( ( 𝐽t 𝑆 ) ∈ Perf ↔ 𝑆 ⊆ ( ( limPt ‘ 𝐽 ) ‘ 𝑆 ) ) )
63 54 3 62 mp2an ( ( 𝐽t 𝑆 ) ∈ Perf ↔ 𝑆 ⊆ ( ( limPt ‘ 𝐽 ) ‘ 𝑆 ) )
64 60 63 mpbir ( 𝐽t 𝑆 ) ∈ Perf