@@ -6,12 +6,12 @@ Authors: Kenny Lau
6
6
Group action on rings.
7
7
-/
8
8
9
- import group_theory.group_action data.equiv.ring
9
+ import group_theory.group_action data.equiv.ring data.polynomial
10
10
11
11
universes u v
12
12
13
13
variables (M G : Type u) [monoid M] [group G]
14
- variables (A R F : Type v) [add_monoid A] [semiring R] [field F]
14
+ variables (A R S F : Type v) [add_monoid A] [semiring R] [comm_semiring S ] [field F]
15
15
16
16
section prio
17
17
set_option default_priority 100 -- see Note [default priority]
@@ -99,3 +99,26 @@ attribute [simp] smul_one smul_mul' smul_zero smul_add
99
99
nat.rec_on n (smul_one x) $ λ n ih, (smul_mul' x m (m ^ n)).trans $ congr_arg _ ih
100
100
101
101
end simp_lemmas
102
+
103
+ variables [mul_semiring_action M S]
104
+
105
+ noncomputable instance : mul_semiring_action M (polynomial S) :=
106
+ { smul := λ m, polynomial.map $ mul_semiring_action.to_semiring_hom M S m,
107
+ one_smul := λ p, by { ext n, erw polynomial.coeff_map, exact one_smul M (p.coeff n) },
108
+ mul_smul := λ m n p, by { ext i,
109
+ iterate 3 { rw polynomial.coeff_map (mul_semiring_action.to_semiring_hom M S _) },
110
+ exact mul_smul m n (p.coeff i) },
111
+ smul_add := λ m p q, polynomial.map_add (mul_semiring_action.to_semiring_hom M S m),
112
+ smul_zero := λ m, polynomial.map_zero (mul_semiring_action.to_semiring_hom M S m),
113
+ smul_one := λ m, polynomial.map_one (mul_semiring_action.to_semiring_hom M S m),
114
+ smul_mul := λ m p q, polynomial.map_mul (mul_semiring_action.to_semiring_hom M S m), }
115
+
116
+ @[simp] lemma polynomial.coeff_smul' (m : M) (p : polynomial S) (n : ℕ) :
117
+ (m • p).coeff n = m • p.coeff n :=
118
+ polynomial.coeff_map _ _
119
+
120
+ @[simp] lemma polynomial.smul_C (m : M) (r : S) : m • polynomial.C r = polynomial.C (m • r) :=
121
+ polynomial.map_C _
122
+
123
+ @[simp] lemma polynomial.smul_X (m : M) : (m • polynomial.X : polynomial S) = polynomial.X :=
124
+ polynomial.map_X _
0 commit comments