@@ -17,6 +17,7 @@ This file contains instances and definitions relating `mul_semiring_action` to `
1717
1818variables (M : Type *) [monoid M]
1919
20+ open_locale polynomial
2021namespace polynomial
2122
2223variables (R : Type *) [semiring R]
@@ -27,7 +28,7 @@ lemma smul_eq_map [mul_semiring_action M R] (m : M) :
2728 ((•) m) = map (mul_semiring_action.to_ring_hom M R m) :=
2829begin
2930 suffices :
30- distrib_mul_action.to_add_monoid_hom (polynomial R) m =
31+ distrib_mul_action.to_add_monoid_hom R[X] m =
3132 (map_ring_hom (mul_semiring_action.to_ring_hom M R m)).to_add_monoid_hom,
3233 { ext1 r, exact add_monoid_hom.congr_fun this r, },
3334 ext n r : 2 ,
3738
3839variables (M)
3940
40- noncomputable instance [mul_semiring_action M R] : mul_semiring_action M (polynomial R) :=
41+ noncomputable instance [mul_semiring_action M R] : mul_semiring_action M R[X] :=
4142{ smul := (•),
4243 smul_one := λ m, (smul_eq_map R m).symm ▸ map_one (mul_semiring_action.to_ring_hom M R m),
4344 smul_mul := λ m p q, (smul_eq_map R m).symm ▸ map_mul (mul_semiring_action.to_ring_hom M R m),
@@ -47,12 +48,12 @@ variables {M R}
4748
4849variables [mul_semiring_action M R]
4950
50- @[simp] lemma smul_X (m : M) : (m • X : polynomial R ) = X :=
51+ @[simp] lemma smul_X (m : M) : (m • X : R[X] ) = X :=
5152(smul_eq_map R m).symm ▸ map_X _
5253
5354variables (S : Type *) [comm_semiring S] [mul_semiring_action M S]
5455
55- theorem smul_eval_smul (m : M) (f : polynomial S ) (x : S) :
56+ theorem smul_eval_smul (m : M) (f : S[X] ) (x : S) :
5657 (m • f).eval (m • x) = m • f.eval x :=
5758polynomial.induction_on f
5859 (λ r, by rw [smul_C, eval_C, eval_C])
@@ -62,11 +63,11 @@ polynomial.induction_on f
6263
6364variables (G : Type *) [group G]
6465
65- theorem eval_smul' [mul_semiring_action G S] (g : G) (f : polynomial S ) (x : S) :
66+ theorem eval_smul' [mul_semiring_action G S] (g : G) (f : S[X] ) (x : S) :
6667 f.eval (g • x) = g • (g⁻¹ • f).eval x :=
6768by rw [← smul_eval_smul, smul_inv_smul]
6869
69- theorem smul_eval [mul_semiring_action G S] (g : G) (f : polynomial S ) (x : S) :
70+ theorem smul_eval [mul_semiring_action G S] (g : G) (f : S[X] ) (x : S) :
7071 (g • f).eval x = g • f.eval (g⁻¹ • x) :=
7172by rw [← smul_eval_smul, smul_inv_smul]
7273
@@ -80,7 +81,7 @@ open mul_action
8081open_locale classical
8182
8283/-- the product of `(X - g • x)` over distinct `g • x`. -/
83- noncomputable def prod_X_sub_smul (x : R) : polynomial R :=
84+ noncomputable def prod_X_sub_smul (x : R) : R[X] :=
8485(finset.univ : finset (G ⧸ mul_action.stabilizer G x)).prod $
8586λ g, polynomial.X - polynomial.C (of_quotient_stabilizer G x g)
8687
@@ -89,7 +90,7 @@ polynomial.monic_prod_of_monic _ _ $ λ g _, polynomial.monic_X_sub_C _
8990
9091theorem prod_X_sub_smul.eval (x : R) : (prod_X_sub_smul G R x).eval x = 0 :=
9192(monoid_hom.map_prod
92- ((polynomial.aeval x).to_ring_hom.to_monoid_hom : polynomial R →* R) _ _).trans $
93+ ((polynomial.aeval x).to_ring_hom.to_monoid_hom : R[X] →* R) _ _).trans $
9394 finset.prod_eq_zero (finset.mem_univ $ quotient_group.mk 1 ) $
9495 by simp
9596
@@ -112,7 +113,7 @@ variables {Q : Type*} [comm_semiring Q] [mul_semiring_action M Q]
112113open polynomial
113114
114115/-- An equivariant map induces an equivariant map on polynomials. -/
115- protected noncomputable def polynomial (g : P →+*[M] Q) : polynomial P →+*[M] polynomial Q :=
116+ protected noncomputable def polynomial (g : P →+*[M] Q) : P[X] →+*[M] Q[X] :=
116117{ to_fun := map g,
117118 map_smul' := λ m p, polynomial.induction_on p
118119 (λ b, by rw [smul_C, map_C, coe_fn_coe, g.map_smul, map_C, coe_fn_coe, smul_C])
@@ -126,7 +127,7 @@ protected noncomputable def polynomial (g : P →+*[M] Q) : polynomial P →+*[M
126127 map_mul' := λ p q, polynomial.map_mul g }
127128
128129@[simp] theorem coe_polynomial (g : P →+*[M] Q) :
129- (g.polynomial : polynomial P → polynomial Q ) = map g :=
130+ (g.polynomial : P[X] → Q[X] ) = map g :=
130131rfl
131132
132133end mul_semiring_action_hom
0 commit comments