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 orbit M y) :
x.1 orbit M y.1
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 orbit M y) :
x.1 orbit M y.1
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 orbit M y) :
x.2 orbit M y.2
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 orbit M y) :
x.2 orbit M y.2
theorem Finite.finite_mulAction_orbit {M : Type u} [Monoid M] {α : Type v} [MulAction M α] [Finite M] (a : α) :
theorem Finite.finite_addAction_orbit {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] [Finite M] (a : α) :
theorem MulAction.orbit_eq_univ (M : Type u) [Monoid M] {α : Type v} [MulAction M α] [IsPretransitive M α] (a : α) :
theorem AddAction.orbit_eq_univ (M : Type u) [AddMonoid M] {α : Type v} [AddAction M α] [IsPretransitive M α] (a : α) :
@[simp]
@[simp]
theorem MulAction.mem_fixedPoints_iff_card_orbit_eq_one {M : Type u} [Monoid M] {α : Type v} [MulAction M α] {a : α} [Fintype (orbit M a)] :
theorem AddAction.mem_fixedPoints_iff_card_orbit_eq_one {M : Type u} [AddMonoid M] {α : Type v} [AddAction M α] {a : α} [Fintype (orbit M a)] :
instance MulAction.instDecidablePredMemSetFixedByOfDecidableEq {M : Type u} [Monoid M] {β : Type u_1} [MulAction M β] (m : M) [DecidableEq β] :
DecidablePred fun (b : β) => b fixedBy β m
Equations
    instance AddAction.instDecidablePredMemSetFixedByAddOfDecidableEq {M : Type u} [AddMonoid M] {β : Type u_1} [AddAction M β] (m : M) [DecidableEq β] :
    DecidablePred fun (b : β) => b fixedBy β m
    Equations
      theorem smul_cancel_of_non_zero_divisor {M : Type u_1} {G : Type u_2} [Monoid M] [AddGroup G] [DistribMulAction M G] (k : M) (h : ∀ (x : G), k x = 0x = 0) {a b : G} (h' : k a = k b) :
      a = b

      smul by a k : M over a group 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.

      If a group acts nontrivially, then the type is nontrivial

      If a subgroup acts nontrivially, then the type is nontrivial.

      @[simp]
      theorem MulAction.smul_orbit {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (g : G) (a : α) :
      g orbit G a = orbit G a
      @[simp]
      theorem AddAction.vadd_orbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (g : G) (a : α) :
      g +ᵥ orbit G a = orbit 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.

      instance AddAction.instIsPretransitiveElemOrbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (a : α) :

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

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

      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.

      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 β] :

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

      def MulAction.stabilizerEquivStabilizer {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g : G} {a b : α} (hg : b = g a) :
      (stabilizer G a) ≃* (stabilizer G b)

      The natural group equivalence between the stabilizers of two elements in the same orbit.

      Equations
        Instances For
          theorem MulAction.stabilizerEquivStabilizer_apply {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g : G} {a b : α} (hg : b = g a) (x : (stabilizer G a)) :
          theorem MulAction.stabilizerEquivStabilizer_symm_apply {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g : G} {a b : α} (hg : b = g a) (x : (stabilizer G b)) :
          theorem MulAction.stabilizerEquivStabilizer_trans {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g h k : G} {a b c : α} (hg : b = g a) (hh : c = h b) (hk : c = k a) (H : k = h * g) :
          theorem MulAction.stabilizerEquivStabilizer_symm {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g : G} {a b : α} (hg : b = g a) :
          theorem MulAction.stabilizerEquivStabilizer_inv {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {g : G} {a b : α} (hg : b = g⁻¹ a) :
          noncomputable def MulAction.stabilizerEquivStabilizerOfOrbitRel {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {a b : α} (h : (orbitRel G α) a b) :
          (stabilizer G a) ≃* (stabilizer G 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).

              def AddAction.stabilizerEquivStabilizer {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g : G} {a b : α} (hg : b = g +ᵥ a) :
              (stabilizer G a) ≃+ (stabilizer G b)

              The natural group equivalence between the stabilizers of two elements in the same orbit.

              Equations
                Instances For
                  theorem AddAction.stabilizerEquivStabilizer_apply {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g : G} {a b : α} (hg : b = g +ᵥ a) (x : (stabilizer G a)) :
                  theorem AddAction.stabilizerEquivStabilizer_symm_apply {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g : G} {b : α} (hg : b = g +ᵥ b) (x : (stabilizer G b)) :
                  theorem AddAction.stabilizerEquivStabilizer_trans {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g h k : G} {a b c : α} (hg : b = g +ᵥ a) (hh : c = h +ᵥ b) (hk : c = k +ᵥ a) (H : k = h + g) :
                  theorem AddAction.stabilizerEquivStabilizer_symm {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g : G} {a b : α} (hg : b = g +ᵥ a) :
                  theorem AddAction.stabilizerEquivStabilizer_neg {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {g : G} {a b : α} (hg : b = -g +ᵥ a) :
                  noncomputable def AddAction.stabilizerEquivStabilizerOfOrbitRel {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a b : α} (h : (orbitRel G α) a b) :
                  (stabilizer G a) ≃+ (stabilizer G 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 stabilizer G s gH, g s s

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

                      theorem AddAction.le_stabilizer_iff_vadd_le {G : Type u_1} [AddGroup G] {α : Type u_2} [AddAction G α] (s : Set α) (H : AddSubgroup G) :
                      H stabilizer G s gH, g +ᵥ s s

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