@@ -430,22 +430,17 @@ theorem totalDegree_monomial_le (s : σ →₀ ℕ) (c : R) :
430430theorem totalDegree_X_pow [Nontrivial R] (s : σ) (n : ℕ) :
431431 (X s ^ n : MvPolynomial σ R).totalDegree = n := by simp [X_pow_eq_monomial, one_ne_zero]
432432
433- theorem totalDegree_list_prod :
434- ∀ s : List (MvPolynomial σ R), s.prod.totalDegree ≤ (s.map MvPolynomial.totalDegree).sum
435- | [] => by rw [List.prod_nil, totalDegree_one, List.map_nil, List.sum_nil]
436- | p::ps => by
437- grw [List.prod_cons, List.map, List.sum_cons, totalDegree_mul, totalDegree_list_prod]
433+ theorem totalDegree_list_prod (l : List (MvPolynomial σ R)) :
434+ l.prod.totalDegree ≤ (l.map MvPolynomial.totalDegree).sum :=
435+ l.apply_prod_le_sum_map _ totalDegree_one.le totalDegree_mul
438436
439437theorem totalDegree_multiset_prod (s : Multiset (MvPolynomial σ R)) :
440- s.prod.totalDegree ≤ (s.map MvPolynomial.totalDegree).sum := by
441- refine Quotient.inductionOn s fun l => ?_
442- rw [Multiset.quot_mk_to_coe, Multiset.prod_coe, Multiset.map_coe, Multiset.sum_coe]
443- exact totalDegree_list_prod l
438+ s.prod.totalDegree ≤ (s.map MvPolynomial.totalDegree).sum :=
439+ s.apply_prod_le_sum_map _ totalDegree_one.le totalDegree_mul
444440
445441theorem totalDegree_finset_prod {ι : Type *} (s : Finset ι) (f : ι → MvPolynomial σ R) :
446- (s.prod f).totalDegree ≤ ∑ i ∈ s, (f i).totalDegree := by
447- refine le_trans (totalDegree_multiset_prod _) ?_
448- simp only [Multiset.map_map, comp_apply, Finset.sum_map_val, le_refl]
442+ (s.prod f).totalDegree ≤ ∑ i ∈ s, (f i).totalDegree :=
443+ s.apply_prod_le_sum_apply _ totalDegree_one.le totalDegree_mul
449444
450445theorem totalDegree_finset_sum {ι : Type *} (s : Finset ι) (f : ι → MvPolynomial σ R) :
451446 (s.sum f).totalDegree ≤ Finset.sup s fun i => (f i).totalDegree := by
0 commit comments