Group action on rings
This file defines the typeclass of monoid acting on semirings mul_semiring_action M R
,
and the corresponding typeclass of invariant subrings.
Note that algebra
does not satisfy the axioms of mul_semiring_action
.
Implementation notes
There is no separate typeclass for group acting on rings, group acting on fields, etc.
They are all grouped under mul_semiring_action
.
Tags
group action, invariant subring
Each element of the monoid defines a additive monoid homomorphism.
Equations
- distrib_mul_action.to_add_monoid_hom M A x = {to_fun := has_scalar.smul x, map_zero' := _, map_add' := _}
Each element of the group defines an additive monoid isomorphism.
Equations
- distrib_mul_action.to_add_equiv G A x = {to_fun := (distrib_mul_action.to_add_monoid_hom G A x).to_fun, inv_fun := (mul_action.to_perm G A x).inv_fun, left_inv := _, right_inv := _, map_add' := _}
Each element of the group defines an additive monoid homomorphism.
Equations
- distrib_mul_action.hom_add_monoid_hom M A = {to_fun := distrib_mul_action.to_add_monoid_hom M A _inst_7, map_one' := _, map_mul' := _}
Each element of the monoid defines a semiring homomorphism.
Equations
- mul_semiring_action.to_semiring_hom M R x = {to_fun := (distrib_mul_action.to_add_monoid_hom M R x).to_fun, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
Each element of the group defines a semiring isomorphism.
Equations
- mul_semiring_action.to_semiring_equiv G R x = {to_fun := (distrib_mul_action.to_add_equiv G R x).to_fun, inv_fun := (distrib_mul_action.to_add_equiv G R x).inv_fun, left_inv := _, right_inv := _, map_mul' := _, map_add' := _}
Equations
- polynomial.mul_semiring_action M S = {to_distrib_mul_action := {to_mul_action := {to_has_scalar := {smul := λ (m : M), polynomial.map (mul_semiring_action.to_semiring_hom M S m)}, one_smul := _, mul_smul := _}, smul_add := _, smul_zero := _}, smul_one := _, smul_mul := _}
A subring invariant under the action.
Instances
Equations
- is_invariant_subring.to_mul_semiring_action M S = {to_distrib_mul_action := {to_mul_action := {to_has_scalar := {smul := λ (m : M) (x : ↥S), ⟨m • ↑x, _⟩}, one_smul := _, mul_smul := _}, smul_add := _, smul_zero := _}, smul_one := _, smul_mul := _}
Equations
the product of (X - g • x)
over distinct g • x
.
Equations
- prod_X_sub_smul G R x = finset.univ.prod (λ (g : quotient_group.quotient (mul_action.stabilizer G x)), polynomial.X - ⇑polynomial.C (mul_action.of_quotient_stabilizer G x g))