HepLean Documentation

Mathlib.Algebra.Group.Subgroup.MulOpposite

Mul-opposite subgroups #

Tags #

subgroup, subgroups

def Subgroup.op {G : Type u_2} [Group G] (H : Subgroup G) :

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

Equations
  • H.op = { carrier := MulOpposite.unop ⁻¹' H, mul_mem' := , one_mem' := , inv_mem' := }
Instances For

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

    Equations
    • H.op = { carrier := AddOpposite.unop ⁻¹' H, add_mem' := , zero_mem' := , neg_mem' := }
    Instances For
      @[simp]
      theorem AddSubgroup.coe_op {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
      H.op = AddOpposite.unop ⁻¹' H
      @[simp]
      theorem Subgroup.coe_op {G : Type u_2} [Group G] (H : Subgroup G) :
      H.op = MulOpposite.unop ⁻¹' H
      @[simp]
      theorem Subgroup.mem_op {G : Type u_2} [Group G] {x : Gᵐᵒᵖ} {S : Subgroup G} :
      @[simp]
      theorem AddSubgroup.mem_op {G : Type u_2} [AddGroup G] {x : Gᵃᵒᵖ} {S : AddSubgroup G} :
      @[simp]
      theorem Subgroup.op_toSubmonoid {G : Type u_2} [Group G] (H : Subgroup G) :
      H.op.toSubmonoid = H.op
      @[simp]
      theorem AddSubgroup.op_toAddSubmonoid {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
      H.op.toAddSubmonoid = H.op
      def Subgroup.unop {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :

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

      Equations
      • H.unop = { carrier := MulOpposite.op ⁻¹' H, mul_mem' := , one_mem' := , inv_mem' := }
      Instances For

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

        Equations
        • H.unop = { carrier := AddOpposite.op ⁻¹' H, add_mem' := , zero_mem' := , neg_mem' := }
        Instances For
          @[simp]
          theorem Subgroup.coe_unop {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
          H.unop = MulOpposite.op ⁻¹' H
          @[simp]
          theorem AddSubgroup.coe_unop {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
          H.unop = AddOpposite.op ⁻¹' H
          @[simp]
          theorem Subgroup.mem_unop {G : Type u_2} [Group G] {x : G} {S : Subgroup Gᵐᵒᵖ} :
          x S.unop MulOpposite.op x S
          @[simp]
          theorem AddSubgroup.mem_unop {G : Type u_2} [AddGroup G] {x : G} {S : AddSubgroup Gᵃᵒᵖ} :
          x S.unop AddOpposite.op x S
          @[simp]
          theorem Subgroup.unop_toSubmonoid {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
          H.unop.toSubmonoid = H.unop
          @[simp]
          theorem AddSubgroup.unop_toAddSubmonoid {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
          H.unop.toAddSubmonoid = H.unop
          @[simp]
          theorem Subgroup.unop_op {G : Type u_2} [Group G] (S : Subgroup G) :
          S.op.unop = S
          @[simp]
          theorem AddSubgroup.unop_op {G : Type u_2} [AddGroup G] (S : AddSubgroup G) :
          S.op.unop = S
          @[simp]
          theorem Subgroup.op_unop {G : Type u_2} [Group G] (S : Subgroup Gᵐᵒᵖ) :
          S.unop.op = S
          @[simp]
          theorem AddSubgroup.op_unop {G : Type u_2} [AddGroup G] (S : AddSubgroup Gᵃᵒᵖ) :
          S.unop.op = S

          Lattice results #

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

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

          Equations
          • Subgroup.opEquiv = { toFun := Subgroup.op, invFun := Subgroup.unop, left_inv := , right_inv := , map_rel_iff' := }
          Instances For

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

            Equations
            • AddSubgroup.opEquiv = { 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 = H.op
              @[simp]
              theorem AddSubgroup.opEquiv_symm_apply {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
              (RelIso.symm AddSubgroup.opEquiv) H = H.unop
              @[simp]
              theorem Subgroup.opEquiv_apply {G : Type u_2} [Group G] (H : Subgroup G) :
              Subgroup.opEquiv H = H.op
              @[simp]
              theorem Subgroup.opEquiv_symm_apply {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
              (RelIso.symm Subgroup.opEquiv) H = H.unop
              theorem Subgroup.op_injective {G : Type u_2} [Group G] :
              Function.Injective Subgroup.op
              theorem AddSubgroup.op_injective {G : Type u_2} [AddGroup G] :
              Function.Injective AddSubgroup.op
              theorem Subgroup.unop_injective {G : Type u_2} [Group G] :
              Function.Injective Subgroup.unop
              theorem AddSubgroup.unop_injective {G : Type u_2} [AddGroup G] :
              Function.Injective AddSubgroup.unop
              @[simp]
              theorem Subgroup.op_inj {G : Type u_2} [Group G] {S T : Subgroup G} :
              S.op = T.op S = T
              @[simp]
              theorem AddSubgroup.op_inj {G : Type u_2} [AddGroup G] {S T : AddSubgroup G} :
              S.op = T.op S = T
              @[simp]
              theorem Subgroup.unop_inj {G : Type u_2} [Group G] {S T : Subgroup Gᵐᵒᵖ} :
              S.unop = T.unop S = T
              @[simp]
              theorem AddSubgroup.unop_inj {G : Type u_2} [AddGroup G] {S T : AddSubgroup Gᵃᵒᵖ} :
              S.unop = T.unop S = T
              def Subgroup.equivOp {G : Type u_2} [Group G] (H : Subgroup G) :
              H H.op

              Bijection between a subgroup H and its opposite.

              Equations
              • H.equivOp = MulOpposite.opEquiv.subtypeEquiv
              Instances For
                def AddSubgroup.equivOp {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
                H H.op

                Bijection between an additive subgroup H and its opposite.

                Equations
                • H.equivOp = AddOpposite.opEquiv.subtypeEquiv
                Instances For
                  @[simp]
                  theorem Subgroup.equivOp_symm_apply_coe {G : Type u_2} [Group G] (H : Subgroup G) (b : H.op) :
                  (H.equivOp.symm b) = MulOpposite.unop b
                  @[simp]
                  theorem Subgroup.equivOp_apply_coe {G : Type u_2} [Group G] (H : Subgroup G) (a : H) :
                  (H.equivOp a) = MulOpposite.op a
                  @[simp]
                  theorem AddSubgroup.equivOp_apply_coe {G : Type u_2} [AddGroup G] (H : AddSubgroup G) (a : H) :
                  (H.equivOp a) = AddOpposite.op a
                  @[simp]
                  theorem AddSubgroup.equivOp_symm_apply_coe {G : Type u_2} [AddGroup G] (H : AddSubgroup G) (b : H.op) :
                  (H.equivOp.symm b) = AddOpposite.unop b
                  theorem Subgroup.op_normalizer {G : Type u_2} [Group G] (H : Subgroup G) :
                  H.normalizer.op = H.op.normalizer
                  theorem AddSubgroup.op_normalizer {G : Type u_2} [AddGroup G] (H : AddSubgroup G) :
                  H.normalizer.op = H.op.normalizer
                  theorem Subgroup.unop_normalizer {G : Type u_2} [Group G] (H : Subgroup Gᵐᵒᵖ) :
                  H.normalizer.unop = H.unop.normalizer
                  theorem AddSubgroup.unop_normalizer {G : Type u_2} [AddGroup G] (H : AddSubgroup Gᵃᵒᵖ) :
                  H.normalizer.unop = H.unop.normalizer