Pointwise instances on Ideal
s #
This file provides the action Ideal.pointwiseMulAction
which morally matches the action of
mulActionSet
(though here an extra Ideal.span
is inserted).
This actions is available in the Pointwise
locale.
Implementation notes #
This file is similar (but not identical) to Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean
.
Where possible, try to keep them in sync.
def
Ideal.pointwiseDistribMulAction
{M : Type u_1}
{R : Type u_2}
[Monoid M]
[Semiring R]
[MulSemiringAction M R]
:
DistribMulAction M (Ideal R)
The action on an ideal corresponding to applying the action to every element.
This is available as an instance in the Pointwise
locale.
Equations
- Ideal.pointwiseDistribMulAction = DistribMulAction.mk ⋯ ⋯
Instances For
def
Ideal.pointwiseMulSemiringAction
{M : Type u_1}
[Monoid M]
{R : Type u_3}
[CommRing R]
[MulSemiringAction M R]
:
MulSemiringAction M (Ideal R)
The action on an ideal corresponding to applying the action to every element.
This is available as an instance in the Pointwise
locale.
Equations
- Ideal.pointwiseMulSemiringAction = MulSemiringAction.mk ⋯ ⋯
Instances For
theorem
Ideal.pointwise_smul_def
{M : Type u_1}
{R : Type u_2}
[Monoid M]
[Semiring R]
[MulSemiringAction M R]
{a : M}
(S : Ideal R)
:
a • S = Ideal.map (MulSemiringAction.toRingHom M R a) S
instance
Ideal.instCovariantClassHSMulLe
{M : Type u_1}
{R : Type u_2}
[Monoid M]
[Semiring R]
[MulSemiringAction M R]
:
CovariantClass M (Ideal R) HSMul.hSMul LE.le
theorem
Ideal.smul_closure
{M : Type u_1}
{R : Type u_2}
[Monoid M]
[Semiring R]
[MulSemiringAction M R]
(a : M)
(s : Set R)
:
a • Ideal.span s = Ideal.span (a • s)
instance
Ideal.pointwise_central_scalar
{M : Type u_1}
{R : Type u_2}
[Monoid M]
[Semiring R]
[MulSemiringAction M R]
[MulSemiringAction Mᵐᵒᵖ R]
[IsCentralScalar M R]
:
IsCentralScalar M (Ideal R)
@[simp]
theorem
Ideal.pointwise_smul_toAddSubmonoid
{M : Type u_1}
{R : Type u_2}
[Monoid M]
[Semiring R]
[MulSemiringAction M R]
(a : M)
(S : Ideal R)
(ha : Function.Surjective fun (r : R) => a • r)
:
@[simp]
theorem
Ideal.pointwise_smul_toAddSubGroup
{M : Type u_1}
[Monoid M]
{R : Type u_3}
[Ring R]
[MulSemiringAction M R]
(a : M)
(S : Ideal R)
(ha : Function.Surjective fun (r : R) => a • r)
:
Submodule.toAddSubgroup (a • S) = a • Submodule.toAddSubgroup S
theorem
Ideal.pointwise_smul_eq_comap
{M : Type u_1}
{R : Type u_2}
[Group M]
[Semiring R]
[MulSemiringAction M R]
{a : M}
(S : Ideal R)
:
a • S = Ideal.comap (RingEquiv.symm ((MulSemiringAction.toRingAut M R) a)) S
instance
Ideal.IsPrime.smul
{M : Type u_1}
{R : Type u_2}
[Group M]
[Semiring R]
[MulSemiringAction M R]
{I : Ideal R}
[H : I.IsPrime]
(g : M)
:
(g • I).IsPrime
@[simp]
theorem
Ideal.IsPrime.smul_iff
{M : Type u_1}
{R : Type u_2}
[Group M]
[Semiring R]
[MulSemiringAction M R]
{I : Ideal R}
(g : M)
:
TODO: add equivSMul
like we have for subgroup.