doc-next-gen

Mathlib.GroupTheory.GroupAction.SubMulAction

Module docstring

{"# 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 - the MulAction R M transferred to the subtype.
  • SubMulAction.mulAction' - the MulAction S M transferred to the subtype when IsScalarTower S R M.
  • SubMulAction.isScalarTower - the IsScalarTower S R M transferred to the subtype.
  • SubMulAction.inclusion — the inclusion of a submulaction, as an equivariant map

Tags

submodule, mul_action "}

SMulMemClass structure
(S : Type*) (R : outParam Type*) (M : Type*) [SMul R M] [SetLike S M]
Full source
/-- `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.
-/
class SMulMemClass (S : Type*) (R : outParam Type*) (M : Type*) [SMul R M] [SetLike S M] :
    Prop where
  /-- Multiplication by a scalar on an element of the set remains in the set. -/
  smul_mem : ∀ {s : S} (r : R) {m : M}, m ∈ sr • m ∈ s
Subsets closed under scalar multiplication
Informal description
The structure `SMulMemClass S R M` represents a type of subsets `s` of `M` that are closed under the scalar multiplication action of `R` on `M`. Here, `S` is a type of subsets of `M`, `R` is the type of scalars, and `M` is the type of elements being acted upon. The scalar multiplication operation is provided by the `SMul R M` instance, and the subset relation is given by the `SetLike S M` instance.
VAddMemClass structure
(S : Type*) (R : outParam Type*) (M : Type*) [VAdd R M] [SetLike S M]
Full source
/-- `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. -/
class VAddMemClass (S : Type*) (R : outParam Type*) (M : Type*) [VAdd R M] [SetLike S M] :
    Prop where
  /-- Addition by a scalar with an element of the set remains in the set. -/
  vadd_mem : ∀ {s : S} (r : R) {m : M}, m ∈ sr +ᵥ mr +ᵥ m ∈ s
Additive Action Closed Subsets
Informal description
A class `VAddMemClass S R M` indicates that a type `S` represents subsets of `M` that are closed under the additive action of `R` on `M`. Here, `R` is marked as an output parameter while `M` is provided by the `SetLike` class.
AddSubmonoidClass.nsmulMemClass theorem
{S M : Type*} [AddMonoid M] [SetLike S M] [AddSubmonoidClass S M] : SMulMemClass S ℕ M
Full source
/-- Not registered as an instance because `R` is an `outParam` in `SMulMemClass S R M`. -/
lemma AddSubmonoidClass.nsmulMemClass {S M : Type*} [AddMonoid M] [SetLike S M]
    [AddSubmonoidClass S M] : SMulMemClass S  M where
  smul_mem n _x hx := nsmul_mem hx n
Natural Number Scalar Multiplication Preserves Additive Submonoids
Informal description
For any type $M$ with an additive monoid structure and a type $S$ of subsets of $M$ that forms an additive submonoid class, the subsets in $S$ are closed under scalar multiplication by natural numbers. That is, $S$ inherits a `SMulMemClass` structure for the natural number action on $M$.
AddSubgroupClass.zsmulMemClass theorem
{S M : Type*} [SubNegMonoid M] [SetLike S M] [AddSubgroupClass S M] : SMulMemClass S ℤ M
Full source
/-- Not registered as an instance because `R` is an `outParam` in `SMulMemClass S R M`. -/
lemma AddSubgroupClass.zsmulMemClass {S M : Type*} [SubNegMonoid M] [SetLike S M]
    [AddSubgroupClass S M] : SMulMemClass S  M where
  smul_mem n _x hx := zsmul_mem hx n
Integer Scalar Multiplication Preserves Additive Subgroups
Informal description
For any type $M$ with a subnegation monoid structure and a type $S$ of subsets of $M$ that forms an additive subgroup class, the subsets in $S$ are closed under scalar multiplication by integers. That is, $S$ inherits a `SMulMemClass` structure for the integer action on $M$.
SetLike.smul instance
: SMul R s
Full source
/-- A subset closed under the scalar action inherits that action. -/
@[to_additive "A subset closed under the additive action inherits that action."]
instance (priority := 50) smul : SMul R s :=
  ⟨fun r x => ⟨r • x.1, smul_mem r x.2⟩⟩
Inherited Scalar Multiplication on Subsets Closed Under Action
Informal description
For any subset $s$ of a type $M$ with a scalar multiplication action by $R$, the subset $s$ inherits a scalar multiplication structure from $M$ when it is closed under the action.
SMulMemClass.ofIsScalarTower theorem
(S M N α : Type*) [SetLike S α] [SMul M N] [SMul M α] [Monoid N] [MulAction N α] [SMulMemClass S N α] [IsScalarTower M N α] : SMulMemClass S M α
Full source
/-- 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. -/
@[to_additive] theorem _root_.SMulMemClass.ofIsScalarTower (S M N α : Type*) [SetLike S α]
    [SMul M N] [SMul M α] [Monoid N] [MulAction N α] [SMulMemClass S N α] [IsScalarTower M N α] :
    SMulMemClass S M α :=
  { smul_mem := fun m a ha => smul_one_smul N m a ▸ SMulMemClass.smul_mem _ ha }
Closure of Subsets Under Scalar Multiplication via Scalar Tower Property
Informal description
Let $S$ be a type of subsets of a type $\alpha$, $M$ and $N$ be types with scalar multiplication actions on $\alpha$, where $N$ is a monoid acting on $\alpha$ via `MulAction N α`. If $S$ is closed under the scalar multiplication action of $N$ (i.e., `SMulMemClass S N α` holds) and there exists a scalar tower structure `IsScalarTower M N α` (meaning the actions of $M$ and $N$ on $\alpha$ satisfy the compatibility condition $(m \cdot n) \cdot a = m \cdot (n \cdot a)$ for all $m \in M$, $n \in N$, $a \in \alpha$), then $S$ is also closed under the scalar multiplication action of $M$ (i.e., `SMulMemClass S M α` holds).
SetLike.instIsScalarTower instance
[Mul M] [MulMemClass S M] [IsScalarTower R M M] (s : S) : IsScalarTower R s s
Full source
instance instIsScalarTower [Mul M] [MulMemClass S M] [IsScalarTower R M M]
    (s : S) : IsScalarTower R s s where
  smul_assoc r x y := Subtype.ext <| smul_assoc r (x : M) (y : M)
Scalar Tower Structure on Multiplication-Closed Subsets
Informal description
For any subset $s$ of a type $M$ with a multiplication structure that is closed under multiplication, if $M$ has a scalar multiplication action by $R$ that forms a scalar tower with the multiplication on $M$, then the subset $s$ inherits a scalar tower structure from $M$.
SetLike.instSMulCommClass instance
[Mul M] [MulMemClass S M] [SMulCommClass R M M] (s : S) : SMulCommClass R s s
Full source
instance instSMulCommClass [Mul M] [MulMemClass S M] [SMulCommClass R M M]
    (s : S) : SMulCommClass R s s where
  smul_comm r x y := Subtype.ext <| smul_comm r (x : M) (y : M)
Commutativity of Scalar Multiplication on Multiplication-Closed Subsets
Informal description
For any subset $s$ of a type $M$ with a multiplication structure and closed under multiplication, if $M$ has a scalar multiplication action by $R$ that commutes with the multiplication on $M$, then the subset $s$ inherits a scalar multiplication structure from $M$ where the actions of $R$ and $s$ commute.
SetLike.val_smul theorem
(r : R) (x : s) : (↑(r • x) : M) = r • (x : M)
Full source
@[to_additive (attr := simp, norm_cast)]
protected theorem val_smul (r : R) (x : s) : (↑(r • x) : M) = r • (x : M) :=
  rfl
Compatibility of Scalar Multiplication with Subset Inclusion
Informal description
For any scalar $r \in R$ and any element $x$ in a subset $s$ of $M$ that is closed under scalar multiplication, the image of the scalar multiplication $r \cdot x$ under the inclusion map $\uparrow$ equals the scalar multiplication $r \cdot \uparrow x$ in $M$. In other words, $\uparrow(r \cdot x) = r \cdot \uparrow x$.
SetLike.mk_smul_mk theorem
(r : R) (x : M) (hx : x ∈ s) : r • (⟨x, hx⟩ : s) = ⟨r • x, smul_mem r hx⟩
Full source
@[to_additive (attr := simp)]
theorem mk_smul_mk (r : R) (x : M) (hx : x ∈ s) : r • (⟨x, hx⟩ : s) = ⟨r • x, smul_mem r hx⟩ :=
  rfl
Scalar Multiplication of Subset Elements Preserves Membership
Informal description
For any scalar $r \in R$, any element $x \in M$, and a proof $hx$ that $x$ belongs to a subset $s$ closed under scalar multiplication, the scalar multiplication of $r$ with the element $\langle x, hx \rangle$ in $s$ is equal to $\langle r \cdot x, \text{smul\_mem}(r, hx) \rangle$, where $\text{smul\_mem}(r, hx)$ is a proof that $r \cdot x$ remains in $s$.
SetLike.smul_def theorem
(r : R) (x : s) : r • x = ⟨r • x, smul_mem r x.2⟩
Full source
@[to_additive]
theorem smul_def (r : R) (x : s) : r • x = ⟨r • x, smul_mem r x.2⟩ :=
  rfl
Definition of Scalar Multiplication in Subset Closed Under Action
Informal description
For any scalar $r \in R$ and any element $x$ in a subset $s$ of $M$ that is closed under scalar multiplication, the scalar multiplication $r \cdot x$ in $s$ is equal to the pair consisting of the scalar multiplication $r \cdot x$ in $M$ and the proof that $r \cdot x$ remains in $s$.
SetLike.forall_smul_mem_iff theorem
{R M S : Type*} [Monoid R] [MulAction R M] [SetLike S M] [SMulMemClass S R M] {N : S} {x : M} : (∀ a : R, a • x ∈ N) ↔ x ∈ N
Full source
@[simp]
theorem forall_smul_mem_iff {R M S : Type*} [Monoid R] [MulAction R M] [SetLike S M]
    [SMulMemClass S R M] {N : S} {x : M} : (∀ a : R, a • x ∈ N) ↔ x ∈ N :=
  ⟨fun h => by simpa using h 1, fun h a => SMulMemClass.smul_mem a h⟩
Characterization of Membership in Subsets Closed Under Scalar Multiplication
Informal description
Let $R$ be a monoid acting on a type $M$, and let $S$ be a type of subsets of $M$ that are closed under this action. For any subset $N$ in $S$ and any element $x \in M$, the following are equivalent: 1. For every $a \in R$, the scalar multiple $a \cdot x$ belongs to $N$. 2. The element $x$ itself belongs to $N$.
SetLike.smul' instance
: SMul M s
Full source
/-- A subset closed under the scalar action inherits that action. -/
@[to_additive "A subset closed under the additive action inherits that action."]
instance (priority := 50) smul' : SMul M s where
  smul r x := ⟨r • x.1, smul_one_smul N r x.1 ▸ smul_mem _ x.2⟩
Scalar Multiplication on Subsets Closed Under Scalar Action
Informal description
For any subset $s$ of a type $M$ with a scalar multiplication action, $s$ inherits a scalar multiplication structure when it is closed under the action.
SetLike.instIsScalarTowerSubtypeMem instance
: IsScalarTower M N s
Full source
instance (priority := 50) : IsScalarTower M N s where
  smul_assoc m n x := Subtype.ext (smul_assoc m n x.1)
Subsets Closed Under Scalar Multiplication Form Scalar Towers
Informal description
For any subset $s$ of a type $\alpha$ that is closed under scalar multiplication by $M$ and $N$, and any scalar multiplication action of $M$ on $N$ that is compatible with the action on $\alpha$, the subset $s$ inherits the structure of an `IsScalarTower` from $M$ to $N$.
SetLike.val_smul_of_tower theorem
(r : M) (x : s) : (↑(r • x) : α) = r • (x : α)
Full source
@[to_additive (attr := simp, norm_cast)]
protected theorem val_smul_of_tower (r : M) (x : s) : (↑(r • x) : α) = r • (x : α) :=
  rfl
Compatibility of Scalar Multiplication with Subset Inclusion
Informal description
For any scalar $r$ in $M$ and any element $x$ in a subset $s$ of $\alpha$ that is closed under scalar multiplication, the image of the scalar multiplication $r \cdot x$ under the inclusion map $\uparrow$ equals the scalar multiplication $r \cdot \uparrow x$ in $\alpha$.
SetLike.mk_smul_of_tower_mk theorem
(r : M) (x : α) (hx : x ∈ s) : r • (⟨x, hx⟩ : s) = ⟨r • x, smul_one_smul N r x ▸ smul_mem _ hx⟩
Full source
@[to_additive (attr := simp)]
theorem mk_smul_of_tower_mk (r : M) (x : α) (hx : x ∈ s) :
    r • (⟨x, hx⟩ : s) = ⟨r • x, smul_one_smul N r x ▸ smul_mem _ hx⟩ :=
  rfl
Scalar Multiplication on Subset Elements Preserves Membership
Informal description
For any scalar $r \in M$, any element $x \in \alpha$, and any proof $hx$ that $x$ belongs to a subset $s$ closed under scalar multiplication, the scalar multiplication $r \cdot \langle x, hx \rangle$ in $s$ equals the element $\langle r \cdot x, h' \rangle$, where $h'$ is a proof that $r \cdot x \in s$ derived from the closure property of $s$ under scalar multiplication.
SetLike.smul_of_tower_def theorem
(r : M) (x : s) : r • x = ⟨r • x, smul_one_smul N r x.1 ▸ smul_mem _ x.2⟩
Full source
@[to_additive]
theorem smul_of_tower_def (r : M) (x : s) :
    r • x = ⟨r • x, smul_one_smul N r x.1 ▸ smul_mem _ x.2⟩ :=
  rfl
Definition of Scalar Multiplication on Subset Elements
Informal description
For any scalar $r \in M$ and any element $x$ in a subset $s$ of $\alpha$ that is closed under scalar multiplication, the scalar multiplication $r \cdot x$ in $s$ is equal to the pair $\langle r \cdot x, h \rangle$, where $h$ is a proof that $r \cdot x$ belongs to $s$, derived from the closure property of $s$ under scalar multiplication.
SubAddAction structure
(R : Type u) (M : Type v) [VAdd R M]
Full source
/-- A SubAddAction is a set which is closed under scalar multiplication. -/
structure SubAddAction (R : Type u) (M : Type v) [VAdd R M] : Type v where
  /-- The underlying set of a `SubAddAction`. -/
  carrier : Set M
  /-- The carrier set is closed under scalar multiplication. -/
  vadd_mem' : ∀ (c : R) {x : M}, x ∈ carrierc +ᵥ xc +ᵥ x ∈ carrier
Subset closed under scalar multiplication (or addition) action
Informal description
A subset of a type $M$ with a scalar multiplication (or addition) action by a type $R$ that is closed under this action. Specifically, for a `SubMulAction` (or `SubAddAction`), if $s \subseteq M$ is such a subset, then for any $r \in R$ and $x \in s$, the element $r \cdot x$ (or $r + x$ for `SubAddAction`) is also in $s$.
SubMulAction structure
(R : Type u) (M : Type v) [SMul R M]
Full source
/-- A SubMulAction is a set which is closed under scalar multiplication. -/
@[to_additive]
structure SubMulAction (R : Type u) (M : Type v) [SMul R M] : Type v where
  /-- The underlying set of a `SubMulAction`. -/
  carrier : Set M
  /-- The carrier set is closed under scalar multiplication. -/
  smul_mem' : ∀ (c : R) {x : M}, x ∈ carrierc • x ∈ carrier
Subset closed under scalar multiplication (SubMulAction)
Informal description
A subset of a type $M$ equipped with a scalar multiplication by elements of $R$ that is closed under this scalar multiplication. In other words, for any $r \in R$ and $m$ in the subset, $r \cdot m$ is also in the subset.
SubMulAction.instSetLike instance
: SetLike (SubMulAction R M) M
Full source
@[to_additive]
instance : SetLike (SubMulAction R M) M :=
  ⟨SubMulAction.carrier, fun p q h => by cases p; cases q; congr⟩
Set-like Structure of Subsets Closed Under Scalar Multiplication
Informal description
For any scalar multiplication action of $R$ on $M$, the subsets of $M$ that are closed under this action (SubMulAction) form a SetLike structure, meaning they can be treated as sets with membership and subset relations.
SubMulAction.instSMulMemClass instance
: SMulMemClass (SubMulAction R M) R M
Full source
@[to_additive]
instance : SMulMemClass (SubMulAction R M) R M where smul_mem := smul_mem' _
SubMulAction is Closed Under Scalar Multiplication
Informal description
For any type $M$ with a scalar multiplication action by elements of $R$, the subsets of $M$ that are closed under this action (SubMulAction) form a class that is closed under scalar multiplication (SMulMemClass).
SubMulAction.mem_carrier theorem
{p : SubMulAction R M} {x : M} : x ∈ p.carrier ↔ x ∈ (p : Set M)
Full source
@[to_additive (attr := simp)]
theorem mem_carrier {p : SubMulAction R M} {x : M} : x ∈ p.carrierx ∈ p.carrier ↔ x ∈ (p : Set M) :=
  Iff.rfl
Membership in SubMulAction Carrier Set
Informal description
For any subset $p$ of $M$ closed under scalar multiplication by $R$ (i.e., $p \in \text{SubMulAction}\, R\, M$) and any element $x \in M$, we have $x \in p.\text{carrier}$ if and only if $x$ belongs to $p$ when viewed as a subset of $M$.
SubMulAction.ext theorem
{p q : SubMulAction R M} (h : ∀ x, x ∈ p ↔ x ∈ q) : p = q
Full source
@[to_additive (attr := ext)]
theorem ext {p q : SubMulAction R M} (h : ∀ x, x ∈ px ∈ p ↔ x ∈ q) : p = q :=
  SetLike.ext h
Extensionality of Subsets Closed Under Scalar Multiplication
Informal description
For any two subsets $p$ and $q$ of $M$ closed under scalar multiplication by $R$, if for every element $x \in M$ we have $x \in p$ if and only if $x \in q$, then $p = q$.
SubMulAction.copy definition
(p : SubMulAction R M) (s : Set M) (hs : s = ↑p) : SubMulAction R M
Full source
/-- Copy of a sub_mul_action with a new `carrier` equal to the old one. Useful to fix definitional
equalities. -/
@[to_additive "Copy of a sub_mul_action with a new `carrier` equal to the old one.
  Useful to fix definitional equalities."]
protected def copy (p : SubMulAction R M) (s : Set M) (hs : s = ↑p) : SubMulAction R M where
  carrier := s
  smul_mem' := hs.symm ▸ p.smul_mem'
Copy of a subset closed under scalar multiplication with a new carrier set
Informal description
Given a subset $p$ of $M$ closed under scalar multiplication by $R$ (i.e., $p \in \text{SubMulAction}\, R\, M$) and a set $s$ equal to the underlying set of $p$, this constructs a new `SubMulAction` with carrier set $s$ that is definitionally equal to $p$.
SubMulAction.coe_copy theorem
(p : SubMulAction R M) (s : Set M) (hs : s = ↑p) : (p.copy s hs : Set M) = s
Full source
@[to_additive (attr := simp)]
theorem coe_copy (p : SubMulAction R M) (s : Set M) (hs : s = ↑p) : (p.copy s hs : Set M) = s :=
  rfl
Underlying Set of Copied SubMulAction Equals Given Set
Informal description
Given a subset $p$ of $M$ closed under scalar multiplication by $R$ and a set $s$ equal to the underlying set of $p$, the underlying set of the copy of $p$ with carrier set $s$ is equal to $s$.
SubMulAction.copy_eq theorem
(p : SubMulAction R M) (s : Set M) (hs : s = ↑p) : p.copy s hs = p
Full source
@[to_additive]
theorem copy_eq (p : SubMulAction R M) (s : Set M) (hs : s = ↑p) : p.copy s hs = p :=
  SetLike.coe_injective hs
Equality of SubMulAction Copy with Original
Informal description
Given a subset $p$ of $M$ closed under scalar multiplication by $R$ (i.e., $p \in \text{SubMulAction}\, R\, M$) and a set $s$ equal to the underlying set of $p$, the copy of $p$ with carrier set $s$ is equal to $p$.
SubMulAction.instBot instance
: Bot (SubMulAction R M)
Full source
@[to_additive]
instance : Bot (SubMulAction R M) where
  bot :=
    { carrier := 
      smul_mem' := fun _c h => Set.not_mem_empty h }
Bottom Element in Subsets Closed Under Scalar Multiplication
Informal description
The collection of subsets of $M$ closed under scalar multiplication by $R$ has a bottom element, which is the empty set.
SubMulAction.instInhabited instance
: Inhabited (SubMulAction R M)
Full source
@[to_additive]
instance : Inhabited (SubMulAction R M) :=
  ⟨⊥⟩
Nonempty Collection of Scalar Multiplication Closed Subsets
Informal description
For any type $M$ with a scalar multiplication by elements of $R$, the collection of subsets of $M$ closed under scalar multiplication is nonempty.
SubMulAction.smul_mem theorem
(r : R) (h : x ∈ p) : r • x ∈ p
Full source
@[to_additive]
theorem smul_mem (r : R) (h : x ∈ p) : r • x ∈ p :=
  p.smul_mem' r h
Closure under scalar multiplication in SubMulAction
Informal description
For any scalar $r \in R$ and any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication, the scalar multiple $r \cdot x$ is also in $p$.
SubMulAction.instSMulSubtypeMem instance
: SMul R p
Full source
@[to_additive]
instance : SMul R p where smul c x := ⟨c • x.1, smul_mem _ c x.2⟩
Scalar Multiplication on Subsets Closed Under Scalar Multiplication
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$ (i.e., a `SubMulAction R M`), the subset $p$ inherits a scalar multiplication operation from $M$.
SubMulAction.val_smul theorem
(r : R) (x : p) : (↑(r • x) : M) = r • (x : M)
Full source
@[to_additive (attr := norm_cast, simp)]
theorem val_smul (r : R) (x : p) : (↑(r • x) : M) = r • (x : M) :=
  rfl
Compatibility of Scalar Multiplication with Inclusion in SubMulAction
Informal description
For any scalar $r \in R$ and any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication, the scalar multiplication operation on the subset $p$ is compatible with the scalar multiplication on $M$, i.e., the inclusion map $\uparrow$ satisfies $\uparrow(r \cdot x) = r \cdot \uparrow x$ in $M$.
SubMulAction.subtype definition
: p →[R] M
Full source
/-- Embedding of a submodule `p` to the ambient space `M`. -/
@[to_additive "Embedding of a submodule `p` to the ambient space `M`."]
protected def subtype : p →[R] M where
  toFun := Subtype.val
  map_smul' := by simp [val_smul]
Inclusion map of a subset closed under scalar multiplication
Informal description
The inclusion map from a subset $p$ of $M$ closed under scalar multiplication by $R$ (a `SubMulAction R M`) to the ambient space $M$, which is $R$-equivariant (i.e., preserves scalar multiplication).
SubMulAction.subtype_apply theorem
(x : p) : p.subtype x = x
Full source
@[to_additive (attr := simp)]
theorem subtype_apply (x : p) : p.subtype x = x :=
  rfl
Inclusion Map Acts as Identity on SubMulAction Elements
Informal description
For any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication by $R$, the inclusion map $\text{subtype}$ from $p$ to $M$ satisfies $\text{subtype}(x) = x$.
SubMulAction.subtype_injective theorem
: Function.Injective p.subtype
Full source
lemma subtype_injective :
    Function.Injective p.subtype :=
  Subtype.coe_injective
Injectivity of the SubMulAction Inclusion Map
Informal description
The inclusion map from a subset $p$ of $M$ closed under scalar multiplication by $R$ to the ambient space $M$ is injective. In other words, if two elements of $p$ have the same image under the inclusion map, then they must be equal.
SubMulAction.subtype_eq_val theorem
: (SubMulAction.subtype p : p → M) = Subtype.val
Full source
@[to_additive]
theorem subtype_eq_val : (SubMulAction.subtype p : p → M) = Subtype.val :=
  rfl
Inclusion Map Equals Subtype Projection for Scalar-Invariant Subsets
Informal description
The inclusion map from a subset $p$ of $M$ closed under scalar multiplication (a `SubMulAction R M`) to the ambient space $M$ is equal to the canonical subtype projection function $\text{Subtype.val} : p \to M$.
SubMulAction.SMulMemClass.toMulAction instance
: MulAction R S'
Full source
/-- A `SubMulAction` of a `MulAction` is a `MulAction`. -/
@[to_additive "A `SubAddAction` of an `AddAction` is an `AddAction`."]
instance (priority := 75) toMulAction : MulAction R S' :=
  Subtype.coe_injective.mulAction Subtype.val (SetLike.val_smul S')
Multiplicative Action on Subsets Closed Under Scalar Multiplication
Informal description
For any subset $S'$ of a type $M$ with a multiplicative action by $R$, if $S'$ is closed under this action, then $S'$ inherits a multiplicative action structure from $M$.
SubMulAction.SMulMemClass.subtype definition
: S' →[R] M
Full source
/-- The natural `MulActionHom` over `R` from a `SubMulAction` of `M` to `M`. -/
@[to_additive "The natural `AddActionHom` over `R` from a `SubAddAction` of `M` to `M`."]
protected def subtype : S' →[R] M where
  toFun := Subtype.val; map_smul' _ _ := rfl
Inclusion map of a scalar multiplication invariant subset
Informal description
The natural inclusion map from a subset $S'$ of $M$ that is closed under scalar multiplication by $R$ to $M$, which is equivariant with respect to the scalar multiplication action of $R$ on both $S'$ and $M$.
SubMulAction.SMulMemClass.subtype_apply theorem
(x : S') : SMulMemClass.subtype S' x = x
Full source
@[simp]
lemma subtype_apply (x : S') :
    SMulMemClass.subtype S' x = x := rfl
Inclusion Map Acts as Identity on Scalar-Invariant Subsets
Informal description
For any element $x$ in a subset $S'$ of $M$ that is closed under scalar multiplication by $R$, the inclusion map $\text{SMulMemClass.subtype}_{S'}$ evaluated at $x$ equals $x$ itself.
SubMulAction.SMulMemClass.subtype_injective theorem
: Function.Injective (SMulMemClass.subtype S')
Full source
lemma subtype_injective :
    Function.Injective (SMulMemClass.subtype S') :=
  Subtype.coe_injective
Injectivity of the Inclusion Map for Scalar-Invariant Subsets
Informal description
The inclusion map from a subset $S'$ of $M$ (closed under scalar multiplication by $R$) to $M$ is injective. In other words, if two elements of $S'$ have the same image under the inclusion map, then they must be equal.
SubMulAction.SMulMemClass.coe_subtype theorem
: (SMulMemClass.subtype S' : S' → M) = Subtype.val
Full source
@[to_additive (attr := simp)]
protected theorem coe_subtype : (SMulMemClass.subtype S' : S' → M) = Subtype.val :=
  rfl
Inclusion Map Equals Subtype Projection for Scalar-Invariant Subsets
Informal description
The inclusion map from a subset $S'$ of $M$ (closed under scalar multiplication by $R$) to $M$ coincides with the canonical subtype projection function, i.e., $\text{SMulMemClass.subtype}_{S'} = \text{Subtype.val}$.
SubMulAction.smul_of_tower_mem theorem
(s : S) {x : M} (h : x ∈ p) : s • x ∈ p
Full source
@[to_additive]
theorem smul_of_tower_mem (s : S) {x : M} (h : x ∈ p) : s • x ∈ p := by
  rw [← one_smul R x, ← smul_assoc]
  exact p.smul_mem _ h
Closure under scalar multiplication in SubMulAction for scalar tower actions
Informal description
For any scalar $s \in S$ and any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication by $R$, the scalar multiple $s \cdot x$ is also in $p$.
SubMulAction.smul' instance
: SMul S p
Full source
@[to_additive]
instance smul' : SMul S p where smul c x := ⟨c • x.1, smul_of_tower_mem _ c x.2⟩
Scalar Multiplication on Subsets Closed Under Scalar Multiplication
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$ (a `SubMulAction`), and for any scalar multiplication action of $S$ on $M$ that is compatible with the $R$-action (via `IsScalarTower`), there is an induced scalar multiplication action of $S$ on $p$.
SubMulAction.isScalarTower instance
: IsScalarTower S R p
Full source
@[to_additive]
instance isScalarTower : IsScalarTower S R p where
  smul_assoc s r x := Subtype.ext <| smul_assoc s r (x : M)
Scalar Tower Property for Subsets Closed Under Scalar Multiplication
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$ (a `SubMulAction`), and for any scalar multiplication actions of $S$ and $R$ on $M$ forming a scalar tower (i.e., satisfying $(s \cdot r) \cdot m = s \cdot (r \cdot m)$ for all $s \in S$, $r \in R$, $m \in M$), the induced scalar multiplication actions on $p$ also form a scalar tower.
SubMulAction.isScalarTower' instance
{S' : Type*} [SMul S' R] [SMul S' S] [SMul S' M] [IsScalarTower S' R M] [IsScalarTower S' S M] : IsScalarTower S' S p
Full source
@[to_additive]
instance isScalarTower' {S' : Type*} [SMul S' R] [SMul S' S] [SMul S' M] [IsScalarTower S' R M]
    [IsScalarTower S' S M] : IsScalarTower S' S p where
  smul_assoc s r x := Subtype.ext <| smul_assoc s r (x : M)
Scalar Tower Property for SubMulAction with Additional Scalar Action
Informal description
For any type $S'$ with scalar multiplication actions on $R$, $S$, and $M$, if $S'$ forms a scalar tower with $R$ and $M$ (i.e., $(s' \cdot r) \cdot m = s' \cdot (r \cdot m)$ for all $s' \in S'$, $r \in R$, $m \in M$) and also forms a scalar tower with $S$ and $M$, then $S'$ forms a scalar tower with $S$ and any subset $p$ of $M$ that is closed under scalar multiplication by $R$.
SubMulAction.val_smul_of_tower theorem
(s : S) (x : p) : ((s • x : p) : M) = s • (x : M)
Full source
@[to_additive (attr := norm_cast, simp)]
theorem val_smul_of_tower (s : S) (x : p) : ((s • x : p) : M) = s • (x : M) :=
  rfl
Scalar Multiplication Preservation in SubMulAction Inclusion
Informal description
For any scalar $s \in S$ and any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication, the scalar multiplication of $s$ and $x$ within $p$ (when viewed as an element of $M$) is equal to the scalar multiplication of $s$ and $x$ directly in $M$. In other words, the inclusion map from $p$ to $M$ preserves scalar multiplication.
SubMulAction.smul_mem_iff' theorem
{G} [Group G] [SMul G R] [MulAction G M] [IsScalarTower G R M] (g : G) {x : M} : g • x ∈ p ↔ x ∈ p
Full source
@[to_additive (attr := simp)]
theorem smul_mem_iff' {G} [Group G] [SMul G R] [MulAction G M] [IsScalarTower G R M] (g : G)
    {x : M} : g • x ∈ pg • x ∈ p ↔ x ∈ p :=
  ⟨fun h => inv_smul_smul g x ▸ p.smul_of_tower_mem g⁻¹ h, p.smul_of_tower_mem g⟩
Scalar Action Invariance in SubMulAction under Group Action
Informal description
Let $G$ be a group acting on $M$ via scalar multiplication, and suppose this action is compatible with the scalar multiplication by $R$ (i.e., $G$ forms a scalar tower with $R$ and $M$). For any subset $p$ of $M$ closed under scalar multiplication by $R$, and for any $g \in G$ and $x \in M$, the element $g \cdot x$ belongs to $p$ if and only if $x$ belongs to $p$.
SubMulAction.isCentralScalar instance
[SMul Sᵐᵒᵖ R] [SMul Sᵐᵒᵖ M] [IsScalarTower Sᵐᵒᵖ R M] [IsCentralScalar S M] : IsCentralScalar S p
Full source
@[to_additive]
instance isCentralScalar [SMul Sᵐᵒᵖ R] [SMul Sᵐᵒᵖ M] [IsScalarTower Sᵐᵒᵖ R M]
    [IsCentralScalar S M] :
    IsCentralScalar S p where
  op_smul_eq_smul r x := Subtype.ext <| op_smul_eq_smul r (x : M)
Central Scalar Action on Scalar-Closed Subsets
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$, if $M$ has a central scalar action by $S$ (meaning $s \cdot m = m \cdot s$ for all $s \in S$ and $m \in M$), then $p$ also inherits this central scalar action property.
SubMulAction.mulAction' instance
: MulAction S p
Full source
/-- If the scalar product forms a `MulAction`, then the subset inherits this action -/
@[to_additive]
instance mulAction' : MulAction S p where
  smul := (· • ·)
  one_smul x := Subtype.ext <| one_smul _ (x : M)
  mul_smul c₁ c₂ x := Subtype.ext <| mul_smul c₁ c₂ (x : M)
Inherited Multiplicative Action on Scalar-Closed Subsets
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$ (a `SubMulAction`), and for any scalar multiplication action of $S$ on $M$ that is compatible with the $R$-action (via `IsScalarTower`), the subset $p$ inherits a multiplicative action structure from $S$.
SubMulAction.mulAction instance
: MulAction R p
Full source
@[to_additive]
instance mulAction : MulAction R p :=
  p.mulAction'
Inherited Multiplicative Action on Scalar-Closed Subsets
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$ (a `SubMulAction`), the subset $p$ inherits a multiplicative action structure from $R$.
SubMulAction.val_image_orbit theorem
{p : SubMulAction R M} (m : p) : Subtype.val '' MulAction.orbit R m = MulAction.orbit R (m : M)
Full source
/-- Orbits in a `SubMulAction` coincide with orbits in the ambient space. -/
@[to_additive]
theorem val_image_orbit {p : SubMulAction R M} (m : p) :
    Subtype.valSubtype.val '' MulAction.orbit R m = MulAction.orbit R (m : M) :=
  (Set.range_comp _ _).symm
Orbit Image Equals Ambient Orbit in SubMulAction
Informal description
For any subset $p$ of $M$ closed under scalar multiplication by $R$ (a `SubMulAction`), and for any element $m \in p$, the image of the orbit of $m$ under the inclusion map equals the orbit of $m$ in the ambient space $M$. That is, $\text{val}(\text{orbit}_R(m)) = \text{orbit}_R(\text{val}(m))$, where $\text{val} : p \to M$ is the inclusion map.
SubMulAction.val_preimage_orbit theorem
{p : SubMulAction R M} (m : p) : Subtype.val ⁻¹' MulAction.orbit R (m : M) = MulAction.orbit R m
Full source
@[to_additive]
theorem val_preimage_orbit {p : SubMulAction R M} (m : p) :
    Subtype.valSubtype.val ⁻¹' MulAction.orbit R (m : M) = MulAction.orbit R m := by
  rw [← val_image_orbit, Subtype.val_injective.preimage_image]
Preimage of Orbit Equals Subset Orbit in SubMulAction
Informal description
For any subset $p$ of $M$ closed under scalar multiplication by $R$ (a `SubMulAction`), and for any element $m \in p$, the preimage of the orbit of $m$ under the inclusion map equals the orbit of $m$ in the subset $p$. That is, $\text{val}^{-1}(\text{orbit}_R(m)) = \text{orbit}_R(m)$, where $\text{val} : p \to M$ is the inclusion map.
SubMulAction.mem_orbit_subMul_iff theorem
{p : SubMulAction R M} {x m : p} : x ∈ MulAction.orbit R m ↔ (x : M) ∈ MulAction.orbit R (m : M)
Full source
@[to_additive]
lemma mem_orbit_subMul_iff {p : SubMulAction R M} {x m : p} :
    x ∈ MulAction.orbit R mx ∈ MulAction.orbit R m ↔ (x : M) ∈ MulAction.orbit R (m : M) := by
  rw [← val_preimage_orbit, Set.mem_preimage]
Orbit Membership Equivalence in SubMulAction
Informal description
For any subset $p$ of $M$ closed under scalar multiplication by $R$ (a `SubMulAction`), and for any elements $x, m \in p$, the element $x$ belongs to the orbit of $m$ in $p$ if and only if the image of $x$ under the inclusion map belongs to the orbit of the image of $m$ in $M$. In other words, $x \in \text{orbit}_R(m)$ if and only if $x \in \text{orbit}_R(m)$ in the ambient space $M$.
SubMulAction.stabilizer_of_subMul.submonoid theorem
{p : SubMulAction R M} (m : p) : MulAction.stabilizerSubmonoid R m = MulAction.stabilizerSubmonoid R (m : M)
Full source
/-- Stabilizers in monoid SubMulAction coincide with stabilizers in the ambient space -/
@[to_additive]
theorem stabilizer_of_subMul.submonoid {p : SubMulAction R M} (m : p) :
    MulAction.stabilizerSubmonoid R m = MulAction.stabilizerSubmonoid R (m : M) := by
  ext
  simp only [MulAction.mem_stabilizerSubmonoid_iff, ← SubMulAction.val_smul, SetLike.coe_eq_coe]
Stabilizer Submonoid Equality in SubMulAction
Informal description
For any subset $p$ of $M$ closed under scalar multiplication by $R$ (i.e., a `SubMulAction R M`), and for any element $m \in p$, the stabilizer submonoid of $m$ in $p$ is equal to the stabilizer submonoid of $m$ in $M$. In other words, the elements of $R$ that fix $m$ under the action are the same whether $m$ is considered as an element of $p$ or of $M$.
SubMulAction.orbitRel_of_subMul theorem
(p : SubMulAction R M) : MulAction.orbitRel R p = (MulAction.orbitRel R M).comap Subtype.val
Full source
@[to_additive]
lemma orbitRel_of_subMul (p : SubMulAction R M) :
    MulAction.orbitRel R p = (MulAction.orbitRel R M).comap Subtype.val := by
  refine Setoid.ext_iff.2 (fun x y ↦ ?_)
  rw [Setoid.comap_rel]
  exact mem_orbit_subMul_iff
Orbit Equivalence Relation Restriction to SubMulAction
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$ (a `SubMulAction`), the orbit equivalence relation on $p$ induced by the action of $R$ is equal to the restriction of the orbit equivalence relation on $M$ to $p$ via the inclusion map. In other words, two elements $x, y \in p$ are in the same orbit under the action of $R$ in $p$ if and only if they are in the same orbit when considered as elements of $M$.
SubMulAction.stabilizer_of_subMul theorem
{p : SubMulAction R M} (m : p) : MulAction.stabilizer R m = MulAction.stabilizer R (m : M)
Full source
/-- Stabilizers in group SubMulAction coincide with stabilizers in the ambient space -/
@[to_additive]
theorem stabilizer_of_subMul {p : SubMulAction R M} (m : p) :
    MulAction.stabilizer R m = MulAction.stabilizer R (m : M) := by
  rw [← Subgroup.toSubmonoid_inj]
  exact stabilizer_of_subMul.submonoid m
Stabilizer Subgroup Equality in SubMulAction
Informal description
For any subset $p$ of $M$ closed under scalar multiplication by elements of $R$ (i.e., a `SubMulAction R M`), and for any element $m \in p$, the stabilizer subgroup of $m$ in $p$ is equal to the stabilizer subgroup of $m$ in $M$. In other words, the elements of $R$ that fix $m$ under the group action are the same whether $m$ is considered as an element of $p$ or of $M$.
SubMulAction.zero_mem theorem
(h : (p : Set M).Nonempty) : (0 : M) ∈ p
Full source
theorem zero_mem (h : (p : Set M).Nonempty) : (0 : M) ∈ p :=
  let ⟨x, hx⟩ := h
  zero_smul R (x : M) ▸ p.smul_mem 0 hx
Nonempty SubMulAction Contains Zero
Informal description
For any nonempty subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$, the zero element of $M$ is contained in $p$, i.e., $0 \in p$.
SubMulAction.instZeroSubtypeMemOfNonempty instance
[n_empty : Nonempty p] : Zero p
Full source
/-- If the scalar product forms a `Module`, and the `SubMulAction` is not `⊥`, then the
subset inherits the zero. -/
instance [n_empty : Nonempty p] : Zero p where
  zero := ⟨0, n_empty.elim fun x => p.zero_mem ⟨x, x.prop⟩⟩
Nonempty SubMulAction Inherits Zero Element
Informal description
For any nonempty subset $p$ of $M$ that is closed under scalar multiplication by elements of $R$, the subset $p$ inherits a zero element from $M$.
SubMulAction.neg_mem theorem
(hx : x ∈ p) : -x ∈ p
Full source
theorem neg_mem (hx : x ∈ p) : -x ∈ p := by
  rw [← neg_one_smul R]
  exact p.smul_mem _ hx
Negation Preserves Membership in SubMulAction
Informal description
For any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication, the negation $-x$ is also in $p$.
SubMulAction.instNegSubtypeMem instance
: Neg p
Full source
instance : Neg p :=
  ⟨fun x => ⟨-x.1, neg_mem _ x.2⟩⟩
Negation on Subsets Closed Under Scalar Multiplication
Informal description
For any subset $p$ of $M$ that is closed under scalar multiplication (a `SubMulAction`), the subset $p$ inherits a negation operation from $M$.
SubMulAction.val_neg theorem
(x : p) : ((-x : p) : M) = -x
Full source
@[simp, norm_cast]
theorem val_neg (x : p) : ((-x : p) : M) = -x :=
  rfl
Negation Commutes with Inclusion in Scalar-Multiplication-Closed Subsets
Informal description
For any element $x$ in a subset $p$ of $M$ that is closed under scalar multiplication, the image of the negation of $x$ (considered as an element of $p$) under the inclusion map to $M$ equals the negation of $x$ in $M$. In other words, $(-x)_p = -x_M$ where $(-)_p$ denotes negation within $p$ and $-_M$ denotes negation in $M$.
SubMulAction.smul_mem_iff theorem
(s0 : s ≠ 0) : s • x ∈ p ↔ x ∈ p
Full source
theorem smul_mem_iff (s0 : s ≠ 0) : s • x ∈ ps • x ∈ p ↔ x ∈ p :=
  p.smul_mem_iff' (Units.mk0 s s0)
Scalar Multiplication Membership Criterion for Nonzero Scalars
Informal description
For a nonzero scalar $s$ and an element $x$ in a type $M$ with a scalar multiplication action, $s \cdot x$ belongs to a subset $p$ of $M$ closed under scalar multiplication if and only if $x$ belongs to $p$.
SubMulAction.inclusion definition
(s : SubMulAction M α) : s →[M] α
Full source
/-- The inclusion of a SubMulAction into the ambient set, as an equivariant map -/
@[to_additive "The inclusion of a SubAddAction into the ambient set, as an equivariant map."]
def inclusion (s : SubMulAction M α) : s →[M] α where
-- The inclusion map of the inclusion of a SubMulAction
  toFun := Subtype.val
-- The commutation property
  map_smul' _ _ := rfl
Inclusion map of a scalar-multiplication-closed subset as an equivariant map
Informal description
The inclusion map from a subset $s$ of $\alpha$ closed under scalar multiplication by $M$ (a `SubMulAction`) to the ambient type $\alpha$, viewed as an $M$-equivariant map. This means the inclusion map preserves the scalar multiplication: for any $m \in M$ and $x \in s$, the inclusion of $m \cdot x$ equals $m \cdot$ (the inclusion of $x$).
SubMulAction.inclusion.toFun_eq_coe theorem
(s : SubMulAction M α) : s.inclusion.toFun = Subtype.val
Full source
@[to_additive]
theorem inclusion.toFun_eq_coe (s : SubMulAction M α) :
    s.inclusion.toFun = Subtype.val := rfl
Inclusion map equals subtype coercion for scalar-multiplication-closed subsets
Informal description
For any subset $s$ of $\alpha$ closed under scalar multiplication by $M$, the underlying function of the inclusion map $s \hookrightarrow \alpha$ is equal to the subtype coercion function.
SubMulAction.inclusion.coe_eq theorem
(s : SubMulAction M α) : ⇑s.inclusion = Subtype.val
Full source
@[to_additive]
theorem inclusion.coe_eq (s : SubMulAction M α) :
    ⇑s.inclusion = Subtype.val := rfl
Inclusion map as subtype coercion for scalar-multiplication-closed subsets
Informal description
For any subset $s$ of $\alpha$ that is closed under scalar multiplication by $M$ (a `SubMulAction`), the underlying function of the inclusion map $s \hookrightarrow \alpha$ (viewed as an $M$-equivariant map) is equal to the canonical subtype inclusion function $\text{Subtype.val} : s \to \alpha$.
SubMulAction.image_inclusion theorem
(s : SubMulAction M α) : Set.range s.inclusion = s.carrier
Full source
@[to_additive]
lemma image_inclusion (s : SubMulAction M α) :
    Set.range s.inclusion = s.carrier := by
  rw [inclusion.coe_eq]
  exact Subtype.range_coe
Range of Inclusion Map Equals Carrier Set for Scalar-Multiplication-Closed Subsets
Informal description
For any subset $s$ of $\alpha$ that is closed under scalar multiplication by $M$, the range of the inclusion map $s \hookrightarrow \alpha$ is equal to the underlying set of $s$.
SubMulAction.inclusion_injective theorem
(s : SubMulAction M α) : Function.Injective s.inclusion
Full source
@[to_additive]
lemma inclusion_injective (s : SubMulAction M α) :
    Function.Injective s.inclusion :=
  Subtype.val_injective
Injectivity of the Inclusion Map for Scalar-Multiplication-Closed Subsets
Informal description
For any subset $s$ of $\alpha$ that is closed under scalar multiplication by $M$, the inclusion map $s \hookrightarrow \alpha$ is injective.
Units.nonZeroSubMul definition
: SubMulAction Rˣ M
Full source
/-- The non-zero elements of `M` are invariant under the action by the units of `R`. -/
def nonZeroSubMul : SubMulAction  M where
  carrier := { x : M | x ≠ 0 }
  smul_mem' := by simp [Units.smul_def]
Non-zero subset invariant under unit multiplication
Informal description
The subset of non-zero elements of $M$ that is invariant under scalar multiplication by units of $R$. Specifically, for any unit $u \in R^\times$ and any non-zero element $x \in M$, the scalar product $u \cdot x$ is also non-zero and thus remains in the subset.
Units.instMulActionSubtypeNeOfNat instance
: MulAction Rˣ { x : M // x ≠ 0 }
Full source
instance : MulAction  { x : M // x ≠ 0 } :=
  SubMulAction.mulAction' (nonZeroSubMul R M)
Multiplicative Action of Units on Non-zero Elements
Informal description
The subset of non-zero elements $\{x \in M \mid x \neq 0\}$ of $M$ inherits a multiplicative action structure from the action of the units $R^\times$ on $M$.
Units.smul_coe theorem
(a : Rˣ) (x : { x : M // x ≠ 0 }) : (a • x).val = a • x.val
Full source
@[simp]
lemma smul_coe (a : ) (x : { x : M // x ≠ 0 }) :
    (a • x).val = a • x.val :=
  rfl
Scalar Multiplication Preserves Non-zero Elements: $(a \cdot x).\text{val} = a \cdot x.\text{val}$
Informal description
For any unit $a \in R^\times$ and any non-zero element $x \in M$, the scalar multiplication $a \cdot x$ in the subset of non-zero elements of $M$ is equal to the scalar multiplication $a \cdot x$ in $M$ itself. That is, $(a \cdot x).\text{val} = a \cdot x.\text{val}$.
Units.orbitRel_nonZero_iff theorem
(x y : { v : M // v ≠ 0 }) : MulAction.orbitRel Rˣ { v // v ≠ 0 } x y ↔ MulAction.orbitRel Rˣ M x y
Full source
lemma orbitRel_nonZero_iff (x y : { v : M // v ≠ 0 }) :
    MulAction.orbitRelMulAction.orbitRel Rˣ { v // v ≠ 0 } x y ↔ MulAction.orbitRel Rˣ M x y :=
  ⟨by rintro ⟨a, rfl⟩; exact ⟨a, by simp⟩, by intro ⟨a, ha⟩; exact ⟨a, by ext; simpa⟩⟩
Equivalence of Unit Orbits in Non-zero Subset and Full Space
Informal description
For any two non-zero elements $x, y$ in $M$, the equivalence relation induced by the action of the units $R^\times$ on the subset $\{v \in M \mid v \neq 0\}$ holds between $x$ and $y$ if and only if the same equivalence relation holds between $x$ and $y$ in the full space $M$.