Documentation

Mathlib.GroupTheory.GroupAction.Basic

Basic properties of group actions #

This file primarily concerns itself with orbits, stabilizers, and other objects defined in terms of actions. Despite this file being called basic, low-level helper lemmas for algebraic manipulation of belong elsewhere.

Main definitions #

theorem MulAction.fst_mem_orbit_of_mem_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {β : Type u_1} [MulAction M β] {x y : α × β} (h : x MulAction.orbit M y) :
theorem AddAction.fst_mem_orbit_of_mem_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {β : Type u_1} [AddAction M β] {x y : α × β} (h : x AddAction.orbit M y) :
theorem MulAction.snd_mem_orbit_of_mem_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {β : Type u_1} [MulAction M β] {x y : α × β} (h : x MulAction.orbit M y) :
theorem AddAction.snd_mem_orbit_of_mem_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {β : Type u_1} [AddAction M β] {x y : α × β} (h : x AddAction.orbit M y) :
theorem Finite.finite_mulAction_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] [Finite M] (a : α) :
(MulAction.orbit M a).Finite
theorem Finite.finite_addAction_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] [Finite M] (a : α) :
(AddAction.orbit M a).Finite
theorem MulAction.orbit_eq_univ (M : Type u) [Monoid M] {α : Type v} [MulAction M α] [MulAction.IsPretransitive M α] (a : α) :
MulAction.orbit M a = Set.univ
theorem AddAction.orbit_eq_univ (M : Type u) [AddMonoid M] {α : Type v} [AddAction M α] [AddAction.IsPretransitive M α] (a : α) :
AddAction.orbit M a = Set.univ
instance MulAction.instDecidablePredMemSetFixedByOfDecidableEq {M : Type u} [Monoid M] {β : Type u_1} [MulAction M β] (m : M) [DecidableEq β] :
DecidablePred fun (b : β) => b MulAction.fixedBy β m
Equations
theorem smul_cancel_of_non_zero_divisor {M : Type u_1} {R : Type u_2} [Monoid M] [NonUnitalNonAssocRing R] [DistribMulAction M R] (k : M) (h : ∀ (x : R), k x = 0x = 0) {a b : R} (h' : k a = k b) :
a = b

smul by a k : M over a ring is injective, if k is not a zero divisor. The general theory of such k is elaborated by IsSMulRegular. The typeclass that restricts all terms of M to have this property is NoZeroSMulDivisors.

@[simp]
theorem MulAction.smul_orbit {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g : G) (a : α) :
@[simp]
theorem AddAction.vadd_orbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (g : G) (a : α) :
instance MulAction.instIsPretransitiveElemOrbit {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (a : α) :

The action of a group on an orbit is transitive.

Equations
  • =

The action of an additive group on an orbit is transitive.

Equations
  • =
theorem MulAction.orbitRel_subgroup_le {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (H : Subgroup G) :
theorem MulAction.orbitRel_subgroupOf {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (H K : Subgroup G) :
MulAction.orbitRel (↥(H.subgroupOf K)) α = MulAction.orbitRel (↥(H K)) α
theorem AddAction.orbitRel_addSubgroupOf {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (H K : AddSubgroup G) :
AddAction.orbitRel (↥(H.addSubgroupOf K)) α = AddAction.orbitRel (↥(H K)) α

An action is pretransitive if and only if the quotient by MulAction.orbitRel is a subsingleton.

An additive action is pretransitive if and only if the quotient by AddAction.orbitRel is a subsingleton.

If α is non-empty, an action is pretransitive if and only if the quotient has exactly one element.

If α is non-empty, an additive action is pretransitive if and only if the quotient has exactly one element.

Equations
  • =
Equations
  • =
theorem MulAction.orbitRel_le_fst (G : Type u_1) (α : Type u_2) (β : Type u_3) [Group G] [MulAction G α] [MulAction G β] :
theorem AddAction.orbitRel_le_fst (G : Type u_1) (α : Type u_2) (β : Type u_3) [AddGroup G] [AddAction G α] [AddAction G β] :
theorem MulAction.orbitRel_le_snd (G : Type u_1) (α : Type u_2) (β : Type u_3) [Group G] [MulAction G α] [MulAction G β] :
theorem AddAction.orbitRel_le_snd (G : Type u_1) (α : Type u_2) (β : Type u_3) [AddGroup G] [AddAction G α] [AddAction G β] :
theorem MulAction.stabilizer_smul_eq_stabilizer_map_conj {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g : G) (a : α) :

If the stabilizer of a is S, then the stabilizer of g • a is gSg⁻¹.

noncomputable def MulAction.stabilizerEquivStabilizerOfOrbitRel {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a b : α} (h : (MulAction.orbitRel G α) a b) :

A bijection between the stabilizers of two elements in the same orbit.

Equations
Instances For

    If the stabilizer of x is S, then the stabilizer of g +ᵥ x is g + S + (-g).

    noncomputable def AddAction.stabilizerEquivStabilizerOfOrbitRel {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a b : α} (h : (AddAction.orbitRel G α) a b) :

    A bijection between the stabilizers of two elements in the same orbit.

    Equations
    Instances For
      theorem Equiv.swap_mem_stabilizer {α : Type u_1} [DecidableEq α] {S : Set α} {a b : α} :
      theorem MulAction.le_stabilizer_iff_smul_le {G : Type u_1} [Group G] {α : Type u_2} [MulAction G α] (s : Set α) (H : Subgroup G) :
      H MulAction.stabilizer G s gH, g s s

      To prove inclusion of a subgroup in a stabilizer, it is enough to prove inclusions.

      theorem MulAction.mem_stabilizer_of_finite_iff_smul_le {G : Type u_1} [Group G] {α : Type u_2} [MulAction G α] (s : Set α) (hs : s.Finite) (g : G) :

      To prove membership to stabilizer of a finite set, it is enough to prove one inclusion.

      theorem MulAction.mem_stabilizer_of_finite_iff_le_smul {G : Type u_1} [Group G] {α : Type u_2} [MulAction G α] (s : Set α) (hs : s.Finite) (g : G) :

      To prove membership to stabilizer of a finite set, it is enough to prove one inclusion.