Metamath Proof Explorer


Theorem logcn

Description: The logarithm function is continuous away from the branch cut at negative reals. (Contributed by Mario Carneiro, 25-Feb-2015)

Ref Expression
Hypothesis logcn.d 𝐷 = ( ℂ ∖ ( -∞ (,] 0 ) )
Assertion logcn ( log ↾ 𝐷 ) ∈ ( 𝐷cn→ ℂ )

Proof

Step Hyp Ref Expression
1 logcn.d 𝐷 = ( ℂ ∖ ( -∞ (,] 0 ) )
2 logf1o log : ( ℂ ∖ { 0 } ) –1-1-onto→ ran log
3 f1of ( log : ( ℂ ∖ { 0 } ) –1-1-onto→ ran log → log : ( ℂ ∖ { 0 } ) ⟶ ran log )
4 2 3 ax-mp log : ( ℂ ∖ { 0 } ) ⟶ ran log
5 1 logdmss 𝐷 ⊆ ( ℂ ∖ { 0 } )
6 fssres ( ( log : ( ℂ ∖ { 0 } ) ⟶ ran log ∧ 𝐷 ⊆ ( ℂ ∖ { 0 } ) ) → ( log ↾ 𝐷 ) : 𝐷 ⟶ ran log )
7 4 5 6 mp2an ( log ↾ 𝐷 ) : 𝐷 ⟶ ran log
8 ffn ( ( log ↾ 𝐷 ) : 𝐷 ⟶ ran log → ( log ↾ 𝐷 ) Fn 𝐷 )
9 7 8 ax-mp ( log ↾ 𝐷 ) Fn 𝐷
10 dffn5 ( ( log ↾ 𝐷 ) Fn 𝐷 ↔ ( log ↾ 𝐷 ) = ( 𝑥𝐷 ↦ ( ( log ↾ 𝐷 ) ‘ 𝑥 ) ) )
11 9 10 mpbi ( log ↾ 𝐷 ) = ( 𝑥𝐷 ↦ ( ( log ↾ 𝐷 ) ‘ 𝑥 ) )
12 fvres ( 𝑥𝐷 → ( ( log ↾ 𝐷 ) ‘ 𝑥 ) = ( log ‘ 𝑥 ) )
13 1 ellogdm ( 𝑥𝐷 ↔ ( 𝑥 ∈ ℂ ∧ ( 𝑥 ∈ ℝ → 𝑥 ∈ ℝ+ ) ) )
14 13 simplbi ( 𝑥𝐷𝑥 ∈ ℂ )
15 1 logdmn0 ( 𝑥𝐷𝑥 ≠ 0 )
16 14 15 logcld ( 𝑥𝐷 → ( log ‘ 𝑥 ) ∈ ℂ )
17 16 replimd ( 𝑥𝐷 → ( log ‘ 𝑥 ) = ( ( ℜ ‘ ( log ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) )
18 relog ( ( 𝑥 ∈ ℂ ∧ 𝑥 ≠ 0 ) → ( ℜ ‘ ( log ‘ 𝑥 ) ) = ( log ‘ ( abs ‘ 𝑥 ) ) )
19 14 15 18 syl2anc ( 𝑥𝐷 → ( ℜ ‘ ( log ‘ 𝑥 ) ) = ( log ‘ ( abs ‘ 𝑥 ) ) )
20 14 15 absrpcld ( 𝑥𝐷 → ( abs ‘ 𝑥 ) ∈ ℝ+ )
21 20 fvresd ( 𝑥𝐷 → ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) = ( log ‘ ( abs ‘ 𝑥 ) ) )
22 19 21 eqtr4d ( 𝑥𝐷 → ( ℜ ‘ ( log ‘ 𝑥 ) ) = ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) )
23 22 oveq1d ( 𝑥𝐷 → ( ( ℜ ‘ ( log ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) = ( ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) )
24 12 17 23 3eqtrd ( 𝑥𝐷 → ( ( log ↾ 𝐷 ) ‘ 𝑥 ) = ( ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) )
25 24 mpteq2ia ( 𝑥𝐷 ↦ ( ( log ↾ 𝐷 ) ‘ 𝑥 ) ) = ( 𝑥𝐷 ↦ ( ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) )
26 11 25 eqtri ( log ↾ 𝐷 ) = ( 𝑥𝐷 ↦ ( ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) )
27 eqid ( TopOpen ‘ ℂfld ) = ( TopOpen ‘ ℂfld )
28 27 addcn + ∈ ( ( ( TopOpen ‘ ℂfld ) ×t ( TopOpen ‘ ℂfld ) ) Cn ( TopOpen ‘ ℂfld ) )
29 28 a1i ( ⊤ → + ∈ ( ( ( TopOpen ‘ ℂfld ) ×t ( TopOpen ‘ ℂfld ) ) Cn ( TopOpen ‘ ℂfld ) ) )
30 27 cnfldtopon ( TopOpen ‘ ℂfld ) ∈ ( TopOn ‘ ℂ )
31 14 ssriv 𝐷 ⊆ ℂ
32 resttopon ( ( ( TopOpen ‘ ℂfld ) ∈ ( TopOn ‘ ℂ ) ∧ 𝐷 ⊆ ℂ ) → ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) ∈ ( TopOn ‘ 𝐷 ) )
33 30 31 32 mp2an ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) ∈ ( TopOn ‘ 𝐷 )
34 33 a1i ( ⊤ → ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) ∈ ( TopOn ‘ 𝐷 ) )
35 absf abs : ℂ ⟶ ℝ
36 fssres ( ( abs : ℂ ⟶ ℝ ∧ 𝐷 ⊆ ℂ ) → ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ )
37 35 31 36 mp2an ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ
38 37 a1i ( ⊤ → ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ )
39 38 feqmptd ( ⊤ → ( abs ↾ 𝐷 ) = ( 𝑥𝐷 ↦ ( ( abs ↾ 𝐷 ) ‘ 𝑥 ) ) )
40 fvres ( 𝑥𝐷 → ( ( abs ↾ 𝐷 ) ‘ 𝑥 ) = ( abs ‘ 𝑥 ) )
41 40 mpteq2ia ( 𝑥𝐷 ↦ ( ( abs ↾ 𝐷 ) ‘ 𝑥 ) ) = ( 𝑥𝐷 ↦ ( abs ‘ 𝑥 ) )
42 39 41 eqtrdi ( ⊤ → ( abs ↾ 𝐷 ) = ( 𝑥𝐷 ↦ ( abs ‘ 𝑥 ) ) )
43 ffn ( ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ → ( abs ↾ 𝐷 ) Fn 𝐷 )
44 37 43 ax-mp ( abs ↾ 𝐷 ) Fn 𝐷
45 40 20 eqeltrd ( 𝑥𝐷 → ( ( abs ↾ 𝐷 ) ‘ 𝑥 ) ∈ ℝ+ )
46 45 rgen 𝑥𝐷 ( ( abs ↾ 𝐷 ) ‘ 𝑥 ) ∈ ℝ+
47 ffnfv ( ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ+ ↔ ( ( abs ↾ 𝐷 ) Fn 𝐷 ∧ ∀ 𝑥𝐷 ( ( abs ↾ 𝐷 ) ‘ 𝑥 ) ∈ ℝ+ ) )
48 44 46 47 mpbir2an ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ+
49 rpssre + ⊆ ℝ
50 ax-resscn ℝ ⊆ ℂ
51 49 50 sstri + ⊆ ℂ
52 abscncf abs ∈ ( ℂ –cn→ ℝ )
53 rescncf ( 𝐷 ⊆ ℂ → ( abs ∈ ( ℂ –cn→ ℝ ) → ( abs ↾ 𝐷 ) ∈ ( 𝐷cn→ ℝ ) ) )
54 31 52 53 mp2 ( abs ↾ 𝐷 ) ∈ ( 𝐷cn→ ℝ )
55 cncffvrn ( ( ℝ+ ⊆ ℂ ∧ ( abs ↾ 𝐷 ) ∈ ( 𝐷cn→ ℝ ) ) → ( ( abs ↾ 𝐷 ) ∈ ( 𝐷cn→ ℝ+ ) ↔ ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ+ ) )
56 51 54 55 mp2an ( ( abs ↾ 𝐷 ) ∈ ( 𝐷cn→ ℝ+ ) ↔ ( abs ↾ 𝐷 ) : 𝐷 ⟶ ℝ+ )
57 48 56 mpbir ( abs ↾ 𝐷 ) ∈ ( 𝐷cn→ ℝ+ )
58 42 57 eqeltrrdi ( ⊤ → ( 𝑥𝐷 ↦ ( abs ‘ 𝑥 ) ) ∈ ( 𝐷cn→ ℝ+ ) )
59 eqid ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) = ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 )
60 eqid ( ( TopOpen ‘ ℂfld ) ↾t+ ) = ( ( TopOpen ‘ ℂfld ) ↾t+ )
61 27 59 60 cncfcn ( ( 𝐷 ⊆ ℂ ∧ ℝ+ ⊆ ℂ ) → ( 𝐷cn→ ℝ+ ) = ( ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) Cn ( ( TopOpen ‘ ℂfld ) ↾t+ ) ) )
62 31 51 61 mp2an ( 𝐷cn→ ℝ+ ) = ( ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) Cn ( ( TopOpen ‘ ℂfld ) ↾t+ ) )
63 58 62 eleqtrdi ( ⊤ → ( 𝑥𝐷 ↦ ( abs ‘ 𝑥 ) ) ∈ ( ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) Cn ( ( TopOpen ‘ ℂfld ) ↾t+ ) ) )
64 ssid ℂ ⊆ ℂ
65 cncfss ( ( ℝ ⊆ ℂ ∧ ℂ ⊆ ℂ ) → ( ℝ+cn→ ℝ ) ⊆ ( ℝ+cn→ ℂ ) )
66 50 64 65 mp2an ( ℝ+cn→ ℝ ) ⊆ ( ℝ+cn→ ℂ )
67 relogcn ( log ↾ ℝ+ ) ∈ ( ℝ+cn→ ℝ )
68 66 67 sselii ( log ↾ ℝ+ ) ∈ ( ℝ+cn→ ℂ )
69 68 a1i ( ⊤ → ( log ↾ ℝ+ ) ∈ ( ℝ+cn→ ℂ ) )
70 30 toponrestid ( TopOpen ‘ ℂfld ) = ( ( TopOpen ‘ ℂfld ) ↾t ℂ )
71 27 60 70 cncfcn ( ( ℝ+ ⊆ ℂ ∧ ℂ ⊆ ℂ ) → ( ℝ+cn→ ℂ ) = ( ( ( TopOpen ‘ ℂfld ) ↾t+ ) Cn ( TopOpen ‘ ℂfld ) ) )
72 51 64 71 mp2an ( ℝ+cn→ ℂ ) = ( ( ( TopOpen ‘ ℂfld ) ↾t+ ) Cn ( TopOpen ‘ ℂfld ) )
73 69 72 eleqtrdi ( ⊤ → ( log ↾ ℝ+ ) ∈ ( ( ( TopOpen ‘ ℂfld ) ↾t+ ) Cn ( TopOpen ‘ ℂfld ) ) )
74 34 63 73 cnmpt11f ( ⊤ → ( 𝑥𝐷 ↦ ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) ) ∈ ( ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) Cn ( TopOpen ‘ ℂfld ) ) )
75 27 59 70 cncfcn ( ( 𝐷 ⊆ ℂ ∧ ℂ ⊆ ℂ ) → ( 𝐷cn→ ℂ ) = ( ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) Cn ( TopOpen ‘ ℂfld ) ) )
76 31 64 75 mp2an ( 𝐷cn→ ℂ ) = ( ( ( TopOpen ‘ ℂfld ) ↾t 𝐷 ) Cn ( TopOpen ‘ ℂfld ) )
77 74 76 eleqtrrdi ( ⊤ → ( 𝑥𝐷 ↦ ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) ) ∈ ( 𝐷cn→ ℂ ) )
78 16 imcld ( 𝑥𝐷 → ( ℑ ‘ ( log ‘ 𝑥 ) ) ∈ ℝ )
79 78 recnd ( 𝑥𝐷 → ( ℑ ‘ ( log ‘ 𝑥 ) ) ∈ ℂ )
80 79 adantl ( ( ⊤ ∧ 𝑥𝐷 ) → ( ℑ ‘ ( log ‘ 𝑥 ) ) ∈ ℂ )
81 eqidd ( ⊤ → ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) = ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) )
82 eqidd ( ⊤ → ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) = ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) )
83 oveq2 ( 𝑦 = ( ℑ ‘ ( log ‘ 𝑥 ) ) → ( i · 𝑦 ) = ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) )
84 80 81 82 83 fmptco ( ⊤ → ( ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) ∘ ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) = ( 𝑥𝐷 ↦ ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) )
85 cncfss ( ( ℝ ⊆ ℂ ∧ ℂ ⊆ ℂ ) → ( 𝐷cn→ ℝ ) ⊆ ( 𝐷cn→ ℂ ) )
86 50 64 85 mp2an ( 𝐷cn→ ℝ ) ⊆ ( 𝐷cn→ ℂ )
87 1 logcnlem5 ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ∈ ( 𝐷cn→ ℝ )
88 86 87 sselii ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ∈ ( 𝐷cn→ ℂ )
89 88 a1i ( ⊤ → ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ∈ ( 𝐷cn→ ℂ ) )
90 ax-icn i ∈ ℂ
91 eqid ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) = ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) )
92 91 mulc1cncf ( i ∈ ℂ → ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) ∈ ( ℂ –cn→ ℂ ) )
93 90 92 mp1i ( ⊤ → ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) ∈ ( ℂ –cn→ ℂ ) )
94 89 93 cncfco ( ⊤ → ( ( 𝑦 ∈ ℂ ↦ ( i · 𝑦 ) ) ∘ ( 𝑥𝐷 ↦ ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) ∈ ( 𝐷cn→ ℂ ) )
95 84 94 eqeltrrd ( ⊤ → ( 𝑥𝐷 ↦ ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) ∈ ( 𝐷cn→ ℂ ) )
96 27 29 77 95 cncfmpt2f ( ⊤ → ( 𝑥𝐷 ↦ ( ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) ) ∈ ( 𝐷cn→ ℂ ) )
97 96 mptru ( 𝑥𝐷 ↦ ( ( ( log ↾ ℝ+ ) ‘ ( abs ‘ 𝑥 ) ) + ( i · ( ℑ ‘ ( log ‘ 𝑥 ) ) ) ) ) ∈ ( 𝐷cn→ ℂ )
98 26 97 eqeltri ( log ↾ 𝐷 ) ∈ ( 𝐷cn→ ℂ )