Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit cb618e0

Browse files
committed
feat(analysis/analytic): a continuous linear map defines an analytic function (#5840)
Also add convenience lemmas with conclusion `radius = ⊤`.
1 parent faba9ce commit cb618e0

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

src/analysis/analytic/basic.lean

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,17 @@ lemma le_radius_of_is_O (h : is_O (λ n, ∥p n∥ * r^n) (λ n, (1 : ℝ)) at_t
102102
exists.elim (is_O_one_nat_at_top_iff.1 h) $ λ C hC, p.le_radius_of_bound C $
103103
λ n, (le_abs_self _).trans (hC n)
104104

105+
lemma radius_eq_top_of_forall_nnreal_is_O
106+
(h : ∀ r : ℝ≥0, is_O (λ n, ∥p n∥ * r^n) (λ n, (1 : ℝ)) at_top) : p.radius = ⊤ :=
107+
ennreal.eq_top_of_forall_nnreal_le $ λ r, p.le_radius_of_is_O (h r)
108+
109+
lemma radius_eq_top_of_eventually_eq_zero (h : ∀ᶠ n in at_top, p n = 0) : p.radius = ⊤ :=
110+
p.radius_eq_top_of_forall_nnreal_is_O $
111+
λ r, (is_O_zero _ _).congr' (h.mono $ λ n hn, by simp [hn]) eventually_eq.rfl
112+
113+
lemma radius_eq_top_of_forall_image_add_eq_zero (n : ℕ) (hn : ∀ m, p (m + n) = 0) : p.radius = ⊤ :=
114+
p.radius_eq_top_of_eventually_eq_zero $ mem_at_top_sets.2 ⟨n, λ k hk, nat.sub_add_cancel hk ▸ hn _⟩
115+
105116
/-- For `r` strictly smaller than the radius of `p`, then `∥pₙ∥ rⁿ` tends to zero exponentially:
106117
for some `0 < a < 1`, `∥p n∥ rⁿ = o(aⁿ)`. -/
107118
lemma is_o_of_lt_radius (h : ↑r < p.radius) :

src/analysis/analytic/linear.lean

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/-
2+
Copyright (c) 2021 Yury G. Kudryashov. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Author: Yury G. Kudryashov
5+
-/
6+
import analysis.analytic.basic
7+
8+
/-!
9+
# Linear functions are analytic
10+
11+
In this file we prove that a `continuous_linear_map` defines an analytic function with
12+
the formal power series `f x = f a + f (x - a)`.
13+
-/
14+
15+
variables {𝕜 : Type*} [nondiscrete_normed_field 𝕜]
16+
{E : Type*} [normed_group E] [normed_space 𝕜 E]
17+
{F : Type*} [normed_group F] [normed_space 𝕜 F]
18+
19+
open_locale topological_space classical big_operators nnreal ennreal
20+
open set filter asymptotics
21+
22+
noncomputable theory
23+
24+
namespace continuous_linear_map
25+
26+
/-- Formal power series of a continuous linear map `f : E →L[𝕜] F` at `x : E`:
27+
`f y = f x + f (y - x)`. -/
28+
@[simp] def fpower_series (f : E →L[𝕜] F) (x : E) : formal_multilinear_series 𝕜 E F
29+
| 0 := continuous_multilinear_map.curry0 𝕜 _ (f x)
30+
| 1 := (continuous_multilinear_curry_fin1 𝕜 _ _).symm f
31+
| _ := 0
32+
33+
@[simp] lemma fpower_series_apply_add_two (f : E →L[𝕜] F) (x : E) (n : ℕ) :
34+
f.fpower_series x (n + 2) = 0 := rfl
35+
36+
@[simp] lemma fpower_series_radius (f : E →L[𝕜] F) (x : E) : (f.fpower_series x).radius = ∞ :=
37+
(f.fpower_series x).radius_eq_top_of_forall_image_add_eq_zero 2 $ λ n, rfl
38+
39+
protected theorem has_fpower_series_on_ball (f : E →L[𝕜] F) (x : E) :
40+
has_fpower_series_on_ball f (f.fpower_series x) x ∞ :=
41+
{ r_le := by simp,
42+
r_pos := ennreal.coe_lt_top,
43+
has_sum := λ y _, (has_sum_nat_add_iff' 2).1 $
44+
by simp [finset.sum_range_succ, ← sub_sub, has_sum_zero] }
45+
46+
protected theorem has_fpower_series_at (f : E →L[𝕜] F) (x : E) :
47+
has_fpower_series_at f (f.fpower_series x) x :=
48+
⟨∞, f.has_fpower_series_on_ball x⟩
49+
50+
protected theorem analytic_at (f : E →L[𝕜] F) (x : E) : analytic_at 𝕜 f x :=
51+
(f.has_fpower_series_at x).analytic_at
52+
53+
end continuous_linear_map

src/data/real/ennreal.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,6 +1046,9 @@ begin
10461046
exact h r hr
10471047
end
10481048

1049+
lemma eq_top_of_forall_nnreal_le {x : ennreal} (h : ∀ r : ℝ≥0, ↑r ≤ x) : x = ∞ :=
1050+
top_unique $ le_of_forall_nnreal_lt $ λ r hr, h r
1051+
10491052
lemma div_add_div_same {a b c : ennreal} : a / c + b / c = (a + b) / c :=
10501053
eq.symm $ right_distrib a b (c⁻¹)
10511054

0 commit comments

Comments
 (0)