Files
aristotle/Aristotle/Basic.lean
Stefan Kebekus 7942fe14aa
Some checks failed
Lean Action CI / build (push) Has been cancelled
Update Basic.lean
2025-12-01 17:13:13 +01:00

66 lines
2.7 KiB
Lean4
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Mathlib.Analysis.Meromorphic.Basic
import Mathlib.Analysis.Calculus.Deriv.Mul
import Mathlib.Analysis.Calculus.Deriv.ZPow
import Mathlib.Analysis.Calculus.Deriv.Shift
open MeromorphicOn Real Set Classical Topology
set_option checkBinderAnnotations false
theorem eventually_eventually_nhdsWithin₁
{α : Type*} [TopologicalSpace α] [T1Space α] {a : α} {p : α Prop} :
( (y : α) in 𝓝[] a, x in 𝓝 y, p x) x in 𝓝[] a, p x := by
nth_rw 2 [ eventually_eventually_nhdsWithin]
constructor
· intro h
filter_upwards [h] with y hy
exact eventually_nhdsWithin_of_eventually_nhds hy
· intro h
filter_upwards [h, eventually_nhdsWithin_of_forall fun _ a a] with y h₁y h₂y
simp_all [IsOpen.nhdsWithin_eq]
theorem Filter.EventuallyEq.nhdsNE_deriv
{𝕜 : Type u} [NontriviallyNormedField 𝕜]
{F : Type v} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f f₁ : 𝕜 F} {x : 𝕜}
(h : f₁ =[𝓝[] x] f) :
deriv f₁ =[𝓝[] x] deriv f := by
rw [eventuallyEq_nhdsWithin_iff, eventually_nhds_iff] at *
obtain t, h₁t, h₂t, h₃t := h
use t
simp_all only [mem_compl_iff, mem_singleton_iff, and_self, and_true]
intro y h₁y h₂y
rw [Filter.EventuallyEq.deriv_eq]
apply eventually_nhds_iff.2
use t \ {x}
simp_all [IsOpen.sdiff h₂t isClosed_singleton]
variable
{𝕜 : Type*} [NontriviallyNormedField 𝕜]
{E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [CompleteSpace E]
{U : Set 𝕜} {f g : 𝕜 E} {a : WithTop E} {a₀ : E}
/-- Derivatives of meromorphic functions are meromorphic. -/
@[fun_prop]
theorem meromorphicAt_deriv {f : 𝕜 E} {x : 𝕜} (h : MeromorphicAt f x) :
MeromorphicAt (deriv f) x := by
rw [MeromorphicAt.iff_eventuallyEq_zpow_smul_analyticAt] at h
obtain n, g, h₁g, h₂g := h
have : deriv (fun z (z - x) ^ n g z)
=[nhdsWithin x {x}] fun z₀ (n * (z₀ - x) ^ (n - 1)) g z₀ + (z₀ - x) ^ n deriv g z₀ := by
have τ₀ : (y : 𝕜) in nhdsWithin x {x}, AnalyticAt 𝕜 g y := by
exact eventually_nhdsWithin_of_eventually_nhds h₁g.eventually_analyticAt
filter_upwards [eventually_nhdsWithin_of_eventually_nhds h₁g.eventually_analyticAt,
eventually_nhdsWithin_of_forall fun _ a a] with z₀ h₁ h₂
rw [deriv_smul (DifferentiableAt.zpow (by fun_prop) (by simp_all [sub_ne_zero_of_ne h₂])) (by fun_prop),
add_comm, deriv_comp_sub_const (f := fun z z ^ n)]
aesop
have : deriv f =[nhdsWithin x {x}] deriv (fun z (z - x) ^ n g z) := by
sorry
apply MeromorphicAt.congr _ this.symm
fun_prop