Documentation

Mathlib.GroupTheory.Subgroup.MulOpposite

Mul-opposite subgroups #

Tags #

subgroup, subgroups

Pull an additive subgroup back to an opposite additive subgroup along AddOpposite.unop

Equations
  • AddSubgroup.op H = { toAddSubmonoid := { toAddSubsemigroup := { carrier := AddOpposite.unop ⁻¹' H, add_mem' := }, zero_mem' := }, neg_mem' := }
Instances For
    theorem AddSubgroup.op.proof_1 {G : Type u_1} [AddGroup G] (H : AddSubgroup G) :
    ∀ {a b : Gᵃᵒᵖ}, a AddOpposite.unop ⁻¹' Hb AddOpposite.unop ⁻¹' HAddOpposite.unop b + AddOpposite.unop a H
    @[simp]
    theorem AddSubgroup.op_coe {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
    (AddSubgroup.op H) = AddOpposite.unop ⁻¹' H
    @[simp]
    theorem Subgroup.op_coe {G : Type u_2} [Group G] (H : Subgroup G) :
    (Subgroup.op H) = MulOpposite.unop ⁻¹' H
    def Subgroup.op {G : Type u_2} [Group G] (H : Subgroup G) :

    Pull a subgroup back to an opposite subgroup along MulOpposite.unop

    Equations
    • Subgroup.op H = { toSubmonoid := { toSubsemigroup := { carrier := MulOpposite.unop ⁻¹' H, mul_mem' := }, one_mem' := }, inv_mem' := }
    Instances For
      @[simp]
      theorem Subgroup.mem_op {G : Type u_2} [Group G] {x : Gᵐᵒᵖ} {S : Subgroup G} :
      @[simp]
      theorem AddSubgroup.op_toAddSubmonoid {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
      (AddSubgroup.op H).toAddSubmonoid = AddSubmonoid.op H.toAddSubmonoid
      @[simp]
      theorem Subgroup.op_toSubmonoid {G : Type u_2} [Group G] (H : Subgroup G) :
      (Subgroup.op H).toSubmonoid = Submonoid.op H.toSubmonoid

      Pull an opposite additive subgroup back to an additive subgroup along AddOpposite.op

      Equations
      • AddSubgroup.unop H = { toAddSubmonoid := { toAddSubsemigroup := { carrier := AddOpposite.op ⁻¹' H, add_mem' := }, zero_mem' := }, neg_mem' := }
      Instances For
        theorem AddSubgroup.unop.proof_1 {G : Type u_1} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
        ∀ {a b : G}, a AddOpposite.op ⁻¹' Hb AddOpposite.op ⁻¹' H{ unop' := b } + { unop' := a } H
        @[simp]
        theorem AddSubgroup.unop_coe {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
        (AddSubgroup.unop H) = AddOpposite.op ⁻¹' H
        @[simp]
        theorem Subgroup.unop_coe {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
        (Subgroup.unop H) = MulOpposite.op ⁻¹' H
        def Subgroup.unop {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :

        Pull an opposite subgroup back to a subgroup along MulOpposite.op

        Equations
        • Subgroup.unop H = { toSubmonoid := { toSubsemigroup := { carrier := MulOpposite.op ⁻¹' H, mul_mem' := }, one_mem' := }, inv_mem' := }
        Instances For
          @[simp]
          theorem Subgroup.mem_unop {G : Type u_2} [Group G] {x : G} {S : Subgroup Gᵐᵒᵖ} :
          @[simp]
          theorem AddSubgroup.unop_toAddSubmonoid {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
          (AddSubgroup.unop H).toAddSubmonoid = AddSubmonoid.unop H.toAddSubmonoid
          @[simp]
          theorem Subgroup.unop_toSubmonoid {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
          (Subgroup.unop H).toSubmonoid = Submonoid.unop H.toSubmonoid
          @[simp]
          theorem Subgroup.unop_op {G : Type u_2} [Group G] (S : Subgroup G) :
          @[simp]

          Lattice results #

          theorem AddSubgroup.op_le_iff {G : Type u_2} [AddGroup G] {S₁ : AddSubgroup G} {S₂ : AddSubgroup Gᵃᵒᵖ} :
          theorem Subgroup.op_le_iff {G : Type u_2} [Group G] {S₁ : Subgroup G} {S₂ : Subgroup Gᵐᵒᵖ} :
          Subgroup.op S₁ S₂ S₁ Subgroup.unop S₂
          theorem AddSubgroup.le_op_iff {G : Type u_2} [AddGroup G] {S₁ : AddSubgroup Gᵃᵒᵖ} {S₂ : AddSubgroup G} :
          theorem Subgroup.le_op_iff {G : Type u_2} [Group G] {S₁ : Subgroup Gᵐᵒᵖ} {S₂ : Subgroup G} :
          S₁ Subgroup.op S₂ Subgroup.unop S₁ S₂
          @[simp]
          theorem AddSubgroup.op_le_op_iff {G : Type u_2} [AddGroup G] {S₁ : AddSubgroup G} {S₂ : AddSubgroup G} :
          @[simp]
          theorem Subgroup.op_le_op_iff {G : Type u_2} [Group G] {S₁ : Subgroup G} {S₂ : Subgroup G} :
          Subgroup.op S₁ Subgroup.op S₂ S₁ S₂
          @[simp]
          theorem Subgroup.unop_le_unop_iff {G : Type u_2} [Group G] {S₁ : Subgroup Gᵐᵒᵖ} {S₂ : Subgroup Gᵐᵒᵖ} :
          Subgroup.unop S₁ Subgroup.unop S₂ S₁ S₂

          An additive subgroup H of G determines an additive subgroup H.op of the opposite additive group Gᵃᵒᵖ.

          Equations
          • AddSubgroup.opEquiv = { toEquiv := { toFun := AddSubgroup.op, invFun := AddSubgroup.unop, left_inv := , right_inv := }, map_rel_iff' := }
          Instances For
            @[simp]
            theorem AddSubgroup.opEquiv_apply {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
            AddSubgroup.opEquiv H = AddSubgroup.op H
            @[simp]
            theorem Subgroup.opEquiv_symm_apply {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
            (RelIso.symm Subgroup.opEquiv) H = Subgroup.unop H
            @[simp]
            theorem Subgroup.opEquiv_apply {G : Type u_2} [Group G] (H : Subgroup G) :
            Subgroup.opEquiv H = Subgroup.op H
            @[simp]
            theorem AddSubgroup.opEquiv_symm_apply {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
            (RelIso.symm AddSubgroup.opEquiv) H = AddSubgroup.unop H

            A subgroup H of G determines a subgroup H.op of the opposite group Gᵐᵒᵖ.

            Equations
            • Subgroup.opEquiv = { toEquiv := { toFun := Subgroup.op, invFun := Subgroup.unop, left_inv := , right_inv := }, map_rel_iff' := }
            Instances For
              @[simp]
              theorem Subgroup.op_bot {G : Type u_2} [Group G] :
              @[simp]
              @[simp]
              theorem Subgroup.op_top {G : Type u_2} [Group G] :
              @[simp]
              theorem AddSubgroup.op_sup {G : Type u_2} [AddGroup G] (S₁ : AddSubgroup G) (S₂ : AddSubgroup G) :
              theorem Subgroup.op_sup {G : Type u_2} [Group G] (S₁ : Subgroup G) (S₂ : Subgroup G) :
              Subgroup.op (S₁ S₂) = Subgroup.op S₁ Subgroup.op S₂
              theorem Subgroup.unop_sup {G : Type u_2} [Group G] (S₁ : Subgroup Gᵐᵒᵖ) (S₂ : Subgroup Gᵐᵒᵖ) :
              theorem AddSubgroup.op_inf {G : Type u_2} [AddGroup G] (S₁ : AddSubgroup G) (S₂ : AddSubgroup G) :
              theorem Subgroup.op_inf {G : Type u_2} [Group G] (S₁ : Subgroup G) (S₂ : Subgroup G) :
              Subgroup.op (S₁ S₂) = Subgroup.op S₁ Subgroup.op S₂
              theorem Subgroup.unop_inf {G : Type u_2} [Group G] (S₁ : Subgroup Gᵐᵒᵖ) (S₂ : Subgroup Gᵐᵒᵖ) :
              theorem AddSubgroup.op_sSup {G : Type u_2} [AddGroup G] (S : Set (AddSubgroup G)) :
              AddSubgroup.op (sSup S) = sSup (AddSubgroup.unop ⁻¹' S)
              theorem Subgroup.op_sSup {G : Type u_2} [Group G] (S : Set (Subgroup G)) :
              Subgroup.op (sSup S) = sSup (Subgroup.unop ⁻¹' S)
              theorem AddSubgroup.unop_sSup {G : Type u_2} [AddGroup G] (S : Set (AddSubgroup Gᵃᵒᵖ)) :
              AddSubgroup.unop (sSup S) = sSup (AddSubgroup.op ⁻¹' S)
              theorem Subgroup.unop_sSup {G : Type u_2} [Group G] (S : Set (Subgroup Gᵐᵒᵖ)) :
              Subgroup.unop (sSup S) = sSup (Subgroup.op ⁻¹' S)
              theorem AddSubgroup.op_sInf {G : Type u_2} [AddGroup G] (S : Set (AddSubgroup G)) :
              AddSubgroup.op (sInf S) = sInf (AddSubgroup.unop ⁻¹' S)
              theorem Subgroup.op_sInf {G : Type u_2} [Group G] (S : Set (Subgroup G)) :
              Subgroup.op (sInf S) = sInf (Subgroup.unop ⁻¹' S)
              theorem AddSubgroup.unop_sInf {G : Type u_2} [AddGroup G] (S : Set (AddSubgroup Gᵃᵒᵖ)) :
              AddSubgroup.unop (sInf S) = sInf (AddSubgroup.op ⁻¹' S)
              theorem Subgroup.unop_sInf {G : Type u_2} [Group G] (S : Set (Subgroup Gᵐᵒᵖ)) :
              Subgroup.unop (sInf S) = sInf (Subgroup.op ⁻¹' S)
              theorem AddSubgroup.op_iSup {ι : Sort u_1} {G : Type u_2} [AddGroup G] (S : ιAddSubgroup G) :
              AddSubgroup.op (iSup S) = ⨆ (i : ι), AddSubgroup.op (S i)
              theorem Subgroup.op_iSup {ι : Sort u_1} {G : Type u_2} [Group G] (S : ιSubgroup G) :
              Subgroup.op (iSup S) = ⨆ (i : ι), Subgroup.op (S i)
              theorem AddSubgroup.unop_iSup {ι : Sort u_1} {G : Type u_2} [AddGroup G] (S : ιAddSubgroup Gᵃᵒᵖ) :
              AddSubgroup.unop (iSup S) = ⨆ (i : ι), AddSubgroup.unop (S i)
              theorem Subgroup.unop_iSup {ι : Sort u_1} {G : Type u_2} [Group G] (S : ιSubgroup Gᵐᵒᵖ) :
              Subgroup.unop (iSup S) = ⨆ (i : ι), Subgroup.unop (S i)
              theorem AddSubgroup.op_iInf {ι : Sort u_1} {G : Type u_2} [AddGroup G] (S : ιAddSubgroup G) :
              AddSubgroup.op (iInf S) = ⨅ (i : ι), AddSubgroup.op (S i)
              theorem Subgroup.op_iInf {ι : Sort u_1} {G : Type u_2} [Group G] (S : ιSubgroup G) :
              Subgroup.op (iInf S) = ⨅ (i : ι), Subgroup.op (S i)
              theorem AddSubgroup.unop_iInf {ι : Sort u_1} {G : Type u_2} [AddGroup G] (S : ιAddSubgroup Gᵃᵒᵖ) :
              AddSubgroup.unop (iInf S) = ⨅ (i : ι), AddSubgroup.unop (S i)
              theorem Subgroup.unop_iInf {ι : Sort u_1} {G : Type u_2} [Group G] (S : ιSubgroup Gᵐᵒᵖ) :
              Subgroup.unop (iInf S) = ⨅ (i : ι), Subgroup.unop (S i)
              theorem Subgroup.op_closure {G : Type u_2} [Group G] (s : Set G) :
              theorem AddSubgroup.equivOp.proof_1 {G : Type u_1} [AddGroup G] (H : AddSubgroup G) :
              ∀ (x : G), x H x H
              def AddSubgroup.equivOp {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
              H (AddSubgroup.op H)

              Bijection between an additive subgroup H and its opposite.

              Equations
              Instances For
                @[simp]
                theorem Subgroup.equivOp_apply_coe {G : Type u_2} [Group G] (H : Subgroup G) (a : { a : G // (fun (x : G) => x H) a }) :
                @[simp]
                theorem AddSubgroup.equivOp_apply_coe {G : Type u_2} [AddGroup G] (H : AddSubgroup G) (a : { a : G // (fun (x : G) => x H) a }) :
                @[simp]
                theorem Subgroup.equivOp_symm_apply_coe {G : Type u_2} [Group G] (H : Subgroup G) (b : { b : Gᵐᵒᵖ // (fun (x : Gᵐᵒᵖ) => x Subgroup.op H) b }) :
                ((Subgroup.equivOp H).symm b) = MulOpposite.unop b
                @[simp]
                theorem AddSubgroup.equivOp_symm_apply_coe {G : Type u_2} [AddGroup G] (H : AddSubgroup G) (b : { b : Gᵃᵒᵖ // (fun (x : Gᵃᵒᵖ) => x AddSubgroup.op H) b }) :
                def Subgroup.equivOp {G : Type u_2} [Group G] (H : Subgroup G) :
                H (Subgroup.op H)

                Bijection between a subgroup H and its opposite.

                Equations
                Instances For
                  theorem AddSubgroup.vadd_opposite_add {G : Type u_2} [AddGroup G] {H : AddSubgroup G} (x : G) (g : G) (h : (AddSubgroup.op H)) :
                  h +ᵥ (g + x) = g + (h +ᵥ x)
                  theorem Subgroup.smul_opposite_mul {G : Type u_2} [Group G] {H : Subgroup G} (x : G) (g : G) (h : (Subgroup.op H)) :
                  h (g * x) = g * h x