Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 738bbae

Browse files
committed
feat(algebra/group_ring_action): action on polynomials (#2586)
1 parent d0a1d77 commit 738bbae

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

src/algebra/group_ring_action.lean

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ Authors: Kenny Lau
66
Group action on rings.
77
-/
88

9-
import group_theory.group_action data.equiv.ring
9+
import group_theory.group_action data.equiv.ring data.polynomial
1010

1111
universes u v
1212

1313
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]
1515

1616
section prio
1717
set_option default_priority 100 -- see Note [default priority]
@@ -99,3 +99,26 @@ attribute [simp] smul_one smul_mul' smul_zero smul_add
9999
nat.rec_on n (smul_one x) $ λ n ih, (smul_mul' x m (m ^ n)).trans $ congr_arg _ ih
100100

101101
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

Comments
 (0)