Working…

This commit is contained in:
Stefan Kebekus 2024-09-10 14:21:08 +02:00
parent fa2e431f4c
commit ef7e1df191
2 changed files with 59 additions and 15 deletions

View File

@ -50,3 +50,27 @@ theorem AnalyticAt.order_mul
· constructor · constructor
· exact IsOpen.inter h₂t₁ h₂t₂ · exact IsOpen.inter h₂t₁ h₂t₂
· exact Set.mem_inter h₃t₁ h₃t₂ · exact Set.mem_inter h₃t₁ h₃t₂
theorem AnalyticAt.order_eq_zero_iff
{f : }
{z₀ : }
(hf : AnalyticAt f z₀) :
hf.order = 0 ↔ f z₀ ≠ 0 := by
have : (0 : ENat) = (0 : Nat) := by rfl
rw [this, AnalyticAt.order_eq_nat_iff hf 0]
constructor
· intro hz
obtain ⟨g, _, h₂g, h₃g⟩ := hz
simp at h₃g
rw [Filter.Eventually.self_of_nhds h₃g]
tauto
· intro hz
use f
constructor
· exact hf
· constructor
· exact hz
· simp

View File

@ -97,6 +97,26 @@ theorem AnalyticOn.order_eq_nat_iff
exact ⟨h₁g z₀ z₀.2, ⟨h₂g, Filter.Eventually.of_forall h₃g⟩⟩ exact ⟨h₁g z₀ z₀.2, ⟨h₂g, Filter.Eventually.of_forall h₃g⟩⟩
theorem AnalyticOn.support_of_order₁
{f : }
{U : Set }
(hf : AnalyticOn f U) :
Function.support hf.order = U.restrict f⁻¹' {0} := by
ext u
simp [AnalyticOn.order]
rw [not_iff_comm, (hf u u.2).order_eq_zero_iff]
theorem AnalyticOn.support_of_order₂
{f : }
{U : Set }
(h₁U : IsPreconnected U)
(h₁f : AnalyticOn f U)
(h₂f : ∃ u ∈ U, f u ≠ 0) :
Function.support (ENat.toNat ∘ h₁f.order) = U.restrict f⁻¹' {0} := by
sorry
theorem AnalyticOn.eliminateZeros theorem AnalyticOn.eliminateZeros
{f : } {f : }
{U : Set } {U : Set }
@ -358,16 +378,11 @@ theorem AnalyticOnCompact.eliminateZeros₁
let A := (finiteZeros h₁U h₂U h₁f h₂f).toFinset let A := (finiteZeros h₁U h₂U h₁f h₂f).toFinset
let n : := by let n : U → := fun z ↦ (h₁f z z.2).order.toNat
intro z
by_cases hz : z ∈ U
· exact (h₁f z hz).order.toNat
· exact 0
have hn : ∀ a ∈ A, (h₁f a a.2).order = n a := by have hn : ∀ a ∈ A, (h₁f a a.2).order = n a := by
intro a _ intro a _
dsimp [n] dsimp [n, AnalyticOn.order]
simp
rw [eq_comm] rw [eq_comm]
apply XX h₁U apply XX h₁U
exact h₂f exact h₂f
@ -375,14 +390,9 @@ theorem AnalyticOnCompact.eliminateZeros₁
obtain ⟨g, h₁g, h₂g, h₃g⟩ := AnalyticOn.eliminateZeros (A := A) h₁f n hn obtain ⟨g, h₁g, h₂g, h₃g⟩ := AnalyticOn.eliminateZeros (A := A) h₁f n hn
use g use g
have inter : ∀ (z : ), f z = (∏ a ∈ A, (z - ↑a) ^ (h₁f.order a).toNat) • g z := by have inter : ∀ (z : ), f z = (∏ a ∈ A, (z - ↑a) ^ (h₁f (↑a) a.property).order.toNat) • g z := by
intro z intro z
rw [h₃g z] rw [h₃g z]
congr
funext a
congr
dsimp [n]
simp [a.2]
constructor constructor
@ -400,5 +410,15 @@ theorem AnalyticOnCompact.eliminateZeros₁
tauto tauto
rw [inter z] at this rw [inter z] at this
exact right_ne_zero_of_smul this exact right_ne_zero_of_smul this
· · intro z
exact inter let φ : U → := fun a ↦ (z - ↑a) ^ (h₁f.order a).toNat
have hφ : Function.mulSupport φ ⊆ A := by
intro x hx
simp [φ] at hx
have : (h₁f.order x).toNat ≠ 0 := by
sorry
sorry
rw [finprod_eq_prod_of_mulSupport_subset φ hφ]
rw [inter z]
rfl