Skip to content

Commit 8d0d1cf

Browse files
committed
feat(Analysis/Meromorphic): meromorphicOrderAt of derivative (#40080)
1 parent 69b0edc commit 8d0d1cf

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

β€ŽMathlib/Analysis/Calculus/Deriv/ZPow.leanβ€Ž

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,17 +168,21 @@ theorem iter_deriv_inv_linear_sub (k : β„•) (c d : π•œ) :
168168

169169
variable {f : E β†’ π•œ} {t : Set E} {a : E}
170170

171+
@[fun_prop]
171172
theorem DifferentiableWithinAt.zpow (hf : DifferentiableWithinAt π•œ f t a) (h : f a β‰  0 ∨ 0 ≀ m) :
172173
DifferentiableWithinAt π•œ (fun x => f x ^ m) t a :=
173174
(differentiableAt_zpow.2 h).comp_differentiableWithinAt a hf
174175

176+
@[fun_prop]
175177
theorem DifferentiableAt.zpow (hf : DifferentiableAt π•œ f a) (h : f a β‰  0 ∨ 0 ≀ m) :
176178
DifferentiableAt π•œ (fun x => f x ^ m) a :=
177179
(differentiableAt_zpow.2 h).comp a hf
178180

181+
@[fun_prop]
179182
theorem DifferentiableOn.zpow (hf : DifferentiableOn π•œ f t) (h : (βˆ€ x ∈ t, f x β‰  0) ∨ 0 ≀ m) :
180183
DifferentiableOn π•œ (fun x => f x ^ m) t := fun x hx =>
181184
(hf x hx).zpow <| h.imp_left fun h => h x hx
182185

186+
@[fun_prop]
183187
theorem Differentiable.zpow (hf : Differentiable π•œ f) (h : (βˆ€ x, f x β‰  0) ∨ 0 ≀ m) :
184188
Differentiable π•œ fun x => f x ^ m := fun x => (hf x).zpow <| h.imp_left fun h => h x

β€ŽMathlib/Analysis/Meromorphic/Order.leanβ€Ž

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,3 +892,43 @@ lemma meromorphicOrderAt_mul_of_ne_zero {f : π•œ β†’ π•œ} (hg : AnalyticAt
892892
meromorphicOrderAt_smul_of_ne_zero hg hg'
893893

894894
end smul
895+
896+
/-!
897+
## Order at a Point of the Derivative
898+
-/
899+
900+
section deriv
901+
902+
/-- The meromorphic order of the derivative is one less than the order of the original function.
903+
This however is not true if the characteristic of the domain field divides the original order,
904+
where the order of the derivative can rise to a larger integer. -/
905+
lemma meromorphicOrderAt_deriv_eq_sub_one [CompleteSpace E] {f : π•œ β†’ E} {x : π•œ} {n : β„€}
906+
(hn : (n : π•œ) β‰  0) (hf : meromorphicOrderAt f x = ↑n) :
907+
meromorphicOrderAt (deriv f) x = ↑(n - 1) := by
908+
have hmero : MeromorphicAt f x := meromorphicAt_of_meromorphicOrderAt_ne_zero (by aesop)
909+
rw [meromorphicOrderAt_eq_int_iff hmero] at hf
910+
rw [meromorphicOrderAt_eq_int_iff hmero.deriv]
911+
obtain ⟨g, hga, hg0, (hg : f =αΆ [𝓝[β‰ ] x] fun z ↦ (z - x) ^ n β€’ g z)⟩ := hf
912+
refine ⟨fun z ↦ (n : π•œ) β€’ g z + (z - x) β€’ deriv g z, by fun_prop, by simpa using ⟨hn, hg0⟩, ?_⟩
913+
filter_upwards [hga.eventually_analyticAt.filter_mono (nhdsWithin_le_nhds),
914+
eventually_mem_nhdsWithin, hg.nhdsNE_deriv] with z hgz hmem hz
915+
have hzx : z - x β‰  0 := by simpa [sub_eq_zero] using hmem
916+
calc
917+
deriv f z = deriv (fun z ↦ (z - x) ^ n β€’ g z) z :=
918+
hz
919+
_ = (z - x) ^ n β€’ deriv g z + deriv ((Β· ^ n) ∘ (Β· - x)) z β€’ g z :=
920+
deriv_fun_smul (by fun_prop (disch := grind)) hgz.differentiableAt
921+
_ = (z - x) ^ n β€’ deriv g z + (n * (z - x) ^ (n - 1)) β€’ g z := by
922+
rw [deriv_comp _ (by fun_prop (disch := grind)) (by fun_prop)]
923+
simp [deriv_zpow]
924+
_ = (z - x) ^ (n - 1) β€’ ((n : π•œ) β€’ g z + (z - x) β€’ deriv g z) := by
925+
simp [smul_smul, ← zpow_add_oneβ‚€ hzx, add_comm, mul_comm]
926+
927+
/-- Equivalent to `meromorphicOrderAt_deriv_eq_sub_one` with a slightly different statement so the
928+
conclusion matches more targets -/
929+
lemma meromorphicOrderAt_deriv [CompleteSpace E] {f : π•œ β†’ E} {x : π•œ} {n : β„€}
930+
(hn : (↑(n + 1) : π•œ) β‰  0) (hf : meromorphicOrderAt f x = ↑(n + 1)) :
931+
meromorphicOrderAt (deriv f) x = ↑n := by
932+
simpa using meromorphicOrderAt_deriv_eq_sub_one hn hf
933+
934+
end deriv

0 commit comments

Comments
Β (0)