Compare commits

..

3 Commits

Author SHA1 Message Date
Stefan Kebekus a95c34fd05 Update divisor.lean 2024-11-06 16:15:27 +01:00
Stefan Kebekus 9d6801c329 Working… 2024-11-06 16:08:17 +01:00
Stefan Kebekus 5cdc786144 Working… 2024-11-06 15:33:48 +01:00
2 changed files with 92 additions and 0 deletions

View File

@ -2,6 +2,7 @@ import Mathlib.Analysis.SpecialFunctions.Integrals
import Mathlib.Analysis.SpecialFunctions.Log.NegMulLog import Mathlib.Analysis.SpecialFunctions.Log.NegMulLog
import Mathlib.Analysis.Convex.SpecificFunctions.Deriv import Mathlib.Analysis.Convex.SpecificFunctions.Deriv
import Nevanlinna.analyticAt import Nevanlinna.analyticAt
import Nevanlinna.mathlibAddOn
open Interval Topology open Interval Topology
open Real Filter MeasureTheory intervalIntegral open Real Filter MeasureTheory intervalIntegral
@ -20,3 +21,73 @@ instance
coe := Divisor.toFun coe := Divisor.toFun
attribute [coe] Divisor.toFun attribute [coe] Divisor.toFun
theorem Divisor.discreteSupport
{U : Set }
(hU : IsClosed U)
(D : Divisor U) :
DiscreteTopology D.toFun.support := by
apply discreteTopology_subtype_iff.mpr
intro x hx
apply inf_principal_eq_bot.mpr
by_cases h₁x : x ∈ U
· let A := D.locallyFiniteInU x h₁x
refine mem_nhdsWithin.mpr ?_
rw [eventuallyEq_nhdsWithin_iff] at A
obtain ⟨U, h₁U, h₂U, h₃U⟩ := eventually_nhds_iff.1 A
use U
constructor
· exact h₂U
· constructor
· exact h₃U
· intro y hy
let C := h₁U y hy.1 hy.2
tauto
· refine mem_nhdsWithin.mpr ?_
use Uᶜ
constructor
· simpa
· constructor
· tauto
· intro y _
let A := D.supportInU
simp at A
simp
exact False.elim (h₁x (A x hx))
theorem Divisor.closedSupport
{U : Set }
(hU : IsClosed U)
(D : Divisor U) :
IsClosed D.toFun.support := by
rw [← isOpen_compl_iff]
rw [isOpen_iff_eventually]
intro x hx
by_cases h₁x : x ∈ U
· have A := D.locallyFiniteInU x h₁x
simp [A]
simp at hx
let B := Mnhds A hx
simpa
· rw [eventually_iff_exists_mem]
use Uᶜ
constructor
· exact IsClosed.compl_mem_nhds hU h₁x
· intro y hy
simp
exact Function.nmem_support.mp fun a => hy (D.supportInU a)
theorem Divisor.finiteSupport
{U : Set }
(hU : IsCompact U)
(D : Divisor U) :
Set.Finite D.toFun.support := by
apply IsCompact.finite
· apply IsCompact.of_isClosed_subset hU (D.closedSupport hU.isClosed)
exact D.supportInU
· exact D.discreteSupport hU.isClosed

View File

@ -1,6 +1,7 @@
import Mathlib.Analysis.Analytic.Meromorphic import Mathlib.Analysis.Analytic.Meromorphic
import Mathlib.Analysis.Calculus.ContDiff.Basic import Mathlib.Analysis.Calculus.ContDiff.Basic
import Mathlib.Analysis.Calculus.FDeriv.Add import Mathlib.Analysis.Calculus.FDeriv.Add
import Nevanlinna.analyticAt
variable {𝕜 : Type*} [NontriviallyNormedField 𝕜] variable {𝕜 : Type*} [NontriviallyNormedField 𝕜]
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E] variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
@ -51,3 +52,23 @@ theorem meromorphicAt_congr'
{f : 𝕜 → E} {g : 𝕜 → E} {x : 𝕜} {f : 𝕜 → E} {g : 𝕜 → E} {x : 𝕜}
(h : f =ᶠ[nhds x] g) : MeromorphicAt f x ↔ MeromorphicAt g x := (h : f =ᶠ[nhds x] g) : MeromorphicAt f x ↔ MeromorphicAt g x :=
meromorphicAt_congr (Filter.EventuallyEq.filter_mono h nhdsWithin_le_nhds) meromorphicAt_congr (Filter.EventuallyEq.filter_mono h nhdsWithin_le_nhds)
open Topology Filter
lemma Mnhds
{α : Type}
{f g : α}
{z₀ : }
(h₁ : f =ᶠ[𝓝[≠] z₀] g)
(h₂ : f z₀ = g z₀) :
f =ᶠ[𝓝 z₀] g := by
apply eventually_nhds_iff.2
obtain ⟨t, h₁t, h₂t⟩ := eventually_nhds_iff.1 (eventually_nhdsWithin_iff.1 h₁)
use t
constructor
· intro y hy
by_cases h₂y : y ∈ ({z₀}ᶜ : Set )
· exact h₁t y hy h₂y
· simp at h₂y
rwa [h₂y]
· exact h₂t