Skip to content

Commit d2cd533

Browse files
committed
feat: use new predicate Meromorphic (leanprover-community#33152)
Following a discussion of Zulip, this very short PR ports the first functions to use the new predicate `Meromorphic`. Introduce two `fun_prop`s along the way. A much more massive PR that ports Value Distribution Theory will follow in a separate PR. [#mathlib4 > Introducing `Meromorphic` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Introducing.20.60Meromorphic.60/near/564522177)
1 parent dd5e5d9 commit d2cd533

1 file changed

Lines changed: 34 additions & 22 deletions

File tree

Mathlib/Analysis/Meromorphic/Basic.lean

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -516,28 +516,6 @@ theorem countable_compl_analyticAt_inter [SecondCountableTopology 𝕜] [Complet
516516
(isDiscrete_of_codiscreteWithin _)
517517
simpa using eventually_codiscreteWithin_analyticAt f h
518518

519-
/--
520-
The singular set of a meromorphic function is countable.
521-
-/
522-
theorem countable_compl_analyticAt [SecondCountableTopology 𝕜] [CompleteSpace E]
523-
(h : MeromorphicOn f Set.univ) :
524-
{z | AnalyticAt 𝕜 f z}ᶜ.Countable := by
525-
simpa using (countable_compl_analyticAt_inter h)
526-
527-
/--
528-
Meromorphic functions are measurable.
529-
-/
530-
theorem measurable [MeasurableSpace 𝕜] [SecondCountableTopology 𝕜] [BorelSpace 𝕜]
531-
[MeasurableSpace E] [CompleteSpace E] [BorelSpace E] (h : MeromorphicOn f Set.univ) :
532-
Measurable f := by
533-
set s := {z : 𝕜 | AnalyticAt 𝕜 f z}
534-
have h₁ : sᶜ.Countable := by simpa using h.countable_compl_analyticAt_inter
535-
have h₁' := h₁.to_subtype
536-
have h₂ : IsOpen s := isOpen_analyticAt 𝕜 f
537-
have h₃ : ContinuousOn f s := fun z hz ↦ hz.continuousAt.continuousWithinAt
538-
exact .of_union_range_cover (.subtype_coe h₂.measurableSet) (.subtype_coe h₁.measurableSet)
539-
(by simp [-mem_compl_iff]) h₃.restrict.measurable (measurable_of_countable _)
540-
541519
end MeromorphicOn
542520

543521
/-- Meromorphy of a function on all of 𝕜. -/
@@ -574,10 +552,17 @@ theorem sum (h : ∀ σ, Meromorphic (G σ)) :
574552
lemma sub (hf : Meromorphic f) (hg : Meromorphic g) :
575553
Meromorphic (f - g) := fun x ↦ (hf x).sub (hg x)
576554

555+
@[to_fun (attr := fun_prop)]
556+
lemma smul {f : 𝕜 → 𝕜} (hf : Meromorphic f) (hg : Meromorphic g) :
557+
Meromorphic (f • g) := fun x ↦ (hf x).smul (hg x)
558+
577559
@[to_fun (attr := fun_prop)]
578560
lemma mul {f g : 𝕜 → 𝕜} (hf : Meromorphic f) (hg : Meromorphic g) :
579561
Meromorphic (f * g) := fun x ↦ (hf x).mul (hg x)
580562

563+
@[to_fun (attr := fun_prop)]
564+
lemma inv {f : 𝕜 → 𝕜} (hf : Meromorphic f) : Meromorphic f⁻¹ := fun x ↦ (hf x).inv
565+
581566
@[to_fun (attr := fun_prop)]
582567
theorem prod (h : ∀ σ, Meromorphic (F σ)) :
583568
Meromorphic (∏ n ∈ s, F n) := fun x ↦ MeromorphicAt.prod (h · x)
@@ -600,4 +585,31 @@ protected lemma deriv [CompleteSpace E] (hf : Meromorphic f) : Meromorphic (deri
600585
lemma iterated_deriv [CompleteSpace E] {n : ℕ} (hf : Meromorphic f) :
601586
Meromorphic (deriv^[n] f) := fun x ↦ (hf x).iterated_deriv
602587

588+
/--
589+
The singular set of a meromorphic function is countable.
590+
-/
591+
theorem countable_compl_analyticAt [SecondCountableTopology 𝕜] [CompleteSpace E]
592+
(h : Meromorphic f) :
593+
{z | AnalyticAt 𝕜 f z}ᶜ.Countable := by
594+
simpa using (h.meromorphicOn (s := univ)).countable_compl_analyticAt_inter
595+
596+
@[deprecated (since := "2025-12-21")] alias MeromorphicOn.countable_compl_analyticAt :=
597+
countable_compl_analyticAt
598+
599+
/--
600+
Meromorphic functions are measurable.
601+
-/
602+
theorem measurable [MeasurableSpace 𝕜] [SecondCountableTopology 𝕜] [BorelSpace 𝕜]
603+
[MeasurableSpace E] [CompleteSpace E] [BorelSpace E] (h : Meromorphic f) :
604+
Measurable f := by
605+
set s := {z : 𝕜 | AnalyticAt 𝕜 f z}
606+
have h₁ : sᶜ.Countable := by simpa using h.countable_compl_analyticAt
607+
have h₁' := h₁.to_subtype
608+
have h₂ : IsOpen s := isOpen_analyticAt 𝕜 f
609+
have h₃ : ContinuousOn f s := fun z hz ↦ hz.continuousAt.continuousWithinAt
610+
exact .of_union_range_cover (.subtype_coe h₂.measurableSet) (.subtype_coe h₁.measurableSet)
611+
(by simp [- mem_compl_iff]) h₃.restrict.measurable (measurable_of_countable _)
612+
613+
@[deprecated (since := "2025-12-21")] alias MeromorphicOn.measurable := measurable
614+
603615
end Meromorphic

0 commit comments

Comments
 (0)