@@ -69,7 +69,7 @@ variables {𝕜 : Type*} [nondiscrete_normed_field 𝕜]
69
69
{F : Type *} [normed_group F] [normed_space 𝕜 F]
70
70
{G : Type *} [normed_group G] [normed_space 𝕜 G]
71
71
72
- open_locale topological_space classical big_operators
72
+ open_locale topological_space classical big_operators nnreal
73
73
open filter
74
74
75
75
/-! ### The radius of a formal multilinear series -/
@@ -79,22 +79,22 @@ namespace formal_multilinear_series
79
79
/-- The radius of a formal multilinear series is the largest `r` such that the sum `Σ pₙ yⁿ`
80
80
converges for all `∥y∥ < r`. -/
81
81
def radius (p : formal_multilinear_series 𝕜 E F) : ennreal :=
82
- liminf at_top (λ n, 1 /((nnnorm (p n)) ^ (1 / (n : ℝ)) : nnreal ))
82
+ liminf at_top (λ n, 1 /((nnnorm (p n)) ^ (1 / (n : ℝ)) : ℝ≥ 0 ))
83
83
84
84
/--If `∥pₙ∥ rⁿ` is bounded in `n`, then the radius of `p` is at least `r`. -/
85
- lemma le_radius_of_bound (p : formal_multilinear_series 𝕜 E F) (C : nnreal ) {r : nnreal }
85
+ lemma le_radius_of_bound (p : formal_multilinear_series 𝕜 E F) (C : ℝ≥ 0 ) {r : ℝ≥ 0 }
86
86
(h : ∀ (n : ℕ), nnnorm (p n) * r^n ≤ C) : (r : ennreal) ≤ p.radius :=
87
87
begin
88
- have L : tendsto (λ n : ℕ, (r : ennreal) / ((C + 1 )^(1 /(n : ℝ)) : nnreal ))
89
- at_top (𝓝 ((r : ennreal) / ((C + 1 )^(0 : ℝ) : nnreal ))),
88
+ have L : tendsto (λ n : ℕ, (r : ennreal) / ((C + 1 )^(1 /(n : ℝ)) : ℝ≥ 0 ))
89
+ at_top (𝓝 ((r : ennreal) / ((C + 1 )^(0 : ℝ) : ℝ≥ 0 ))),
90
90
{ apply ennreal.tendsto.div tendsto_const_nhds,
91
91
{ simp },
92
92
{ rw ennreal.tendsto_coe,
93
93
apply tendsto_const_nhds.nnrpow (tendsto_const_div_at_top_nhds_0_nat 1 ),
94
94
simp },
95
95
{ simp } },
96
96
have A : ∀ n : ℕ , 0 < n →
97
- (r : ennreal) ≤ ((C + 1 )^(1 /(n : ℝ)) : nnreal ) * (1 / (nnnorm (p n) ^ (1 /(n:ℝ)) : nnreal )),
97
+ (r : ennreal) ≤ ((C + 1 )^(1 /(n : ℝ)) : ℝ≥ 0 ) * (1 / (nnnorm (p n) ^ (1 /(n:ℝ)) : ℝ≥ 0 )),
98
98
{ assume n npos,
99
99
simp only [one_div, mul_assoc, mul_one, eq.symm ennreal.mul_div_assoc],
100
100
rw [ennreal.le_div_iff_mul_le _ _, ← nnreal.pow_nat_rpow_nat_inv r npos, ← ennreal.coe_mul,
@@ -103,21 +103,21 @@ begin
103
103
{ simp },
104
104
{ simp } },
105
105
have B : ∀ᶠ (n : ℕ) in at_top,
106
- (r : ennreal) / ((C + 1 )^(1 /(n : ℝ)) : nnreal ) ≤ 1 / (nnnorm (p n) ^ (1 /(n:ℝ)) : nnreal ),
106
+ (r : ennreal) / ((C + 1 )^(1 /(n : ℝ)) : ℝ≥ 0 ) ≤ 1 / (nnnorm (p n) ^ (1 /(n:ℝ)) : ℝ≥ 0 ),
107
107
{ apply eventually_at_top.2 ⟨1 , λ n hn, _⟩,
108
108
rw [ennreal.div_le_iff_le_mul, mul_comm],
109
109
{ apply A n hn },
110
110
{ simp },
111
111
{ simp } },
112
- have D : liminf at_top (λ n : ℕ, (r : ennreal) / ((C + 1 )^(1 /(n : ℝ)) : nnreal )) ≤ p.radius :=
112
+ have D : liminf at_top (λ n : ℕ, (r : ennreal) / ((C + 1 )^(1 /(n : ℝ)) : ℝ≥ 0 )) ≤ p.radius :=
113
113
liminf_le_liminf B,
114
114
rw L.liminf_eq at D,
115
115
simpa using D
116
116
end
117
117
118
118
/-- For `r` strictly smaller than the radius of `p`, then `∥pₙ∥ rⁿ` is bounded. -/
119
- lemma bound_of_lt_radius (p : formal_multilinear_series 𝕜 E F) {r : nnreal }
120
- (h : (r : ennreal) < p.radius) : ∃ (C : nnreal ), ∀ n, nnnorm (p n) * r^n ≤ C :=
119
+ lemma bound_of_lt_radius (p : formal_multilinear_series 𝕜 E F) {r : ℝ≥ 0 }
120
+ (h : (r : ennreal) < p.radius) : ∃ (C : ℝ≥ 0 ), ∀ n, nnnorm (p n) * r^n ≤ C :=
121
121
begin
122
122
obtain ⟨N, hN⟩ : ∃ (N : ℕ), ∀ n, n ≥ N → (r : ennreal) < 1 / ↑(nnnorm (p n) ^ (1 / (n : ℝ))) :=
123
123
eventually.exists_forall_of_at_top (eventually_lt_of_lt_liminf h),
@@ -143,14 +143,14 @@ begin
143
143
end
144
144
145
145
/-- For `r` strictly smaller than the radius of `p`, then `∥pₙ∥ rⁿ` tends to zero exponentially. -/
146
- lemma geometric_bound_of_lt_radius (p : formal_multilinear_series 𝕜 E F) {r : nnreal }
146
+ lemma geometric_bound_of_lt_radius (p : formal_multilinear_series 𝕜 E F) {r : ℝ≥ 0 }
147
147
(h : (r : ennreal) < p.radius) : ∃ a C, a < 1 ∧ ∀ n, nnnorm (p n) * r^n ≤ C * a^n :=
148
148
begin
149
- obtain ⟨t, rt, tp⟩ : ∃ (t : nnreal ), (r : ennreal) < t ∧ (t : ennreal) < p.radius :=
149
+ obtain ⟨t, rt, tp⟩ : ∃ (t : ℝ≥ 0 ), (r : ennreal) < t ∧ (t : ennreal) < p.radius :=
150
150
ennreal.lt_iff_exists_nnreal_btwn.1 h,
151
151
rw ennreal.coe_lt_coe at rt,
152
152
have tpos : t ≠ 0 := ne_of_gt (lt_of_le_of_lt (zero_le _) rt),
153
- obtain ⟨C, hC⟩ : ∃ (C : nnreal ), ∀ n, nnnorm (p n) * t^n ≤ C := p.bound_of_lt_radius tp,
153
+ obtain ⟨C, hC⟩ : ∃ (C : ℝ≥ 0 ), ∀ n, nnnorm (p n) * t^n ≤ C := p.bound_of_lt_radius tp,
154
154
refine ⟨r / t, C, nnreal.div_lt_one_of_lt rt, λ n, _⟩,
155
155
calc nnnorm (p n) * r ^ n
156
156
= (nnnorm (p n) * t ^ n) * (r / t) ^ n : by { field_simp [tpos], ac_refl }
@@ -163,9 +163,9 @@ lemma min_radius_le_radius_add (p q : formal_multilinear_series 𝕜 E F) :
163
163
begin
164
164
refine le_of_forall_ge_of_dense (λ r hr, _),
165
165
cases r, { simpa using hr },
166
- obtain ⟨Cp, hCp⟩ : ∃ (C : nnreal ), ∀ n, nnnorm (p n) * r^n ≤ C :=
166
+ obtain ⟨Cp, hCp⟩ : ∃ (C : ℝ≥ 0 ), ∀ n, nnnorm (p n) * r^n ≤ C :=
167
167
p.bound_of_lt_radius (lt_of_lt_of_le hr (min_le_left _ _)),
168
- obtain ⟨Cq, hCq⟩ : ∃ (C : nnreal ), ∀ n, nnnorm (q n) * r^n ≤ C :=
168
+ obtain ⟨Cq, hCq⟩ : ∃ (C : ℝ≥ 0 ), ∀ n, nnnorm (q n) * r^n ≤ C :=
169
169
q.bound_of_lt_radius (lt_of_lt_of_le hr (min_le_right _ _)),
170
170
have : ∀ n, nnnorm ((p + q) n) * r^n ≤ Cp + Cq,
171
171
{ assume n,
@@ -314,9 +314,9 @@ let ⟨rf, hrf⟩ := hf in hrf.coeff_zero v
314
314
315
315
/-- If a function admits a power series expansion, then it is exponentially close to the partial
316
316
sums of this power series on strict subdisks of the disk of convergence. -/
317
- lemma has_fpower_series_on_ball.uniform_geometric_approx {r' : nnreal }
317
+ lemma has_fpower_series_on_ball.uniform_geometric_approx {r' : ℝ≥ 0 }
318
318
(hf : has_fpower_series_on_ball f p x r) (h : (r' : ennreal) < r) :
319
- ∃ (a C : nnreal ), a < 1 ∧ (∀ y ∈ metric.ball (0 : E) r', ∀ n,
319
+ ∃ (a C : ℝ≥ 0 ), a < 1 ∧ (∀ y ∈ metric.ball (0 : E) r', ∀ n,
320
320
∥f (x + y) - p.partial_sum n y∥ ≤ C * a ^ n) :=
321
321
begin
322
322
obtain ⟨a, C, ha, hC⟩ : ∃ a C, a < 1 ∧ ∀ n, nnnorm (p n) * r' ^n ≤ C * a^n :=
344
344
/-- If a function admits a power series expansion at `x`, then it is the uniform limit of the
345
345
partial sums of this power series on strict subdisks of the disk of convergence, i.e., `f (x + y)`
346
346
is the uniform limit of `p.partial_sum n y` there. -/
347
- lemma has_fpower_series_on_ball.tendsto_uniformly_on {r' : nnreal }
347
+ lemma has_fpower_series_on_ball.tendsto_uniformly_on {r' : ℝ≥ 0 }
348
348
(hf : has_fpower_series_on_ball f p x r) (h : (r' : ennreal) < r) :
349
349
tendsto_uniformly_on (λ n y, p.partial_sum n y) (λ y, f (x + y)) at_top (metric.ball (0 : E) r') :=
350
350
begin
378
378
/-- If a function admits a power series expansion at `x`, then it is the uniform limit of the
379
379
partial sums of this power series on strict subdisks of the disk of convergence, i.e., `f y`
380
380
is the uniform limit of `p.partial_sum n (y - x)` there. -/
381
- lemma has_fpower_series_on_ball.tendsto_uniformly_on' {r' : nnreal }
381
+ lemma has_fpower_series_on_ball.tendsto_uniformly_on' {r' : ℝ≥ 0 }
382
382
(hf : has_fpower_series_on_ball f p x r) (h : (r' : ennreal) < r) :
383
383
tendsto_uniformly_on (λ n y, p.partial_sum n (y - x)) f at_top (metric.ball (x : E) r') :=
384
384
begin
@@ -476,7 +476,7 @@ discussion is that the set of points where a function is analytic is open.
476
476
477
477
namespace formal_multilinear_series
478
478
479
- variables (p : formal_multilinear_series 𝕜 E F) {x y : E} {r : nnreal }
479
+ variables (p : formal_multilinear_series 𝕜 E F) {x y : E} {r : ℝ≥ 0 }
480
480
481
481
/--
482
482
Changing the origin of a formal multilinear series `p`, so that
@@ -504,7 +504,7 @@ begin
504
504
obtain ⟨a, C, ha, hC⟩ :
505
505
∃ a C, a < 1 ∧ ∀ n, nnnorm (p n) * (nnnorm x + r) ^ n ≤ C * a^n :=
506
506
p.geometric_bound_of_lt_radius h,
507
- let Bnnnorm : (Σ (n : ℕ), finset (fin n)) → nnreal :=
507
+ let Bnnnorm : (Σ (n : ℕ), finset (fin n)) → ℝ≥ 0 :=
508
508
λ ⟨n, s⟩, nnnorm (p n) * (nnnorm x) ^ (n - s.card) * r ^ s.card,
509
509
have : ((λ ⟨n, s⟩, ∥p n∥ * ∥x∥ ^ (n - s.card) * r ^ s.card) :
510
510
(Σ (n : ℕ), finset (fin n)) → ℝ) = (λ b, (Bnnnorm b : ℝ)),
@@ -513,7 +513,7 @@ begin
513
513
apply ne_of_lt,
514
514
calc (∑' b, ↑(Bnnnorm b))
515
515
= (∑' n, (∑' s, ↑(Bnnnorm ⟨n, s⟩))) : by exact ennreal.tsum_sigma' _
516
- ... ≤ (∑' n, (((nnnorm (p n) * (nnnorm x + r)^n) : nnreal ) : ennreal)) :
516
+ ... ≤ (∑' n, (((nnnorm (p n) * (nnnorm x + r)^n) : ℝ≥ 0 ) : ennreal)) :
517
517
begin
518
518
refine ennreal.tsum_le_tsum (λ n, _),
519
519
rw [tsum_fintype, ← ennreal.coe_finset_sum, ennreal.coe_le_coe],
@@ -582,7 +582,7 @@ lemma change_origin_summable_aux3 (k : ℕ) (h : (nnnorm x : ennreal) < p.radius
582
582
@summable ℝ _ _ _ (λ ⟨n, s, hs⟩, ∥(p n).restr s hs x∥ :
583
583
(Σ (n : ℕ), {s : finset (fin n) // finset.card s = k}) → ℝ) :=
584
584
begin
585
- obtain ⟨r, rpos, hr⟩ : ∃ (r : nnreal ), 0 < r ∧ ((nnnorm x + r) : ennreal) < p.radius :=
585
+ obtain ⟨r, rpos, hr⟩ : ∃ (r : ℝ≥ 0 ), 0 < r ∧ ((nnnorm x + r) : ennreal) < p.radius :=
586
586
ennreal.lt_iff_exists_add_pos_lt.mp h,
587
587
have S : @summable ℝ _ _ _ ((λ ⟨n, s, hs⟩, ∥(p n).restr s hs x∥ * (r : ℝ) ^ k) :
588
588
(Σ (n : ℕ), {s : finset (fin n) // finset.card s = k}) → ℝ),
0 commit comments