Sets invariant to a MulAction #
In this file we define SubMulAction R M; a subset of a MulAction R M which is closed with
respect to scalar multiplication.
For most uses, typically Submodule R M is more powerful.
Main definitions #
SubMulAction.mulAction- theMulAction R Mtransferred to the subtype.SubMulAction.mulAction'- theMulAction S Mtransferred to the subtype whenIsScalarTower S R M.SubMulAction.isScalarTower- theIsScalarTower S R Mtransferred to the subtype.
Tags #
submodule, mul_action
Multiplication by a scalar on an element of the set remains in the set.
SMulMemClass S R M says S is a type of subsets s ≤ M that are closed under the
scalar action of R on M.
Note that only R is marked as an outParam here, since M is supplied by the SetLike
class instead.
Instances
Addition by a scalar with an element of the set remains in the set.
VAddMemClass S R M says S is a type of subsets s ≤ M that are closed under the
additive action of R on M.
Note that only R is marked as an outParam here, since M is supplied by the SetLike
class instead.
Instances
Not registered as an instance because R is an outParam in SMulMemClass S R M.
Not registered as an instance because R is an outParam in SMulMemClass S R M.
A subset closed under the additive action inherits that action.
Equations
- SetLike.vadd s = { vadd := fun r x => { val := r +ᵥ ↑x, property := (_ : r +ᵥ ↑x ∈ s) } }
A subset closed under the scalar action inherits that action.
Equations
- SetLike.smul s = { smul := fun r x => { val := r • ↑x, property := (_ : r • ↑x ∈ s) } }
This can't be an instance because Lean wouldn't know how to find N, but we can still use
this to manually derive SMulMemClass on specific types.
- carrier : Set M
The underlying set of a
SubMulAction. The carrier set is closed under scalar multiplication.
A SubMulAction is a set which is closed under scalar multiplication.
Instances For
Equations
- SubMulAction.instSetLikeSubMulAction = { coe := SubMulAction.carrier, coe_injective' := (_ : ∀ (p q : SubMulAction R M), p.carrier = q.carrier → p = q) }
Copy of a sub_mul_action with a new carrier equal to the old one. Useful to fix definitional
equalities.
Equations
- SubMulAction.copy p s hs = { carrier := s, smul_mem' := (_ : ∀ (c : R) {x : M}, x ∈ s → c • x ∈ s) }
Instances For
Equations
- SubMulAction.instSMulSubtypeMemSubMulActionInstMembershipInstSetLikeSubMulAction p = { smul := fun c x => { val := c • ↑x, property := (_ : c • ↑x ∈ p) } }
Embedding of a submodule p to the ambient space M.
Equations
Instances For
A SubMulAction of a MulAction is a MulAction.
Equations
- SubMulAction.SMulMemClass.toMulAction S' = Function.Injective.mulAction Subtype.val (_ : Function.Injective fun a => ↑a) (_ : ∀ (r : R) (x : { x // x ∈ S' }), ↑(r • x) = r • ↑x)
The natural MulActionHom over R from a SubMulAction of M to M.
Equations
Instances For
Equations
- SubMulAction.smul' p = { smul := fun c x => { val := c • ↑x, property := (_ : c • ↑x ∈ p) } }
If the scalar product forms a MulAction, then the subset inherits this action
Equations
Orbits in a SubMulAction coincide with orbits in the ambient space.
Stabilizers in monoid SubMulAction coincide with stabilizers in the ambient space
Stabilizers in group SubMulAction coincide with stabilizers in the ambient space
If the scalar product forms a Module, and the SubMulAction is not ⊥, then the
subset inherits the zero.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.