Documentation

Mathlib.GroupTheory.GroupAction.Defs

Definition of orbit, fixedPoints and stabilizer #

This file defines orbits, stabilizers, and other objects defined in terms of actions.

Main definitions #

def MulAction.orbit (M : Type u) [Monoid M] {α : Type v} [MulAction M α] (a : α) :
Set α

The orbit of an element under an action.

Equations
def AddAction.orbit (M : Type u) [AddMonoid M] {α : Type v} [AddAction M α] (a : α) :
Set α

The orbit of an element under an action.

Equations
theorem MulAction.mem_orbit_iff {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a₁ a₂ : α} :
a₂ orbit M a₁ ∃ (x : M), x a₁ = a₂
theorem AddAction.mem_orbit_iff {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a₁ a₂ : α} :
a₂ orbit M a₁ ∃ (x : M), x +ᵥ a₁ = a₂
@[simp]
theorem MulAction.mem_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (a : α) (m : M) :
m a orbit M a
@[simp]
theorem AddAction.mem_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (a : α) (m : M) :
m +ᵥ a orbit M a
theorem MulAction.mem_orbit_of_mem_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a₁ a₂ : α} (m : M) (h : a₂ orbit M a₁) :
m a₂ orbit M a₁
theorem AddAction.mem_orbit_of_mem_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a₁ a₂ : α} (m : M) (h : a₂ orbit M a₁) :
m +ᵥ a₂ orbit M a₁
@[simp]
theorem MulAction.mem_orbit_self {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (a : α) :
a orbit M a
@[simp]
theorem AddAction.mem_orbit_self {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (a : α) :
a orbit M a
theorem MulAction.orbit_nonempty {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (a : α) :
theorem AddAction.orbit_nonempty {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (a : α) :
theorem MulAction.mapsTo_smul_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (m : M) (a : α) :
Set.MapsTo (fun (x : α) => m x) (orbit M a) (orbit M a)
theorem AddAction.mapsTo_vadd_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (m : M) (a : α) :
Set.MapsTo (fun (x : α) => m +ᵥ x) (orbit M a) (orbit M a)
theorem MulAction.smul_orbit_subset {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (m : M) (a : α) :
m orbit M a orbit M a
theorem AddAction.vadd_orbit_subset {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (m : M) (a : α) :
m +ᵥ orbit M a orbit M a
theorem MulAction.orbit_smul_subset {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (m : M) (a : α) :
orbit M (m a) orbit M a
theorem AddAction.orbit_vadd_subset {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (m : M) (a : α) :
orbit M (m +ᵥ a) orbit M a
instance MulAction.instElemOrbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a : α} :
MulAction M (orbit M a)
Equations
instance AddAction.instElemOrbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a : α} :
AddAction M (orbit M a)
Equations
@[simp]
theorem MulAction.orbit.coe_smul {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a : α} {m : M} {a' : (orbit M a)} :
↑(m a') = m a'
@[simp]
theorem AddAction.orbit.coe_vadd {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a : α} {m : M} {a' : (orbit M a)} :
↑(m +ᵥ a') = m +ᵥ a'
theorem MulAction.orbit_submonoid_subset {M : Type u} [Monoid M] {α : Type v} [MulAction M α] (S : Submonoid M) (a : α) :
orbit (↥S) a orbit M a
theorem AddAction.orbit_addSubmonoid_subset {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] (S : AddSubmonoid M) (a : α) :
orbit (↥S) a orbit M a
theorem MulAction.mem_orbit_of_mem_orbit_submonoid {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {S : Submonoid M} {a b : α} (h : a orbit (↥S) b) :
a orbit M b
theorem AddAction.mem_orbit_of_mem_orbit_addSubmonoid {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {S : AddSubmonoid M} {a b : α} (h : a orbit (↥S) b) :
a orbit M b
def MulAction.fixedPoints (M : Type u) [Monoid M] (α : Type v) [MulAction M α] :
Set α

The set of elements fixed under the whole action.

Equations
def AddAction.fixedPoints (M : Type u) [AddMonoid M] (α : Type v) [AddAction M α] :
Set α

The set of elements fixed under the whole action.

Equations
def MulAction.fixedBy {M : Type u} [Monoid M] (α : Type v) [MulAction M α] (m : M) :
Set α

fixedBy m is the set of elements fixed by m.

Equations
def AddAction.fixedBy {M : Type u} [AddMonoid M] (α : Type v) [AddAction M α] (m : M) :
Set α

fixedBy m is the set of elements fixed by m.

Equations
theorem MulAction.fixed_eq_iInter_fixedBy (M : Type u) [Monoid M] (α : Type v) [MulAction M α] :
fixedPoints M α = ⋂ (m : M), fixedBy α m
theorem AddAction.fixed_eq_iInter_fixedBy (M : Type u) [AddMonoid M] (α : Type v) [AddAction M α] :
fixedPoints M α = ⋂ (m : M), fixedBy α m
@[simp]
theorem MulAction.mem_fixedPoints {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a : α} :
a fixedPoints M α ∀ (m : M), m a = a
@[simp]
theorem AddAction.mem_fixedPoints {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a : α} :
a fixedPoints M α ∀ (m : M), m +ᵥ a = a
@[simp]
theorem MulAction.mem_fixedBy {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {m : M} {a : α} :
a fixedBy α m m a = a
@[simp]
theorem AddAction.mem_fixedBy {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {m : M} {a : α} :
a fixedBy α m m +ᵥ a = a
theorem MulAction.mem_fixedPoints' {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a : α} :
a fixedPoints M α a'orbit M a, a' = a
theorem AddAction.mem_fixedPoints' {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a : α} :
a fixedPoints M α a'orbit M a, a' = a
def MulAction.stabilizerSubmonoid (M : Type u) [Monoid M] {α : Type v} [MulAction M α] (a : α) :

The stabilizer of a point a as a submonoid of M.

Equations
def AddAction.stabilizerAddSubmonoid (M : Type u) [AddMonoid M] {α : Type v} [AddAction M α] (a : α) :

The stabilizer of a point a as an additive submonoid of M.

Equations
@[simp]
theorem MulAction.mem_stabilizerSubmonoid_iff {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a : α} {m : M} :
@[simp]
theorem AddAction.mem_stabilizerAddSubmonoid_iff {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a : α} {m : M} :
def FixedPoints.submonoid (M : Type u) (α : Type v) [Monoid M] [Monoid α] [MulDistribMulAction M α] :

The submonoid of elements fixed under the whole action.

Equations
@[simp]
theorem FixedPoints.mem_submonoid (M : Type u) (α : Type v) [Monoid M] [Monoid α] [MulDistribMulAction M α] (a : α) :
a submonoid M α ∀ (m : M), m a = a
def FixedPoints.subgroup (M : Type u) (α : Type v) [Monoid M] [Group α] [MulDistribMulAction M α] :

The subgroup of elements fixed under the whole action.

Equations
@[simp]
theorem FixedPoints.mem_subgroup (M : Type u) (α : Type v) [Monoid M] [Group α] [MulDistribMulAction M α] (a : α) :
a subgroup M α ∀ (m : M), m a = a
@[simp]
@[simp]
theorem MulAction.orbit_smul {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g : G) (a : α) :
orbit G (g a) = orbit G a
@[simp]
theorem AddAction.orbit_vadd {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (g : G) (a : α) :
orbit G (g +ᵥ a) = orbit G a
theorem MulAction.orbit_eq_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a b : α} :
orbit G a = orbit G b a orbit G b
theorem AddAction.orbit_eq_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a b : α} :
orbit G a = orbit G b a orbit G b
theorem MulAction.mem_orbit_smul {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g : G) (a : α) :
a orbit G (g a)
theorem AddAction.mem_orbit_vadd {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (g : G) (a : α) :
a orbit G (g +ᵥ a)
theorem MulAction.smul_mem_orbit_smul {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g h : G) (a : α) :
g a orbit G (h a)
theorem AddAction.vadd_mem_orbit_vadd {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (g h : G) (a : α) :
g +ᵥ a orbit G (h +ᵥ a)
instance MulAction.instMulAction {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (H : Subgroup G) :
MulAction (↥H) α
Equations
instance AddAction.instAddAction {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (H : AddSubgroup G) :
AddAction (↥H) α
Equations
theorem MulAction.subgroup_smul_def {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} (a : H) (b : α) :
a b = a b
theorem AddAction.addSubgroup_vadd_def {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} (a : H) (b : α) :
a +ᵥ b = a +ᵥ b
theorem MulAction.orbit_subgroup_subset {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (H : Subgroup G) (a : α) :
orbit (↥H) a orbit G a
theorem AddAction.orbit_addSubgroup_subset {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (H : AddSubgroup G) (a : α) :
orbit (↥H) a orbit G a
theorem MulAction.mem_orbit_of_mem_orbit_subgroup {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} {a b : α} (h : a orbit (↥H) b) :
a orbit G b
theorem AddAction.mem_orbit_of_mem_orbit_addSubgroup {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} {a b : α} (h : a orbit (↥H) b) :
a orbit G b
theorem MulAction.mem_orbit_symm {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a₁ a₂ : α} :
a₁ orbit G a₂ a₂ orbit G a₁
theorem AddAction.mem_orbit_symm {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a₁ a₂ : α} :
a₁ orbit G a₂ a₂ orbit G a₁
theorem MulAction.mem_subgroup_orbit_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} {x : α} {a b : (orbit G x)} :
a orbit (↥H) b a orbit H b
theorem AddAction.mem_addSubgroup_orbit_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} {x : α} {a b : (orbit G x)} :
a orbit (↥H) b a orbit H b
def MulAction.orbitRel (G : Type u_1) (α : Type u_2) [Group G] [MulAction G α] :

The relation 'in the same orbit'.

Equations
def AddAction.orbitRel (G : Type u_1) (α : Type u_2) [AddGroup G] [AddAction G α] :

The relation 'in the same orbit'.

Equations
theorem MulAction.orbitRel_apply {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a b : α} :
(orbitRel G α) a b a orbit G b
theorem AddAction.orbitRel_apply {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a b : α} :
(orbitRel G α) a b a orbit G b
@[deprecated MulAction.orbitRel_apply (since := "2024-10-18")]
theorem MulAction.orbitRel_r_apply {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a b : α} :
(orbitRel G α) a b a orbit G b

Alias of MulAction.orbitRel_apply.

@[deprecated AddAction.orbitRel_apply (since := "2024-10-18")]
theorem AddAction.orbitRel_r_apply {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a b : α} :
(orbitRel G α) a b a orbit G b
theorem MulAction.quotient_preimage_image_eq_union_mul {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (U : Set α) :
Quotient.mk' ⁻¹' (Quotient.mk' '' U) = ⋃ (g : G), (fun (x : α) => g x) '' U

When you take a set U in α, push it down to the quotient, and pull back, you get the union of the orbit of U under G.

theorem AddAction.quotient_preimage_image_eq_union_add {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (U : Set α) :
Quotient.mk' ⁻¹' (Quotient.mk' '' U) = ⋃ (g : G), (fun (x : α) => g +ᵥ x) '' U

When you take a set U in α, push it down to the quotient, and pull back, you get the union of the orbit of U under G.

theorem MulAction.disjoint_image_image_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {U V : Set α} :
Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) xU, ∀ (g : G), g xV
theorem AddAction.disjoint_image_image_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {U V : Set α} :
Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) xU, ∀ (g : G), g +ᵥ xV
theorem MulAction.image_inter_image_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (U V : Set α) :
Quotient.mk' '' U Quotient.mk' '' V = xU, ∀ (g : G), g xV
theorem AddAction.image_inter_image_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (U V : Set α) :
Quotient.mk' '' U Quotient.mk' '' V = xU, ∀ (g : G), g +ᵥ xV
@[reducible, inline]
abbrev MulAction.orbitRel.Quotient (G : Type u_1) (α : Type u_2) [Group G] [MulAction G α] :
Type u_2

The quotient by MulAction.orbitRel, given a name to enable dot notation.

Equations
@[reducible, inline]
abbrev AddAction.orbitRel.Quotient (G : Type u_1) (α : Type u_2) [AddGroup G] [AddAction G α] :
Type u_2

The quotient by AddAction.orbitRel, given a name to enable dot notation.

Equations
def MulAction.orbitRel.Quotient.orbit {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (x : Quotient G α) :
Set α

The orbit corresponding to an element of the quotient by MulAction.orbitRel

Equations
def AddAction.orbitRel.Quotient.orbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (x : Quotient G α) :
Set α

The orbit corresponding to an element of the quotient by AddAction.orbitRel

Equations
@[simp]
theorem MulAction.orbitRel.Quotient.orbit_mk {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (a : α) :
@[simp]
theorem AddAction.orbitRel.Quotient.orbit_mk {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (a : α) :
theorem MulAction.orbitRel.Quotient.mem_orbit {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a : α} {x : Quotient G α} :
theorem AddAction.orbitRel.Quotient.mem_orbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a : α} {x : Quotient G α} :
theorem MulAction.orbitRel.Quotient.orbit_eq_orbit_out {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (x : Quotient G α) {φ : Quotient G αα} ( : Function.RightInverse φ Quotient.mk') :

Note that hφ = Quotient.out_eq' is a useful choice here.

theorem AddAction.orbitRel.Quotient.orbit_eq_orbit_out {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (x : Quotient G α) {φ : Quotient G αα} ( : Function.RightInverse φ Quotient.mk') :

Note that hφ = Quotient.out_eq' is a useful choice here.

@[simp]
theorem MulAction.orbitRel.Quotient.orbit_inj {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {x y : Quotient G α} :
x.orbit = y.orbit x = y
@[simp]
theorem AddAction.orbitRel.Quotient.orbit_inj {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {x y : Quotient G α} :
x.orbit = y.orbit x = y
theorem MulAction.orbitRel.quotient_eq_of_quotient_subgroup_eq {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} {a b : α} (h : a = b) :
theorem MulAction.orbitRel.Quotient.orbit_nonempty {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (x : Quotient G α) :
theorem MulAction.orbitRel.Quotient.mapsTo_smul_orbit {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g : G) (x : Quotient G α) :
Set.MapsTo (fun (x : α) => g x) x.orbit x.orbit
theorem AddAction.orbitRel.Quotient.mapsTo_vadd_orbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (g : G) (x : Quotient G α) :
Set.MapsTo (fun (x : α) => g +ᵥ x) x.orbit x.orbit
instance MulAction.instElemOrbit_1 {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (x : orbitRel.Quotient G α) :
Equations
instance AddAction.instElemOrbit_1 {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (x : orbitRel.Quotient G α) :
Equations
@[simp]
theorem MulAction.orbitRel.Quotient.orbit.coe_smul {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g : G} {x : Quotient G α} {a : x.orbit} :
↑(g a) = g a
@[simp]
theorem AddAction.orbitRel.Quotient.orbit.coe_vadd {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g : G} {x : Quotient G α} {a : x.orbit} :
↑(g +ᵥ a) = g +ᵥ a
@[simp]
theorem MulAction.orbitRel.Quotient.mem_subgroup_orbit_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} {x : Quotient G α} {a b : x.orbit} :
a MulAction.orbit H b a MulAction.orbit (↥H) b
@[simp]
theorem AddAction.orbitRel.Quotient.mem_addSubgroup_orbit_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} {x : Quotient G α} {a b : x.orbit} :
a AddAction.orbit H b a AddAction.orbit (↥H) b
theorem MulAction.orbitRel.Quotient.subgroup_quotient_eq_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} {x : Quotient G α} {a b : x.orbit} :
theorem AddAction.orbitRel.Quotient.addSubgroup_quotient_eq_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} {x : Quotient G α} {a b : x.orbit} :
theorem MulAction.orbitRel.Quotient.mem_subgroup_orbit_iff' {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {H : Subgroup G} {x : Quotient G α} {a b : x.orbit} {c : α} (h : a = b) :
a MulAction.orbit (↥H) c b MulAction.orbit (↥H) c
theorem AddAction.orbitRel.Quotient.mem_addSubgroup_orbit_iff' {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} {x : Quotient G α} {a b : x.orbit} {c : α} (h : a = b) :
a AddAction.orbit (↥H) c b AddAction.orbit (↥H) c
def MulAction.selfEquivSigmaOrbits' (G : Type u_1) (α : Type u_2) [Group G] [MulAction G α] :
α (ω : orbitRel.Quotient G α) × ω.orbit

Decomposition of a type X as a disjoint union of its orbits under a group action.

This version is expressed in terms of MulAction.orbitRel.Quotient.orbit instead of MulAction.orbit, to avoid mentioning Quotient.out.

Equations
def AddAction.selfEquivSigmaOrbits' (G : Type u_1) (α : Type u_2) [AddGroup G] [AddAction G α] :
α (ω : orbitRel.Quotient G α) × ω.orbit

Decomposition of a type X as a disjoint union of its orbits under an additive group action.

This version is expressed in terms of AddAction.orbitRel.Quotient.orbit instead of AddAction.orbit, to avoid mentioning Quotient.out.

Equations
def MulAction.selfEquivSigmaOrbits (G : Type u_1) (α : Type u_2) [Group G] [MulAction G α] :
α (ω : orbitRel.Quotient G α) × (orbit G (Quotient.out ω))

Decomposition of a type X as a disjoint union of its orbits under a group action.

Equations
def AddAction.selfEquivSigmaOrbits (G : Type u_1) (α : Type u_2) [AddGroup G] [AddAction G α] :
α (ω : orbitRel.Quotient G α) × (orbit G (Quotient.out ω))

Decomposition of a type X as a disjoint union of its orbits under an additive group action.

Equations
theorem MulAction.univ_eq_iUnion_orbit (G : Type u_1) (α : Type u_2) [Group G] [MulAction G α] :
Set.univ = ⋃ (x : orbitRel.Quotient G α), x.orbit

Decomposition of a type X as a disjoint union of its orbits under a group action. Phrased as a set union. See MulAction.selfEquivSigmaOrbits for the type isomorphism.

theorem AddAction.univ_eq_iUnion_orbit (G : Type u_1) (α : Type u_2) [AddGroup G] [AddAction G α] :
Set.univ = ⋃ (x : orbitRel.Quotient G α), x.orbit

Decomposition of a type X as a disjoint union of its orbits under an additive group action. Phrased as a set union. See AddAction.selfEquivSigmaOrbits for the type isomorphism.

def MulAction.stabilizer (G : Type u_1) {α : Type u_2} [Group G] [MulAction G α] (a : α) :

The stabilizer of an element under an action, i.e. what sends the element to itself. A subgroup.

Equations
def AddAction.stabilizer (G : Type u_1) {α : Type u_2} [AddGroup G] [AddAction G α] (a : α) :

The stabilizer of an element under an action, i.e. what sends the element to itself. An additive subgroup.

Equations
@[simp]
theorem MulAction.mem_stabilizer_iff {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a : α} {g : G} :
g stabilizer G a g a = a
@[simp]
theorem AddAction.mem_stabilizer_iff {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a : α} {g : G} :
g stabilizer G a g +ᵥ a = a
theorem MulAction.le_stabilizer_smul_left {G : Type u_1} {α : Type u_2} {β : Type u_3} [Group G] [MulAction G α] [MulAction G β] [SMul α β] [IsScalarTower G α β] (a : α) (b : β) :
theorem AddAction.le_stabilizer_vadd_left {G : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup G] [AddAction G α] [AddAction G β] [VAdd α β] [VAddAssocClass G α β] (a : α) (b : β) :
theorem MulAction.le_stabilizer_smul_right {α : Type u_2} {β : Type u_3} {G' : Type u_4} [Group G'] [SMul α β] [MulAction G' β] [SMulCommClass G' α β] (a : α) (b : β) :
theorem AddAction.le_stabilizer_vadd_right {α : Type u_2} {β : Type u_3} {G' : Type u_4} [AddGroup G'] [VAdd α β] [AddAction G' β] [VAddCommClass G' α β] (a : α) (b : β) :
@[simp]
theorem MulAction.stabilizer_smul_eq_left {G : Type u_1} {α : Type u_2} {β : Type u_3} [Group G] [MulAction G α] [MulAction G β] [SMul α β] [IsScalarTower G α β] (a : α) (b : β) (h : Function.Injective fun (x : α) => x b) :
@[simp]
theorem AddAction.stabilizer_vadd_eq_left {G : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup G] [AddAction G α] [AddAction G β] [VAdd α β] [VAddAssocClass G α β] (a : α) (b : β) (h : Function.Injective fun (x : α) => x +ᵥ b) :
@[simp]
theorem MulAction.stabilizer_smul_eq_right {G : Type u_1} {β : Type u_3} [Group G] [MulAction G β] {α : Type u_4} [Group α] [MulAction α β] [SMulCommClass G α β] (a : α) (b : β) :
@[simp]
theorem AddAction.stabilizer_vadd_eq_right {G : Type u_1} {β : Type u_3} [AddGroup G] [AddAction G β] {α : Type u_4} [AddGroup α] [AddAction α β] [VAddCommClass G α β] (a : α) (b : β) :
@[simp]
theorem MulAction.stabilizer_mul_eq_left {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] [Group α] [IsScalarTower G α α] (a b : α) :
stabilizer G (a * b) = stabilizer G a
@[simp]
theorem AddAction.stabilizer_add_eq_left {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] [AddGroup α] [VAddAssocClass G α α] (a b : α) :
stabilizer G (a + b) = stabilizer G a
@[simp]
theorem MulAction.stabilizer_mul_eq_right {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] [Group α] [SMulCommClass G α α] (a b : α) :
stabilizer G (a * b) = stabilizer G b
@[simp]
theorem AddAction.stabilizer_add_eq_right {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] [AddGroup α] [VAddCommClass G α α] (a b : α) :
stabilizer G (a + b) = stabilizer G b