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 M
transferred to the subtype.SubMulAction.mulAction'
- theMulAction S M
transferred to the subtype whenIsScalarTower S R M
.SubMulAction.isScalarTower
- theIsScalarTower S R M
transferred 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.