Group action on rings #
This file defines the typeclass of monoid acting on semirings MulSemiringAction M R.
An example of a MulSemiringAction is the action of the Galois group Gal(L/K) on
the big field L. Note that Algebra does not in general 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.
Note #
The corresponding typeclass of subrings invariant under such an action, IsInvariantSubring, is
defined in Mathlib/Algebra/Ring/Action/Invariant.lean.
Tags #
group action
Typeclass for multiplicative actions by monoids on semirings.
This combines DistribMulAction with MulDistribMulAction: it expresses
the interplay between the action and both addition and multiplication on the target.
Two key axioms are g • (x + y) = (g • x) + (g • y) and g • (x * y) = (g • x) * (g • y).
A typical use case is the action of a Galois group $Gal(L/K)$ on the field L.
- smul : M → R → R
Multiplying
1by a scalar gives1Scalar multiplication distributes across multiplication
Instances
Equations
- MulSemiringAction.toMulDistribMulAction M R = { toMulAction := h.toMulAction, smul_mul := ⋯, smul_one := ⋯ }
Each element of the monoid defines a semiring homomorphism.
Equations
- MulSemiringAction.toRingHom M R x = { toMonoidHom := MulDistribMulAction.toMonoidHom R x, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The tautological action by R →+* R on R.
This generalizes Function.End.applyMulAction.
Equations
- RingHom.applyMulSemiringAction R = { smul := fun (x1 : R →+* R) (x2 : R) => x1 x2, one_smul := ⋯, mul_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, smul_one := ⋯, smul_mul := ⋯ }
RingHom.applyMulSemiringAction is faithful.
Compose a MulSemiringAction with a MonoidHom, with action f r' • m.
See note [reducible non-instances].
Equations
- MulSemiringAction.compHom R f = { toDistribMulAction := DistribMulAction.compHom R f, smul_one := ⋯, smul_mul := ⋯ }