nevanlinna/Nevanlinna/divisor.lean

92 lines
2.0 KiB
Plaintext
Raw Normal View History

2024-09-30 14:12:33 +02:00
import Mathlib.Analysis.SpecialFunctions.Integrals
import Mathlib.Analysis.SpecialFunctions.Log.NegMulLog
import Mathlib.Analysis.Convex.SpecificFunctions.Deriv
2024-09-14 08:38:04 +02:00
import Nevanlinna.analyticAt
2024-11-06 15:33:48 +01:00
import Nevanlinna.mathlibAddOn
2024-09-14 08:38:04 +02:00
2024-10-07 07:56:42 +02:00
open Interval Topology
2024-09-30 14:12:33 +02:00
open Real Filter MeasureTheory intervalIntegral
2024-10-07 07:56:42 +02:00
structure Divisor
(U : Set )
where
2024-09-14 08:38:04 +02:00
toFun :
2024-10-07 07:56:42 +02:00
supportInU : toFun.support ⊆ U
2024-10-31 16:59:22 +01:00
locallyFiniteInU : ∀ x ∈ U, toFun =ᶠ[𝓝[≠] x] 0
2024-09-17 11:03:44 +02:00
2024-10-07 07:56:42 +02:00
instance
(U : Set ) :
CoeFun (Divisor U) (fun _ ↦ ) where
coe := Divisor.toFun
2024-09-17 11:03:44 +02:00
2024-10-07 07:56:42 +02:00
attribute [coe] Divisor.toFun
2024-11-06 15:33:48 +01:00
2024-11-06 16:08:17 +01:00
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))
2024-11-06 15:33:48 +01:00
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
sorry