@@ -66,14 +66,11 @@ alias splits_of_natDegree_le_one := Splits.of_natDegree_le_one
6666@[deprecated (since := "2025-11-24")]
6767alias splits_of_natDegree_eq_one := Splits.of_natDegree_eq_one
6868
69- theorem splits_mul {f g : K[X]} (hf : Splits (f.map i)) (hg : Splits (g.map i)) :
70- Splits ((f * g).map i) := by
71- simp [hf.mul hg]
69+ @[deprecated (since := "2025-11-25")]
70+ alias splits_mul := Splits.mul
7271
73- theorem splits_of_splits_mul' {f g : K[X]} (hfg : (f * g).map i ≠ 0 ) (h : Splits ((f * g).map i)) :
74- Splits (f.map i) ∧ Splits (g.map i) := by
75- simp only [Splits, Polynomial.map_mul, mul_ne_zero_iff] at hfg h
76- exact (splits_mul_iff hfg.1 hfg.2 ).mp h
72+ @[deprecated (since := "2025-11-25")]
73+ alias splits_of_splits_mul' := splits_mul_iff
7774
7875@[deprecated "Use `Polynomial.map_map` instead." (since := "2025-11-24")]
7976theorem splits_map_iff {L : Type *} [CommRing L] (i : K →+* L) (j : L →+* F) {f : K[X]} :
@@ -83,9 +80,6 @@ theorem splits_map_iff {L : Type*} [CommRing L] (i : K →+* L) (j : L →+* F)
8380@[deprecated (since := "2025-11-24")]
8481alias splits_one := Splits.one
8582
86- theorem splits_of_isUnit [IsDomain K] {u : K[X]} (hu : IsUnit u) : (u.map i).Splits :=
87- (isUnit_iff.mp hu).choose_spec.2 ▸ map_C i ▸ Splits.C _
88-
8983@[deprecated (since := "2025-11-24")]
9084alias splits_X_sub_C := Splits.X_sub_C
9185
@@ -108,43 +102,9 @@ theorem splits_id_iff_splits {f : K[X]} :
108102
109103variable {i}
110104
111- theorem Splits.comp_of_degree_le_one {f : L[X]} {p : L[X]} (hd : p.degree ≤ 1 )
112- (h : f.Splits) : (f.comp p).Splits := by
113- obtain ⟨m, hm⟩ := splits_iff_exists_multiset.mp h
114- rw [hm, mul_comp, C_comp, multiset_prod_comp]
115- refine (Splits.C _).mul (Splits.multisetProd ?_)
116- simp only [Multiset.mem_map]
117- rintro - ⟨-, ⟨a, -, rfl⟩, rfl⟩
118- apply Splits.of_degree_le_one
119- grw [sub_comp, X_comp, C_comp, degree_sub_le, hd, degree_C_le, max_eq_left zero_le_one]
120-
121- @[deprecated (since := "2025-11-24")]
105+ @[deprecated (since := "2025-11-25")]
122106alias Splits.comp_of_map_degree_le_one := Splits.comp_of_degree_le_one
123107
124- theorem splits_iff_comp_splits_of_degree_eq_one {f : L[X]} {p : L[X]} (hd : p.degree = 1 ) :
125- f.Splits ↔ (f.comp p).Splits := by
126- refine ⟨Splits.comp_of_degree_le_one hd.le, fun h ↦ ?_⟩
127- let _ := invertibleOfNonzero (leadingCoeff_ne_zero.mpr
128- (ne_zero_of_degree_gt (n := ⊥) (by rw [hd]; decide)))
129- have : f = (f.comp p).comp ((C ⅟p.leadingCoeff *
130- (X - C (p.coeff 0 )))) := by
131- rw [comp_assoc]
132- nth_rw 1 [eq_X_add_C_of_degree_eq_one hd]
133- simp only [invOf_eq_inv, mul_sub, ← C_mul, add_comp, mul_comp, C_comp, X_comp,
134- ← mul_assoc]
135- simp
136- rw [this]
137- refine Splits.comp_of_degree_le_one ?_ h
138- simp [degree_C (inv_ne_zero (Invertible.ne_zero (a := p.leadingCoeff)))]
139-
140- theorem Splits.comp_X_sub_C (a : L) {f : L[X]}
141- (h : f.Splits) : (f.comp (X - C a)).Splits :=
142- Splits.comp_of_degree_le_one (degree_X_sub_C_le _) h
143-
144- theorem Splits.comp_X_add_C (a : L) {f : L[X]}
145- (h : f.Splits) : (f.comp (X + C a)).Splits :=
146- Splits.comp_of_degree_le_one (degree_X_add_C a).le h
147-
148108variable (i)
149109
150110theorem exists_root_of_splits' {f : K[X]} (hs : Splits (f.map i)) (hf0 : degree (f.map i) ≠ 0 ) :
@@ -194,22 +154,19 @@ theorem Splits.def {i : K →+* L} {f : K[X]} (h : Splits (f.map i)) :
194154 f = 0 ∨ ∀ {g : L[X]}, Irreducible g → g ∣ f.map i → degree g = 1 :=
195155 (splits_iff i f).mp h
196156
197- theorem splits_of_splits_mul {f g : K[X]} (hfg : f * g ≠ 0 ) (h : Splits ((f * g).map i)) :
198- Splits (f.map i) ∧ Splits (g.map i) :=
199- splits_of_splits_mul' i (map_ne_zero hfg) h
157+ @[deprecated (since := "2025-11-25")]
158+ alias splits_of_splits_mul := splits_mul_iff
200159
201- theorem splits_of_splits_of_dvd {f g : K[X]} (hf0 : f ≠ 0 ) (hf : Splits (f.map i)) (hgf : g ∣ f) :
202- Splits (g.map i) := by
203- obtain ⟨f, rfl⟩ := hgf
204- exact (splits_of_splits_mul i hf0 hf).1
160+ @[deprecated (since := "2025-11-25")]
161+ alias splits_of_splits_of_dvd := Splits.splits_of_dvd
205162
206163theorem splits_of_splits_gcd_left [DecidableEq K] {f g : K[X]} (hf0 : f ≠ 0 )
207164 (hf : Splits (f.map i)) : Splits ((EuclideanDomain.gcd f g).map i) :=
208- Polynomial.splits_of_splits_of_dvd i hf0 hf ( EuclideanDomain.gcd_dvd_left f g)
165+ Splits.splits_of_dvd hf (map_ne_zero hf0) <| map_dvd i <| EuclideanDomain.gcd_dvd_left f g
209166
210167theorem splits_of_splits_gcd_right [DecidableEq K] {f g : K[X]} (hg0 : g ≠ 0 )
211168 (hg : Splits (g.map i)) : Splits ((EuclideanDomain.gcd f g).map i) :=
212- Polynomial.splits_of_splits_of_dvd i hg0 hg ( EuclideanDomain.gcd_dvd_right f g)
169+ Splits.splits_of_dvd hg (map_ne_zero hg0) <| map_dvd i <| EuclideanDomain.gcd_dvd_right f g
213170
214171theorem splits_prod_iff {ι : Type u} {s : ι → K[X]} {t : Finset ι} :
215172 (∀ j ∈ t, s j ≠ 0 ) → (((∏ x ∈ t, s x).map i).Splits ↔ ∀ j ∈ t, ((s j).map i).Splits) := by
@@ -286,19 +243,15 @@ theorem adjoin_rootSet_eq_range [Algebra R K] [Algebra R L] {p : R[X]}
286243 rw [← image_rootSet h f, Algebra.adjoin_image, ← Algebra.map_top]
287244 exact (Subalgebra.map_injective f.toRingHom.injective).eq_iff
288245
289- theorem eq_prod_roots_of_splits {p : K[X]} {i : K →+* L} (hsplit : Splits (p.map i)) :
290- p.map i = C (i p.leadingCoeff) * ((p.map i).roots.map fun a => X - C a).prod := by
291- rw [← leadingCoeff_map]; symm
292- apply C_leadingCoeff_mul_prod_multiset_X_sub_C
293- rw [natDegree_map]; exact (natDegree_eq_card_roots hsplit).symm
246+ @[deprecated (since := "2025-11-25")]
247+ alias eq_prod_roots_of_splits := Splits.eq_prod_roots
294248
295- theorem eq_prod_roots_of_splits_id {p : K[X]} (hsplit : Splits p) :
296- p = C p.leadingCoeff * (p.roots.map fun a => X - C a).prod :=
297- hsplit.eq_prod_roots
249+ @[deprecated (since := "2025-11-25")]
250+ alias eq_prod_roots_of_splits_id := Splits.eq_prod_roots
298251
299252theorem Splits.dvd_of_roots_le_roots {p q : K[X]} (hp : p.Splits) (hp0 : p ≠ 0 )
300253 (hq : p.roots ≤ q.roots) : p ∣ q := by
301- rw [eq_prod_roots_of_splits_id hp, C_mul_dvd (leadingCoeff_ne_zero.2 hp0)]
254+ rw [Splits.eq_prod_roots hp, C_mul_dvd (leadingCoeff_ne_zero.2 hp0)]
302255 exact dvd_trans
303256 (Multiset.prod_dvd_prod_of_le (Multiset.map_le_map hq))
304257 (prod_multiset_X_sub_C_dvd _)
@@ -311,7 +264,7 @@ theorem Splits.dvd_iff_roots_le_roots {p q : K[X]}
311264theorem aeval_eq_prod_aroots_sub_of_splits [Algebra K L] {p : K[X]}
312265 (hsplit : Splits (p.map (algebraMap K L))) (v : L) :
313266 aeval v p = algebraMap K L p.leadingCoeff * ((p.aroots L).map fun a ↦ v - a).prod := by
314- rw [← eval_map_algebraMap, eq_prod_roots_of_splits hsplit]
267+ rw [← eval_map_algebraMap, Splits.eq_prod_roots hsplit]
315268 simp [eval_multiset_prod]
316269
317270theorem eval_eq_prod_roots_sub_of_splits_id {p : K[X]}
@@ -322,7 +275,7 @@ theorem eval_eq_prod_roots_sub_of_splits_id {p : K[X]}
322275
323276theorem eq_prod_roots_of_monic_of_splits_id {p : K[X]} (m : Monic p)
324277 (hsplit : Splits p) : p = (p.roots.map fun a => X - C a).prod := by
325- convert eq_prod_roots_of_splits_id hsplit
278+ convert Splits.eq_prod_roots hsplit
326279 simp [m]
327280
328281theorem aeval_eq_prod_aroots_sub_of_monic_of_splits [Algebra K L] {p : K[X]} (m : Monic p)
@@ -338,7 +291,7 @@ theorem eval_eq_prod_roots_sub_of_monic_of_splits_id {p : K[X]} (m : Monic p)
338291theorem eq_X_sub_C_of_splits_of_single_root {x : K} {h : K[X]} (h_splits : Splits (h.map i))
339292 (h_roots : (h.map i).roots = {i x}) : h = C h.leadingCoeff * (X - C x) := by
340293 apply Polynomial.map_injective _ i.injective
341- rw [eq_prod_roots_of_splits h_splits, h_roots]
294+ rw [Splits.eq_prod_roots h_splits, h_roots]
342295 simp
343296
344297variable (R) in
@@ -389,7 +342,7 @@ theorem splits_of_comp (j : L →+* F) {f : K[X]} (h : Splits (f.map (j.comp i))
389342 choose lift lift_eq using roots_mem_range
390343 rw [splits_iff_exists_multiset]
391344 refine ⟨(f.map (j.comp i)).roots.pmap lift fun _ ↦ id, map_injective _ j.injective ?_⟩
392- conv_lhs => rw [Polynomial.map_map, eq_prod_roots_of_splits h]
345+ conv_lhs => rw [Polynomial.map_map, Splits.eq_prod_roots h]
393346 simp_rw [Polynomial.map_mul, Polynomial.map_multiset_prod, Multiset.map_pmap, Polynomial.map_sub,
394347 map_C, map_X, lift_eq, Multiset.pmap_eq_map]
395348 simp
@@ -428,7 +381,7 @@ theorem eval₂_derivative_of_splits [DecidableEq L] {P : K[X]} {f : K →+* L}
428381 (x : L) :
429382 eval₂ f x P.derivative = f (P.leadingCoeff) *
430383 ((P.map f).roots.map fun a ↦ (((P.map f).roots.erase a).map (x - ·)).prod).sum := by
431- conv_lhs => rw [← eval_map, ← derivative_map, eq_prod_roots_of_splits hP]
384+ conv_lhs => rw [← eval_map, ← derivative_map, Splits.eq_prod_roots hP]
432385 classical
433386 simp [derivative_prod, eval_multisetSum, eval_multiset_prod]
434387
@@ -460,7 +413,7 @@ theorem eval_derivative_eq_eval_mul_sum_of_splits {p : K[X]} {x : K}
460413 classical
461414 suffices p.roots.map (fun z ↦ p.leadingCoeff * ((p.roots.erase z).map (fun w ↦ x - w) ).prod) =
462415 p.roots.map fun i ↦ p.leadingCoeff * ((x - i)⁻¹ * (p.roots.map (fun z ↦ x - z)).prod) by
463- nth_rw 2 [p.eq_prod_roots_of_splits_id h]
416+ nth_rw 2 [Splits.eq_prod_roots h]
464417 simp [eval_derivative_of_splits h, ← Multiset.sum_map_mul_left, this, eval_multiset_prod,
465418 mul_comm, mul_left_comm]
466419 refine Multiset.map_congr rfl fun z hz ↦ ?_
@@ -488,7 +441,7 @@ theorem coeff_zero_eq_prod_roots_of_monic_of_splits {P : K[X]} (hmo : P.Monic)
488441
489442theorem nextCoeff_eq_neg_sum_roots_mul_leadingCoeff_of_splits {P : K[X]}
490443 (hP : P.Splits) : P.nextCoeff = -P.leadingCoeff * P.roots.sum := by
491- nth_rw 1 [eq_prod_roots_of_splits_id hP]
444+ nth_rw 1 [Splits.eq_prod_roots hP]
492445 simp [Multiset.sum_map_neg', monic_X_sub_C, Monic.nextCoeff_multiset_prod]
493446
494447/-- If `P` is a monic polynomial that splits, then `P.nextCoeff` equals the negative of the sum
0 commit comments