@@ -72,7 +72,7 @@ polynomial, multivariate polynomial, multivariable polynomial
7272
7373noncomputable theory
7474
75- open_locale classical big_operators
75+ open_locale big_operators
7676
7777open set function finsupp add_monoid_algebra
7878open_locale big_operators
@@ -417,22 +417,22 @@ by convert rfl
417417lemma support_monomial_subset : (monomial s a).support ⊆ {s} :=
418418support_single_subset
419419
420- lemma support_add : (p + q).support ⊆ p.support ∪ q.support := finsupp.support_add
420+ lemma support_add [decidable_eq σ] : (p + q).support ⊆ p.support ∪ q.support := finsupp.support_add
421421
422422lemma support_X [nontrivial R] : (X n : mv_polynomial σ R).support = {single n 1 } :=
423- by rw [X, support_monomial, if_neg]; exact one_ne_zero
423+ by classical; rw [X, support_monomial, if_neg]; exact one_ne_zero
424424
425425lemma support_X_pow [nontrivial R] (s : σ) (n : ℕ) :
426426 (X s ^ n : mv_polynomial σ R).support = {finsupp.single s n} :=
427- by rw [X_pow_eq_monomial, support_monomial, if_neg (one_ne_zero' R)]
427+ by classical; rw [X_pow_eq_monomial, support_monomial, if_neg (one_ne_zero' R)]
428428
429429@[simp] lemma support_zero : (0 : mv_polynomial σ R).support = ∅ := rfl
430430
431431lemma support_smul {S₁ : Type *} [smul_zero_class S₁ R] {a : S₁} {f : mv_polynomial σ R} :
432432 (a • f).support ⊆ f.support :=
433433finsupp.support_smul
434434
435- lemma support_sum {α : Type *} {s : finset α} {f : α → mv_polynomial σ R} :
435+ lemma support_sum {α : Type *} [decidable_eq σ] {s : finset α} {f : α → mv_polynomial σ R} :
436436 (∑ x in s, f x).support ⊆ s.bUnion (λ x, (f x).support) := finsupp.support_finset_sum
437437
438438end support
@@ -455,7 +455,7 @@ lemma sum_def {A} [add_comm_monoid A] {p : mv_polynomial σ R} {b : (σ →₀
455455 p.sum b = ∑ m in p.support, b m (p.coeff m) :=
456456by simp [support, finsupp.sum, coeff]
457457
458- lemma support_mul (p q : mv_polynomial σ R) :
458+ lemma support_mul [decidable_eq σ] (p q : mv_polynomial σ R) :
459459 (p * q).support ⊆ p.support.bUnion (λ a, q.support.bUnion $ λ b, {a + b}) :=
460460by convert add_monoid_algebra.support_mul p q; ext; convert iff.rfl
461461
@@ -525,11 +525,12 @@ by rw [← coeff_X_pow, pow_one]
525525
526526@[simp] lemma coeff_X (i : σ) :
527527 coeff (single i 1 ) (X i : mv_polynomial σ R) = 1 :=
528- by rw [coeff_X', if_pos rfl]
528+ by classical; rw [coeff_X', if_pos rfl]
529529
530530@[simp] lemma coeff_C_mul (m) (a : R) (p : mv_polynomial σ R) :
531531 coeff m (C a * p) = a * coeff m p :=
532532begin
533+ classical,
533534 rw [mul_def, sum_C],
534535 { simp [sum_def, coeff_sum] {contextual := tt} },
535536 simp
589590lemma coeff_mul_monomial' (m) (s : σ →₀ ℕ) (r : R) (p : mv_polynomial σ R) :
590591 coeff m (p * monomial s r) = if s ≤ m then coeff (m - s) p * r else 0 :=
591592begin
593+ classical,
592594 obtain rfl | hr := eq_or_ne r 0 ,
593595 { simp only [monomial_zero, coeff_zero, mul_zero, if_t_t], },
594596 haveI : nontrivial R := nontrivial_of_ne _ _ hr,
@@ -742,9 +744,12 @@ finsupp.sum_zero_index
742744section
743745
744746@[simp] lemma eval₂_add : (p + q).eval₂ f g = p.eval₂ f g + q.eval₂ f g :=
745- finsupp.sum_add_index
746- (by simp [f.map_zero])
747- (by simp [add_mul, f.map_add])
747+ begin
748+ classical,
749+ exact finsupp.sum_add_index
750+ (by simp [f.map_zero])
751+ (by simp [add_mul, f.map_add])
752+ end
748753
749754@[simp] lemma eval₂_monomial : (monomial s a).eval₂ f g = f a * s.prod (λn e, g n ^ e) :=
750755finsupp.sum_single_index (by simp [f.map_zero])
@@ -761,6 +766,7 @@ by simp [eval₂_monomial, f.map_one, X, prod_single_index, pow_one]
761766lemma eval₂_mul_monomial :
762767 ∀{s a}, (p * monomial s a).eval₂ f g = p.eval₂ f g * f a * s.prod (λn e, g n ^ e) :=
763768begin
769+ classical,
764770 apply mv_polynomial.induction_on p,
765771 { assume a' s a,
766772 simp [C_mul_monomial, eval₂_monomial, f.map_mul] },
9941000
9951001lemma coeff_map (p : mv_polynomial σ R) : ∀ (m : σ →₀ ℕ), coeff m (map f p) = f (coeff m p) :=
9961002begin
1003+ classical,
9971004 apply mv_polynomial.induction_on p; clear p,
9981005 { intros r m, rw [map_C], simp only [coeff_C], split_ifs, {refl}, rw f.map_zero },
9991006 { intros p q hp hq m, simp only [hp, hq, (map f).map_add, coeff_add], rw f.map_add },
0 commit comments