Pointwise instances on Submodules #
This file provides:
and the actions
which matches the action of Set.mulActionSet.
This file also provides:
Submodule.pointwiseSetSMulSubmodule: forR-moduleM, as : Set Rcan act onN : Submodule R Mby definings • Nto be the smallest submodule containing alla • nwherea ∈ sandn ∈ N.
These actions are available in the Pointwise locale.
Implementation notes #
For an R-module M, the action of a subset of R acting on a submodule of M introduced in
section set_acting_on_submodules does not have a counterpart in the files
Mathlib/Algebra/Group/Submonoid/Pointwise.lean and
Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean.
Other than section set_acting_on_submodules, most of the lemmas in this file are direct copies of
lemmas from the file Mathlib/Algebra/Group/Submonoid/Pointwise.lean.
The submodule with every element negated. Note if R is a ring and not just a semiring, this
is a no-op, as shown by Submodule.neg_eq_self.
Recall that When R is the semiring corresponding to the nonnegative elements of R',
Submodule R' M is the type of cones of M. This instance reflects such cones about 0.
This is available as an instance in the Pointwise locale.
Equations
- Submodule.pointwiseNeg = { neg := fun (p : Submodule R M) => let __src := -p.toAddSubmonoid; { toAddSubmonoid := __src, smul_mem' := ⋯ } }
Instances For
Submodule.pointwiseNeg is involutive.
This is available as an instance in the Pointwise locale.
Equations
- Submodule.involutivePointwiseNeg = { toNeg := Submodule.pointwiseNeg, neg_neg := ⋯ }
Instances For
Submodule.pointwiseNeg as an order isomorphism.
Instances For
Alias of Submodule.span_neg_eq_neg.
Equations
- Submodule.pointwiseZero = { zero := ⊥ }
Equations
- Submodule.pointwiseAdd = { add := fun (x1 x2 : Submodule R M) => x1 ⊔ x2 }
Equations
- One or more equations did not get rendered due to their size.
The action on a submodule corresponding to applying the action to every element.
This is available as an instance in the Pointwise locale.
Equations
- One or more equations did not get rendered due to their size.
Instances For
See also Submodule.smul_bot.
See also Submodule.smul_sup.
The action on a submodule corresponding to applying the action to every element.
This is available as an instance in the Pointwise locale.
This is a stronger version of Submodule.pointwiseDistribMulAction. Note that add_smul does
not hold so this cannot be stated as a Module.
Equations
- Submodule.pointwiseMulActionWithZero = { toMulAction := Submodule.pointwiseDistribMulAction.toMulAction, smul_zero := ⋯, zero_smul := ⋯ }
Instances For
Sets acting on Submodules #
Let R be a (semi)ring and M an R-module. Let S be a monoid which acts on M distributively,
then subsets of S can act on submodules of M.
For subset s ⊆ S and submodule N ≤ M, we define s • N to be the smallest submodule containing
all r • n where r ∈ s and n ∈ N.
Results #
For arbitrary monoids S acting distributively on M, there is an induction principle for s • N:
To prove P holds for all s • N, it is enough
to prove:
- for all
r ∈ sandn ∈ N,P (r • n); - for all
randm ∈ s • N,P (r • n); - for all
m₁, m₂,P m₁andP m₂impliesP (m₁ + m₂); P 0.
To invoke this induction principle, use induction x, hx using Submodule.set_smul_inductionOn where
x : M and hx : x ∈ s • N
When we consider subset of R acting on M
Submodule.pointwiseSetDistribMulAction: the action described above is distributive.Submodule.mem_set_smul:x ∈ s • Niffxcan be written asr₀ n₀ + ... + rₖ nₖwhererᵢ ∈ sandnᵢ ∈ N.Submodule.coe_span_smul:s • Nis the same as⟨s⟩ • Nwhere⟨s⟩is the ideal spanned bys.
Notes #
- If we assume the addition on subsets of
Ris the⊔and subtraction⊓i.e. useSetSemiring, then this action actually gives a module structure on submodules ofMover subsets ofR. - If we generalize so that
r • Nmakes sense for allr : S, thenSubmodule.singleton_set_smulandSubmodule.singleton_set_smulcan be generalized as well.
Let s ⊆ R be a set and N ≤ M be a submodule, then s • N is the smallest submodule containing
all r • n where r ∈ s and n ∈ N.
Equations
Instances For
Induction principle for set acting on submodules. To prove P holds for all s • N, it is enough
to prove:
- for all
r ∈ sandn ∈ N,P (r • n); - for all
randm ∈ s • N,P (r • n); - for all
m₁, m₂,P m₁andP m₂impliesP (m₁ + m₂); P 0.
To invoke this induction principle, use induction x, hx using Submodule.set_smul_inductionOn where
x : M and hx : x ∈ s • N
A subset of a ring R has a multiplicative action on submodules of a module over R.
Equations
- Submodule.pointwiseSetMulAction = { toSMul := Submodule.pointwiseSetSMul, one_smul := ⋯, mul_smul := ⋯ }
Instances For
In a ring, sets acts on submodules.
Equations
- Submodule.pointwiseSetDistribMulAction = { toMulAction := Submodule.pointwiseSetMulAction, smul_zero := ⋯, smul_add := ⋯ }