Documentation

Mathlib.GroupTheory.GroupAction.ConjAct

Conjugation action of a group on itself #

This file defines the conjugation action of a group on itself. See also MulAut.conj for the definition of conjugation as a homomorphism into the automorphism group.

Main definitions #

A type alias ConjAct G is introduced for a group G. The group ConjAct G acts on G by conjugation. The group ConjAct G also acts on any normal subgroup of G by conjugation.

As a generalization, this also allows:

Implementation Notes #

The scalar action in defined in this file can also be written using MulAut.conj g • h. This has the advantage of not using the type alias ConjAct, but the downside of this approach is that some theorems about the group actions will not apply when since this MulAut.conj g • h describes an action of MulAut G on G, and not an action of G.

def ConjAct (G : Type u_3) :
Type u_3

A type alias for a group G. ConjAct G acts on G by conjugation

Instances For
    @[simp]

    Reinterpret g : ConjAct G as an element of G.

    Instances For

      Reinterpret g : G as an element of ConjAct G.

      Instances For
        def ConjAct.rec {G : Type u_3} [DivInvMonoid G] {C : ConjAct GSort u_7} (h : (g : G) → C (ConjAct.toConjAct g)) (g : ConjAct G) :
        C g

        A recursor for ConjAct, for use as induction x using ConjAct.rec when x : ConjAct G.

        Instances For
          @[simp]
          theorem ConjAct.forall {G : Type u_3} [DivInvMonoid G] (p : ConjAct GProp) :
          ((x : ConjAct G) → p x) (x : G) → p (ConjAct.toConjAct x)
          @[simp]
          theorem ConjAct.of_mul_symm_eq {G : Type u_3} [DivInvMonoid G] :
          MulEquiv.symm ConjAct.ofConjAct = ConjAct.toConjAct
          @[simp]
          theorem ConjAct.to_mul_symm_eq {G : Type u_3} [DivInvMonoid G] :
          MulEquiv.symm ConjAct.toConjAct = ConjAct.ofConjAct
          @[simp]
          theorem ConjAct.toConjAct_ofConjAct {G : Type u_3} [DivInvMonoid G] (x : ConjAct G) :
          ConjAct.toConjAct (ConjAct.ofConjAct x) = x
          @[simp]
          theorem ConjAct.ofConjAct_toConjAct {G : Type u_3} [DivInvMonoid G] (x : G) :
          ConjAct.ofConjAct (ConjAct.toConjAct x) = x
          theorem ConjAct.ofConjAct_one {G : Type u_3} [DivInvMonoid G] :
          ConjAct.ofConjAct 1 = 1
          theorem ConjAct.toConjAct_one {G : Type u_3} [DivInvMonoid G] :
          ConjAct.toConjAct 1 = 1
          @[simp]
          theorem ConjAct.ofConjAct_inv {G : Type u_3} [DivInvMonoid G] (x : ConjAct G) :
          ConjAct.ofConjAct x⁻¹ = (ConjAct.ofConjAct x)⁻¹
          @[simp]
          theorem ConjAct.toConjAct_inv {G : Type u_3} [DivInvMonoid G] (x : G) :
          ConjAct.toConjAct x⁻¹ = (ConjAct.toConjAct x)⁻¹
          theorem ConjAct.ofConjAct_mul {G : Type u_3} [DivInvMonoid G] (x : ConjAct G) (y : ConjAct G) :
          ConjAct.ofConjAct (x * y) = ConjAct.ofConjAct x * ConjAct.ofConjAct y
          theorem ConjAct.toConjAct_mul {G : Type u_3} [DivInvMonoid G] (x : G) (y : G) :
          ConjAct.toConjAct (x * y) = ConjAct.toConjAct x * ConjAct.toConjAct y
          theorem ConjAct.smul_def {G : Type u_3} [DivInvMonoid G] (g : ConjAct G) (h : G) :
          g h = ConjAct.ofConjAct g * h * (ConjAct.ofConjAct g)⁻¹
          instance ConjAct.unitsScalar {M : Type u_2} [Monoid M] :
          theorem ConjAct.units_smul_def {M : Type u_2} [Monoid M] (g : ConjAct Mˣ) (h : M) :
          g h = ↑(ConjAct.ofConjAct g) * h * (ConjAct.ofConjAct g)⁻¹
          instance ConjAct.unitsSMulCommClass (α : Type u_1) {M : Type u_2} [Monoid M] [SMul α M] [SMulCommClass α M M] [IsScalarTower α M M] :
          instance ConjAct.unitsSMulCommClass' (α : Type u_1) {M : Type u_2} [Monoid M] [SMul α M] [SMulCommClass M α M] [IsScalarTower α M M] :
          theorem ConjAct.ofConjAct_zero {G₀ : Type u_4} [GroupWithZero G₀] :
          ConjAct.ofConjAct 0 = 0
          theorem ConjAct.toConjAct_zero {G₀ : Type u_4} [GroupWithZero G₀] :
          ConjAct.toConjAct 0 = 0
          instance ConjAct.mulAction₀ {G₀ : Type u_4} [GroupWithZero G₀] :
          MulAction (ConjAct G₀) G₀
          instance ConjAct.smulCommClass₀ (α : Type u_1) {G₀ : Type u_4} [GroupWithZero G₀] [SMul α G₀] [SMulCommClass α G₀ G₀] [IsScalarTower α G₀ G₀] :
          SMulCommClass α (ConjAct G₀) G₀
          instance ConjAct.smulCommClass₀' (α : Type u_1) {G₀ : Type u_4} [GroupWithZero G₀] [SMul α G₀] [SMulCommClass G₀ α G₀] [IsScalarTower α G₀ G₀] :
          SMulCommClass (ConjAct G₀) α G₀
          instance ConjAct.smulCommClass (α : Type u_1) {G : Type u_3} [Group G] [SMul α G] [SMulCommClass α G G] [IsScalarTower α G G] :
          instance ConjAct.smulCommClass' (α : Type u_1) {G : Type u_3} [Group G] [SMul α G] [SMulCommClass G α G] [IsScalarTower α G G] :
          theorem ConjAct.smul_eq_mulAut_conj {G : Type u_3} [Group G] (g : ConjAct G) (h : G) :
          g h = ↑(MulAut.conj (ConjAct.ofConjAct g)) h

          The set of fixed points of the conjugation action of G on itself is the center of G.

          @[simp]
          theorem ConjAct.mem_orbit_conjAct {G : Type u_3} [Group G] {g : G} {h : G} :
          instance ConjAct.Subgroup.conjAction {G : Type u_3} [Group G] {H : Subgroup G} [hH : Subgroup.Normal H] :
          SMul (ConjAct G) { x // x H }

          As normal subgroups are closed under conjugation, they inherit the conjugation action of the underlying group.

          theorem ConjAct.Subgroup.val_conj_smul {G : Type u_3} [Group G] {H : Subgroup G} [Subgroup.Normal H] (g : ConjAct G) (h : { x // x H }) :
          ↑(g h) = g h
          def MulAut.conjNormal {G : Type u_3} [Group G] {H : Subgroup G} [Subgroup.Normal H] :
          G →* MulAut { x // x H }

          Group conjugation on a normal subgroup. Analogous to MulAut.conj.

          Instances For
            @[simp]
            theorem MulAut.conjNormal_apply {G : Type u_3} [Group G] {H : Subgroup G} [Subgroup.Normal H] (g : G) (h : { x // x H }) :
            ↑(↑(MulAut.conjNormal g) h) = g * h * g⁻¹
            @[simp]
            theorem MulAut.conjNormal_symm_apply {G : Type u_3} [Group G] {H : Subgroup G} [Subgroup.Normal H] (g : G) (h : { x // x H }) :
            ↑(↑(MulEquiv.symm (MulAut.conjNormal g)) h) = g⁻¹ * h * g
            @[simp]
            theorem MulAut.conjNormal_inv_apply {G : Type u_3} [Group G] {H : Subgroup G} [Subgroup.Normal H] (g : G) (h : { x // x H }) :
            ↑((MulAut.conjNormal g)⁻¹ h) = g⁻¹ * h * g
            theorem MulAut.conjNormal_val {G : Type u_3} [Group G] {H : Subgroup G} [Subgroup.Normal H] {h : { x // x H }} :
            MulAut.conjNormal h = MulAut.conj h
            @[simp]
            theorem val_unitsCentralizerEquiv_symm_apply_coe (M : Type u_2) [Monoid M] (x : Mˣ) :
            ∀ (a : { x // x MulAction.stabilizer (ConjAct Mˣ) x }), ↑(↑(MulEquiv.symm (unitsCentralizerEquiv M x)) a) = ↑(ConjAct.ofConjAct a)
            @[simp]
            theorem val_unitsCentralizerEquiv_apply_coe (M : Type u_2) [Monoid M] (x : Mˣ) :
            ∀ (a : { x // x Submonoid.centralizer {x} }ˣ), ↑(↑(unitsCentralizerEquiv M x) a) = a
            def unitsCentralizerEquiv (M : Type u_2) [Monoid M] (x : Mˣ) :

            The stabilizer of acting on itself by conjugation at x : Mˣ is exactly the units of the centralizer of x : M.

            Instances For