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)