Update stronglyMeromorphicOn.lean
This commit is contained in:
		| @@ -1,5 +1,5 @@ | |||||||
| import Nevanlinna.stronglyMeromorphicAt | import Nevanlinna.stronglyMeromorphicAt | ||||||
|  | import Mathlib.Algebra.BigOperators.Finprod | ||||||
|  |  | ||||||
| open Topology | open Topology | ||||||
|  |  | ||||||
| @@ -79,12 +79,77 @@ theorem makeStronglyMeromorphicOn_changeDiscrete | |||||||
|     · simp [h₂v] |     · simp [h₂v] | ||||||
|  |  | ||||||
|  |  | ||||||
| theorem StronglyMeromorphicOn_of_makeStronglyMeromorphic | theorem stronglyMeromorphicOn_ratlPolynomial | ||||||
|   {f : ℂ → ℂ} |   {U : Set ℂ} | ||||||
|   (hf : MeromorphicOn f U) : |   (d : ℂ → ℤ) : | ||||||
|   StronglyMeromorphicOn hf.makeStronglyMeromorphicOn U := by |   StronglyMeromorphicOn (∏ᶠ u, fun z ↦ (z - u) ^ d u) U := by | ||||||
|  |   by_cases hd : (Function.mulSupport fun u z => (z - u) ^ d u).Finite | ||||||
|  |   · rw [finprod_eq_prod _ hd] | ||||||
|  |     intro z h₁z | ||||||
|  |     by_cases h₂z : d z = 0 | ||||||
|  |     · apply AnalyticAt.stronglyMeromorphicAt | ||||||
|  |       rw [Finset.prod_fn] | ||||||
|  |       apply Finset.analyticAt_prod | ||||||
|  |       intro u hu | ||||||
|  |       by_cases huz : u = z | ||||||
|  |       · rw [← huz] at h₂z | ||||||
|  |         rw [h₂z] | ||||||
|  |         simp | ||||||
|  |         exact analyticAt_const | ||||||
|  |       · apply AnalyticAt.zpow | ||||||
|  |         apply AnalyticAt.sub | ||||||
|  |         apply analyticAt_id | ||||||
|  |         apply analyticAt_const | ||||||
|  |         rwa [sub_ne_zero, ne_comm] | ||||||
|  |     · have : z ∈ hd.toFinset := by | ||||||
|  |         simp | ||||||
|  |         by_contra hCon | ||||||
|  |         have A : 0 ≠ (1 : ℂ → ℂ) z := by simp | ||||||
|  |         rw [← hCon] at A | ||||||
|  |         simp only [sub_self] at A | ||||||
|  |         rw [ne_comm] at A | ||||||
|  |         rw [zpow_ne_zero_iff] at A | ||||||
|  |         tauto | ||||||
|  |         exact h₂z | ||||||
|  |       rw [← Finset.mul_prod_erase hd.toFinset _ this] | ||||||
|  |       right | ||||||
|  |       use d z | ||||||
|  |       use ∏ x ∈ hd.toFinset.erase z, fun z => (z - x) ^ d x | ||||||
|  |       constructor | ||||||
|  |       · rw [Finset.prod_fn] | ||||||
|  |         apply Finset.analyticAt_prod | ||||||
|  |         intro u hu | ||||||
|  |         apply AnalyticAt.zpow | ||||||
|  |         apply AnalyticAt.sub | ||||||
|  |         apply analyticAt_id | ||||||
|  |         apply analyticAt_const | ||||||
|  |         rw [sub_ne_zero, ne_comm] | ||||||
|  |         by_contra hCon | ||||||
|  |         simp at hu | ||||||
|  |         tauto | ||||||
|  |       · constructor | ||||||
|  |         · simp only [Finset.prod_apply] | ||||||
|  |           rw [Finset.prod_ne_zero_iff] | ||||||
|  |           intro u hu | ||||||
|  |           rw [zpow_ne_zero_iff] | ||||||
|  |           rw [sub_ne_zero] | ||||||
|  |           by_contra hCon | ||||||
|  |           rw [hCon] at hu | ||||||
|  |           let A := Finset.not_mem_erase u hd.toFinset | ||||||
|  |           tauto | ||||||
|  |           -- | ||||||
|  |           have : u ∈ hd.toFinset := by | ||||||
|  |             exact Finset.mem_of_mem_erase hu | ||||||
|  |           simp at this | ||||||
|  |           by_contra hCon | ||||||
|  |           rw [hCon] at this | ||||||
|  |           simp at this | ||||||
|  |           tauto | ||||||
|  |         · exact Filter.Eventually.of_forall (congrFun rfl) | ||||||
|  |  | ||||||
|   sorry |   · rw [finprod_of_infinite_mulSupport hd] | ||||||
|  |     apply AnalyticOn.stronglyMeromorphicOn | ||||||
|  |     apply analyticOnNhd_const | ||||||
|  |  | ||||||
|  |  | ||||||
| theorem makeStronglyMeromorphicOn_changeDiscrete' | theorem makeStronglyMeromorphicOn_changeDiscrete' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Stefan Kebekus
					Stefan Kebekus