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

Equations
Instances For
    instance ConjAct.instGroup {G : Type u_3} [Group G] :
    Equations
    • ConjAct.instGroup = inst
    Equations
    • ConjAct.instDivInvMonoid = inst
    Equations
    • ConjAct.instGroupWithZero = inst
    instance ConjAct.instFintype {G : Type u_3} [Fintype G] :
    Equations
    • ConjAct.instFintype = inst
    @[simp]
    Equations
    • ConjAct.instInhabited = { default := 1 }

    Reinterpret g : ConjAct G as an element of G.

    Equations
    • ConjAct.ofConjAct = { toFun := id, invFun := id, left_inv := , right_inv := , map_mul' := }
    Instances For

      Reinterpret g : G as an element of ConjAct G.

      Equations
      • ConjAct.toConjAct = ConjAct.ofConjAct.symm
      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 when x : ConjAct G.

        Equations
        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] :
          ConjAct.ofConjAct.symm = ConjAct.toConjAct
          @[simp]
          theorem ConjAct.to_mul_symm_eq {G : Type u_3} [DivInvMonoid G] :
          ConjAct.toConjAct.symm = 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
          instance ConjAct.instSMul {G : Type u_3} [DivInvMonoid G] :
          Equations
          • ConjAct.instSMul = { smul := fun (g : ConjAct G) (h : G) => ConjAct.ofConjAct g * h * (ConjAct.ofConjAct g)⁻¹ }
          theorem ConjAct.smul_def {G : Type u_3} [DivInvMonoid G] (g : ConjAct G) (h : G) :
          g h = ConjAct.ofConjAct g * h * (ConjAct.ofConjAct g)⁻¹
          theorem ConjAct.toConjAct_smul {G : Type u_3} [DivInvMonoid G] (g : G) (h : G) :
          ConjAct.toConjAct g h = g * h * g⁻¹
          instance ConjAct.unitsScalar {M : Type u_2} [Monoid M] :
          Equations
          • ConjAct.unitsScalar = { smul := fun (g : ConjAct Mˣ) (h : M) => (ConjAct.ofConjAct g) * h * (ConjAct.ofConjAct g)⁻¹ }
          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)⁻¹
          Equations
          instance ConjAct.unitsSMulCommClass (α : Type u_1) {M : Type u_2} [Monoid M] [SMul α M] [SMulCommClass α M M] [IsScalarTower α M M] :
          Equations
          • =
          instance ConjAct.unitsSMulCommClass' (α : Type u_1) {M : Type u_2} [Monoid M] [SMul α M] [SMulCommClass M α M] [IsScalarTower α M M] :
          Equations
          • =
          Equations
          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₀
          Equations
          instance ConjAct.smulCommClass₀ (α : Type u_1) {G₀ : Type u_4} [GroupWithZero G₀] [SMul α G₀] [SMulCommClass α G₀ G₀] [IsScalarTower α G₀ G₀] :
          SMulCommClass α (ConjAct G₀) G₀
          Equations
          • =
          instance ConjAct.smulCommClass₀' (α : Type u_1) {G₀ : Type u_4} [GroupWithZero G₀] [SMul α G₀] [SMulCommClass G₀ α G₀] [IsScalarTower α G₀ G₀] :
          SMulCommClass (ConjAct G₀) α G₀
          Equations
          • =
          Equations
          Equations
          instance ConjAct.smulCommClass (α : Type u_1) {G : Type u_3} [Group G] [SMul α G] [SMulCommClass α G G] [IsScalarTower α G G] :
          Equations
          • =
          instance ConjAct.smulCommClass' (α : Type u_1) {G : Type u_3} [Group G] [SMul α G] [SMulCommClass G α G] [IsScalarTower α G G] :
          Equations
          • =
          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} :
          theorem ConjAct.orbitRel_conjAct {G : Type u_3} [Group G] :
          (MulAction.orbitRel (ConjAct G) G).Rel = IsConj
          instance ConjAct.Subgroup.conjAction {G : Type u_3} [Group G] {H : Subgroup G} [hH : H.Normal] :
          SMul (ConjAct G) { x : G // x H }

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

          Equations
          • ConjAct.Subgroup.conjAction = { smul := fun (g : ConjAct G) (h : { x : G // x H }) => g h, }
          theorem ConjAct.Subgroup.val_conj_smul {G : Type u_3} [Group G] {H : Subgroup G} [H.Normal] (g : ConjAct G) (h : { x : G // x H }) :
          (g h) = g h
          instance ConjAct.Subgroup.conjMulDistribMulAction {G : Type u_3} [Group G] {H : Subgroup G} [H.Normal] :
          MulDistribMulAction (ConjAct G) { x : G // x H }
          Equations
          def MulAut.conjNormal {G : Type u_3} [Group G] {H : Subgroup G} [H.Normal] :
          G →* MulAut { x : G // x H }

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

          Equations
          Instances For
            @[simp]
            theorem MulAut.conjNormal_apply {G : Type u_3} [Group G] {H : Subgroup G} [H.Normal] (g : G) (h : { x : G // x H }) :
            ((MulAut.conjNormal g) h) = g * h * g⁻¹
            @[simp]
            theorem MulAut.conjNormal_symm_apply {G : Type u_3} [Group G] {H : Subgroup G} [H.Normal] (g : G) (h : { x : G // 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} [H.Normal] (g : G) (h : { x : G // x H }) :
            ((MulAut.conjNormal g)⁻¹ h) = g⁻¹ * h * g
            theorem MulAut.conjNormal_val {G : Type u_3} [Group G] {H : Subgroup G} [H.Normal] {h : { x : G // x H }} :
            MulAut.conjNormal h = MulAut.conj h
            instance ConjAct.normal_of_characteristic_of_normal {G : Type u_3} [Group G] {H : Subgroup G} [hH : H.Normal] {K : Subgroup { x : G // x H }} [h : K.Characteristic] :
            (Subgroup.map H.subtype K).Normal
            Equations
            • =
            @[simp]
            theorem val_unitsCentralizerEquiv_symm_apply_coe (M : Type u_2) [Monoid M] (x : Mˣ) :
            ∀ (a : { x_1 : ConjAct Mˣ // x_1 MulAction.stabilizer (ConjAct Mˣ) x }), ((unitsCentralizerEquiv M x).symm a) = (ConjAct.ofConjAct a)
            @[simp]
            theorem val_unitsCentralizerEquiv_apply_coe (M : Type u_2) [Monoid M] (x : Mˣ) :
            ∀ (a : { x_1 : M // x_1 Submonoid.centralizer {x} }ˣ), ((unitsCentralizerEquiv M x) a) = a
            def unitsCentralizerEquiv (M : Type u_2) [Monoid M] (x : Mˣ) :
            { x_1 : M // x_1 Submonoid.centralizer {x} }ˣ ≃* { x_1 : ConjAct Mˣ // x_1 MulAction.stabilizer (ConjAct Mˣ) x }

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

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For