Skip to content

Commit c6b3920

Browse files
committed
A few more lemmas needed by Mandelbrot computations
1 parent 46ca33d commit c6b3920

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

Series/Analysis/ContDiff.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ variable {E : Type} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
3838
variable {F : Type} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
3939
variable {G : Type} [NormedAddCommGroup G] [NormedSpace 𝕜 G]
4040

41+
lemma hasDerivAt_const_mul {x : 𝕜} (c : 𝕜) : HasDerivAt (fun (x : 𝕜) => c * x) c x := by
42+
simpa only [mul_one] using (hasDerivAt_id' x).const_mul c
43+
4144
lemma iteratedDeriv_const {n : ℕ} {x : 𝕜} {c : F} :
4245
iteratedDeriv n (fun _ ↦ c) x = if n = 0 then c else 0 := by
4346
induction' n with n h generalizing c

Series/Misc/Sqrt.lean

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Mathlib.Analysis.SpecialFunctions.Complex.LogDeriv
22
import Mathlib.Analysis.SpecialFunctions.Pow.Complex
3+
import Mathlib.Analysis.SpecialFunctions.Pow.Deriv
34

45
/-!
56
# The principle branch of the complex square root
@@ -43,3 +44,10 @@ lemma ContDiffAt.csqrt (m : z ∈ slitPlane) {n : WithTop ℕ∞} : ContDiffAt
4344
/-- In the right halfplane, `sqrt (z ^ 2) = z` -/
4445
lemma Complex.sqrt_sq (r : 0 < z.re) : (z ^ 2).sqrt = z := by
4546
simp only [Complex.sqrt_eq_cpow, Complex.sq_cpow_two_inv r]
47+
48+
lemma HasDerivAt.csqrt {f : ℂ → ℂ} {f' z : ℂ} (m : f z ∈ Complex.slitPlane)
49+
(df : HasDerivAt f f' z) : HasDerivAt (fun z : ℂ ↦ (f z).sqrt) (f' / (2 * (f z).sqrt)) z := by
50+
simp only [Complex.sqrt_eq_cpow]
51+
apply (HasDerivAt.cpow_const (c := 2⁻¹) df m).congr_deriv
52+
field_simp
53+
norm_num [Complex.cpow_neg, div_eq_inv_mul]

Series/Series/Shift.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,9 @@ lemma series_coeff_shift {f : 𝕜 → 𝕜} {m n k : ℕ} (fc : ContDiffAt 𝕜
6868
split_ifs with ni
6969
· simp only [approx_zero]
7070
· exact c.2
71+
72+
/-- Series shift nicely approximates `z ^ n` -/
73+
@[approx] lemma Series.approx_one_shift (n : ℕ) :
74+
approx ((1 : Series α) <<< n) (fun z : 𝕜 ↦ z ^ n) := by
75+
simpa only [mul_one] using Series.approx_shift (𝕜 := 𝕜)
76+
(f := (1 : Series α)) (f' := fun z ↦ 1) approx_one n

0 commit comments

Comments
 (0)