File tree Expand file tree Collapse file tree
Mathlib/Analysis/Complex/Polynomial Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -587,6 +587,7 @@ import RealRooted.Mathlib.Algebra.Polynomial.Splits.Complex
587587import RealRooted.Mathlib.Algebra.Polynomial.Splits.Derivative
588588import RealRooted.Mathlib.Analysis.Complex.OpenMapping
589589import RealRooted.Mathlib.Analysis.Complex.Polynomial.ClosedRoots
590+ import RealRooted.Mathlib.Analysis.Complex.Polynomial.ClosedRoots.Real
590591import RealRooted.Mathlib.Analysis.Normed.Field.Approximation
591592import RealRooted.Mathlib.Analysis.Polynomial.Asymptotics
592593import RealRooted.Mathlib.Analysis.Polynomial.MahlerMeasure
Original file line number Diff line number Diff line change 1- import Mathlib.Algebra.Order.BigOperators.GroupWithZero.Multiset
2- import Mathlib.Algebra.Polynomial.Splits
3- import Mathlib.Analysis.Complex.Polynomial.Basic
1+ module
2+
3+ public import Mathlib.Algebra.Order.BigOperators.GroupWithZero.Multiset
4+ public import Mathlib.Algebra.Polynomial.Splits
5+ public import Mathlib.Analysis.Complex.Polynomial.Basic
6+
7+ public section
48
59/-!
610# Closed conditions on roots of polynomial limits
Original file line number Diff line number Diff line change 1+ module
2+
3+ public import RealRooted.Mathlib.Algebra.Polynomial.Splits.Complex
4+ public import RealRooted.Mathlib.Analysis.Complex.Polynomial.ClosedRoots
5+
6+ public section
7+
8+ noncomputable section
9+
10+ open Filter Topology
11+
12+ namespace Polynomial
13+
14+ /-- Pointwise limits of real splitting polynomials with uniformly bounded
15+ degree are zero or split. -/
16+ theorem eq_zero_or_splits_of_tendsto_eval_of_natDegree_le
17+ {p : ℕ → ℝ[X]} {p₀ : ℝ[X]} {N : ℕ}
18+ (hdeg : ∀ n, (p n).natDegree ≤ N)
19+ (hsplit : ∀ n, p n = 0 ∨ (p n).Splits)
20+ (heval : ∀ z : ℂ, Tendsto
21+ (fun n => ((p n).map Complex.ofRealHom).eval z) atTop
22+ (𝓝 ((p₀.map Complex.ofRealHom).eval z))) :
23+ p₀ = 0 ∨ p₀.Splits := by
24+ by_cases hp₀ : p₀ = 0
25+ · exact Or.inl hp₀
26+ right
27+ apply splits_of_all_roots_real
28+ intro z hz
29+ have hzroots : z ∈ (p₀.map Complex.ofRealHom).roots :=
30+ (mem_roots (Polynomial.map_ne_zero hp₀)).mpr hz
31+ have hreal : z ∈ {z : ℂ | z.im = 0 } :=
32+ roots_mem_of_tendsto_eval_of_natDegree_le
33+ (isClosed_eq Complex.continuous_im continuous_const)
34+ (fun n => by
35+ simpa only [natDegree_map_eq_of_injective Complex.ofRealHom.injective] using hdeg n)
36+ (fun n r hr => by
37+ rcases hsplit n with hpzero | hpsplits
38+ · rw [hpzero] at hr
39+ simp at hr
40+ · rw [hpsplits.roots_map Complex.ofRealHom, Multiset.mem_map] at hr
41+ obtain ⟨s, -, rfl⟩ := hr
42+ simp)
43+ heval z hzroots
44+ exact hreal
45+
46+ end Polynomial
Original file line number Diff line number Diff line change @@ -587,6 +587,7 @@ import RealRooted.Mathlib.Algebra.Polynomial.Splits.Complex
587587import RealRooted.Mathlib.Algebra.Polynomial.Splits.Derivative
588588import RealRooted.Mathlib.Analysis.Complex.OpenMapping
589589import RealRooted.Mathlib.Analysis.Complex.Polynomial.ClosedRoots
590+ import RealRooted.Mathlib.Analysis.Complex.Polynomial.ClosedRoots.Real
590591import RealRooted.Mathlib.Analysis.Normed.Field.Approximation
591592import RealRooted.Mathlib.Analysis.Polynomial.Asymptotics
592593import RealRooted.Mathlib.RingTheory.PowerSeries.CatalanQuadratic
Original file line number Diff line number Diff line change 1010 },
1111 "budgets" : {
1212 "RealRooted" : {
13- "max_modules" : 1177
13+ "max_modules" : 1178
1414 },
1515 "RealRooted.Production" : {
16- "max_modules" : 1056
16+ "max_modules" : 1057
1717 },
1818 "RealRooted.Tactic.Examples" : {
1919 "max_modules" : 633
402402 "RealRooted.Mathlib.Algebra.Polynomial.Splits.Complex" : {
403403 "max_modules" : 1
404404 },
405+ "RealRooted.Mathlib.Analysis.Complex.Polynomial.ClosedRoots.Real" : {
406+ "max_modules" : 3
407+ },
405408 "RealRooted.HermiteBiehler.Basic" : {
406409 "max_modules" : 13
407410 },
You can’t perform that action at this time.
0 commit comments