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 (γ : Type u_2) {α : Type u_3} [SMul γ α] (a : α) :
Set α

The orbit of an element under an action.

Instances For
    def AddAction.orbit (γ : Type u_2) {α : Type u_3} [VAdd γ α] (a : α) :
    Set α

    The orbit of an element under an action.

    Instances For
      theorem MulAction.mem_orbit_iff {γ : Type u_2} {α : Type u_3} [SMul γ α] {a₁ a₂ : α} :
      a₂ orbit γ a₁ ∃ (x : γ), x a₁ = a₂
      theorem AddAction.mem_orbit_iff {γ : Type u_2} {α : Type u_3} [VAdd γ α] {a₁ a₂ : α} :
      a₂ orbit γ a₁ ∃ (x : γ), x +ᵥ a₁ = a₂
      @[simp]
      theorem MulAction.mem_orbit {γ : Type u_2} {α : Type u_3} [SMul γ α] (a : α) (m : γ) :
      m a orbit γ a
      @[simp]
      theorem AddAction.mem_orbit {γ : Type u_2} {α : Type u_3} [VAdd γ α] (a : α) (m : γ) :
      m +ᵥ a orbit γ a
      theorem MulAction.mem_orbit_of_mem_orbit {M : Type u_1} {α : Type u_3} [Monoid M] [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_1} {α : Type u_3} [AddMonoid M] [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_1} {α : Type u_3} [Monoid M] [MulAction M α] (a : α) :
      a orbit M a
      @[simp]
      theorem AddAction.mem_orbit_self {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] (a : α) :
      a orbit M a
      theorem MulAction.nonempty_orbit {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] (a : α) :
      theorem AddAction.nonempty_orbit {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] (a : α) :
      @[deprecated MulAction.nonempty_orbit (since := "2025-09-25")]
      theorem MulAction.orbit_nonempty {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] (a : α) :

      Alias of MulAction.nonempty_orbit.

      theorem MulAction.mapsTo_smul_orbit {M : Type u_1} {α : Type u_3} [Monoid M] [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_1} {α : Type u_3} [AddMonoid M] [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_1} {α : Type u_3} [Monoid M] [MulAction M α] (m : M) (a : α) :
      m orbit M a orbit M a
      theorem AddAction.vadd_orbit_subset {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] (m : M) (a : α) :
      m +ᵥ orbit M a orbit M a
      theorem MulAction.orbit_smul_subset {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] (m : M) (a : α) :
      orbit M (m a) orbit M a
      theorem AddAction.orbit_vadd_subset {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] (m : M) (a : α) :
      orbit M (m +ᵥ a) orbit M a
      @[implicit_reducible]
      instance MulAction.instElemOrbit {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] {a : α} :
      MulAction M (orbit M a)
      @[implicit_reducible]
      instance AddAction.instElemOrbit {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] {a : α} :
      AddAction M (orbit M a)
      @[simp]
      theorem MulAction.orbit.coe_smul {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] {a : α} {m : M} {a' : (orbit M a)} :
      (m a') = m a'
      @[simp]
      theorem AddAction.orbit.coe_vadd {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] {a : α} {m : M} {a' : (orbit M a)} :
      ↑(m +ᵥ a') = m +ᵥ a'
      theorem MulAction.orbit_submonoid_subset {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] (S : Submonoid M) (a : α) :
      orbit (↥S) a orbit M a
      theorem AddAction.orbit_addSubmonoid_subset {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] (S : AddSubmonoid M) (a : α) :
      orbit (↥S) a orbit M a
      theorem MulAction.mem_orbit_of_mem_orbit_submonoid {M : Type u_1} {α : Type u_3} [Monoid M] [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_1} {α : Type u_3} [AddMonoid M] [AddAction M α] {S : AddSubmonoid M} {a b : α} (h : a orbit (↥S) b) :
      a orbit M b
      def MulAction.fixedPoints (M : Type u_1) (α : Type u_3) [Monoid M] [MulAction M α] :
      Set α

      The set of elements fixed under the whole action.

      Instances For
        def AddAction.fixedPoints (M : Type u_1) (α : Type u_3) [AddMonoid M] [AddAction M α] :
        Set α

        The set of elements fixed under the whole action.

        Instances For
          def MulAction.fixedBy {M : Type u_1} (α : Type u_3) [Monoid M] [MulAction M α] (m : M) :
          Set α

          fixedBy m is the set of elements fixed by m.

          Instances For
            def AddAction.fixedBy {M : Type u_1} (α : Type u_3) [AddMonoid M] [AddAction M α] (m : M) :
            Set α

            fixedBy m is the set of elements fixed by m.

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

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

              Instances For
                def AddAction.stabilizerAddSubmonoid (M : Type u_1) {α : Type u_3} [AddMonoid M] [AddAction M α] (a : α) :

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

                Instances For
                  @[implicit_reducible]
                  instance MulAction.instDecidablePredMemSubmonoidStabilizerSubmonoidOfDecidableEq {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] [DecidableEq α] (a : α) :
                  DecidablePred fun (x : M) => x stabilizerSubmonoid M a
                  @[implicit_reducible]
                  instance AddAction.instDecidablePredMemAddSubmonoidStabilizerAddSubmonoidOfDecidableEq {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] [DecidableEq α] (a : α) :
                  DecidablePred fun (x : M) => x stabilizerAddSubmonoid M a
                  @[simp]
                  theorem MulAction.mem_stabilizerSubmonoid_iff {M : Type u_1} {α : Type u_3} [Monoid M] [MulAction M α] {a : α} {m : M} :
                  m stabilizerSubmonoid M a m a = a
                  @[simp]
                  theorem AddAction.mem_stabilizerAddSubmonoid_iff {M : Type u_1} {α : Type u_3} [AddMonoid M] [AddAction M α] {a : α} {m : M} :
                  m stabilizerAddSubmonoid M a m +ᵥ a = a
                  def FixedPoints.submonoid (M : Type u) (α : Type v) [Monoid M] [Monoid α] [MulDistribMulAction M α] :

                  The submonoid of elements fixed under the whole action.

                  Instances For
                    @[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.

                    Instances For
                      def FixedPoints.«term_^*_» :
                      Lean.TrailingParserDescr

                      The notation for FixedPoints.subgroup, chosen to resemble αᴹ.

                      Instances For
                        @[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]
                        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)
                        @[implicit_reducible]
                        instance MulAction.instMulAction {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (H : Subgroup G) :
                        MulAction (↥H) α
                        @[implicit_reducible]
                        instance AddAction.instAddAction {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (H : AddSubgroup G) :
                        AddAction (↥H) α
                        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 α] :
                        Setoid α

                        The relation 'in the same orbit'.

                        Instances For
                          def AddAction.orbitRel (G : Type u_1) (α : Type u_2) [AddGroup G] [AddAction G α] :
                          Setoid α

                          The relation 'in the same orbit'.

                          Instances For
                            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
                            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.

                            Instances For
                              @[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.

                              Instances For
                                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

                                Instances For
                                  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

                                  Instances For
                                    @[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 α} :
                                    a x.orbit Quotient.mk'' a = x
                                    theorem AddAction.orbitRel.Quotient.mem_orbit {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {a : α} {x : Quotient G α} :
                                    a x.orbit Quotient.mk'' a = x
                                    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') :
                                    x.orbit = MulAction.orbit G (φ x)

                                    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') :
                                    x.orbit = AddAction.orbit G (φ x)

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

                                    theorem MulAction.orbitRel.Quotient.orbit_injective {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] :
                                    Function.Injective orbit
                                    theorem AddAction.orbitRel.Quotient.orbit_injective {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] :
                                    Function.Injective orbit
                                    @[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) :
                                    a = b
                                    theorem AddAction.orbitRel.quotient_eq_of_quotient_addSubgroup_eq {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] {H : AddSubgroup G} {a b : α} (h : a = b) :
                                    a = b
                                    @[deprecated MulAction.orbitRel.Quotient.nonempty_orbit (since := "2025-09-25")]
                                    theorem MulAction.orbitRel.Quotient.orbit_nonempty {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (x : Quotient G α) :

                                    Alias of MulAction.orbitRel.Quotient.nonempty_orbit.

                                    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
                                    @[implicit_reducible]
                                    instance MulAction.instElemOrbit_1 {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (x : orbitRel.Quotient G α) :
                                    @[implicit_reducible]
                                    instance AddAction.instElemOrbit_1 {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] (x : orbitRel.Quotient G α) :
                                    @[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} :
                                    a = b a = b
                                    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} :
                                    a = b a = b
                                    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.

                                    Instances For
                                      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.

                                      Instances For
                                        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.

                                        Instances For
                                          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.

                                          Instances For
                                            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.

                                            Instances For
                                              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.

                                              Instances For
                                                @[implicit_reducible]
                                                instance MulAction.instDecidablePredMemSubgroupStabilizerOfDecidableEq {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] [DecidableEq α] (a : α) :
                                                DecidablePred fun (x : G) => x stabilizer G a
                                                @[implicit_reducible]
                                                instance AddAction.instDecidablePredMemAddSubgroupStabilizerOfDecidableEq {G : Type u_1} {α : Type u_2} [AddGroup G] [AddAction G α] [DecidableEq α] (a : α) :
                                                DecidablePred fun (x : G) => x stabilizer G a
                                                @[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 : β) :
                                                stabilizer G a stabilizer 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 : β) :
                                                stabilizer G' b stabilizer 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) :
                                                stabilizer G (a b) = stabilizer G a
                                                @[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) :
                                                stabilizer G (a +ᵥ b) = stabilizer G a
                                                @[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 : β) :
                                                stabilizer G (a b) = stabilizer G 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 : β) :
                                                stabilizer G (a +ᵥ b) = stabilizer G 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