Group action on rings #
This file defines the typeclass of monoid acting on semirings MulSemiringAction M R
,
and the corresponding typeclass of invariant subrings.
Note that Algebra
does not satisfy the axioms of MulSemiringAction
.
Implementation notes #
There is no separate typeclass for group acting on rings, group acting on fields, etc.
They are all grouped under MulSemiringAction
.
Tags #
group action, invariant subring
Typeclass for multiplicative actions by monoids on semirings.
This combines DistribMulAction
with MulDistribMulAction
.
- smul : M → R → R
Multipliying
1
by a scalar gives1
Scalar multiplication distributes across multiplication
Instances
Multipliying 1
by a scalar gives 1
Equations
Each element of the monoid defines a semiring homomorphism.
Equations
- MulSemiringAction.toRingHom M R x = let __src := MulDistribMulAction.toMonoidHom R x; let __src_1 := DistribMulAction.toAddMonoidHom R x; { toMonoidHom := __src, map_zero' := ⋯, map_add' := ⋯ }
Instances For
RingHom.applyMulSemiringAction
is faithful.
Equations
- ⋯ = ⋯
Compose a MulSemiringAction
with a MonoidHom
, with action f r' • m
.
See note [reducible non-instances].
Equations
- MulSemiringAction.compHom R f = let __src := DistribMulAction.compHom R f; let __src_1 := MulDistribMulAction.compHom R f; MulSemiringAction.mk ⋯ ⋯
Instances For
Note that smul_inv'
refers to the group case, and smul_inv
has an additional inverse
on x
.