Documentation

Mathlib.GroupTheory.Submonoid.MulOpposite

Submonoid of opposite monoids #

For every monoid M, we construct an equivalence between submonoids of M and that of Mᵐᵒᵖ.

theorem AddSubmonoid.op.proof_1 {M : Type u_1} [AddZeroClass M] (x : AddSubmonoid M) :
∀ {a b : Mᵃᵒᵖ}, a AddOpposite.unop ⁻¹' xb AddOpposite.unop ⁻¹' xAddOpposite.unop b + AddOpposite.unop a x

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

Equations
  • AddSubmonoid.op x = { toAddSubsemigroup := { carrier := AddOpposite.unop ⁻¹' x, add_mem' := }, zero_mem' := }
Instances For
    @[simp]
    theorem AddSubmonoid.op_coe {M : Type u_2} [AddZeroClass M] (x : AddSubmonoid M) :
    (AddSubmonoid.op x) = AddOpposite.unop ⁻¹' x
    @[simp]
    theorem Submonoid.op_coe {M : Type u_2} [MulOneClass M] (x : Submonoid M) :
    (Submonoid.op x) = MulOpposite.unop ⁻¹' x

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

    Equations
    • Submonoid.op x = { toSubsemigroup := { carrier := MulOpposite.unop ⁻¹' x, mul_mem' := }, one_mem' := }
    Instances For
      @[simp]

      Pull an opposite additive submonoid back to a submonoid along AddOpposite.op

      Equations
      • AddSubmonoid.unop x = { toAddSubsemigroup := { carrier := AddOpposite.op ⁻¹' x, add_mem' := }, zero_mem' := }
      Instances For
        theorem AddSubmonoid.unop.proof_1 {M : Type u_1} [AddZeroClass M] (x : AddSubmonoid Mᵃᵒᵖ) :
        ∀ {a b : M}, a AddOpposite.op ⁻¹' xb AddOpposite.op ⁻¹' x{ unop' := b } + { unop' := a } x
        @[simp]
        theorem AddSubmonoid.unop_coe {M : Type u_2} [AddZeroClass M] (x : AddSubmonoid Mᵃᵒᵖ) :
        (AddSubmonoid.unop x) = AddOpposite.op ⁻¹' x
        @[simp]
        theorem Submonoid.unop_coe {M : Type u_2} [MulOneClass M] (x : Submonoid Mᵐᵒᵖ) :
        (Submonoid.unop x) = MulOpposite.op ⁻¹' x

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

        Equations
        • Submonoid.unop x = { toSubsemigroup := { carrier := MulOpposite.op ⁻¹' x, mul_mem' := }, one_mem' := }
        Instances For
          @[simp]
          @[simp]

          Lattice results #

          theorem Submonoid.op_le_iff {M : Type u_2} [MulOneClass M] {S₁ : Submonoid M} {S₂ : Submonoid Mᵐᵒᵖ} :
          Submonoid.op S₁ S₂ S₁ Submonoid.unop S₂
          theorem Submonoid.le_op_iff {M : Type u_2} [MulOneClass M] {S₁ : Submonoid Mᵐᵒᵖ} {S₂ : Submonoid M} :
          S₁ Submonoid.op S₂ Submonoid.unop S₁ S₂
          @[simp]
          theorem AddSubmonoid.op_le_op_iff {M : Type u_2} [AddZeroClass M] {S₁ : AddSubmonoid M} {S₂ : AddSubmonoid M} :
          @[simp]
          theorem Submonoid.op_le_op_iff {M : Type u_2} [MulOneClass M] {S₁ : Submonoid M} {S₂ : Submonoid M} :
          Submonoid.op S₁ Submonoid.op S₂ S₁ S₂
          @[simp]

          A additive submonoid H of G determines an additive submonoid H.op of the opposite group Gᵐᵒᵖ.

          Equations
          • AddSubmonoid.opEquiv = { toEquiv := { toFun := AddSubmonoid.op, invFun := AddSubmonoid.unop, left_inv := , right_inv := }, map_rel_iff' := }
          Instances For
            @[simp]
            theorem Submonoid.opEquiv_symm_apply {M : Type u_2} [MulOneClass M] (x : Submonoid Mᵐᵒᵖ) :
            (RelIso.symm Submonoid.opEquiv) x = Submonoid.unop x
            @[simp]
            @[simp]
            theorem AddSubmonoid.opEquiv_apply {M : Type u_2} [AddZeroClass M] (x : AddSubmonoid M) :
            AddSubmonoid.opEquiv x = AddSubmonoid.op x
            @[simp]
            theorem Submonoid.opEquiv_apply {M : Type u_2} [MulOneClass M] (x : Submonoid M) :
            Submonoid.opEquiv x = Submonoid.op x

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

            Equations
            • Submonoid.opEquiv = { toEquiv := { toFun := Submonoid.op, invFun := Submonoid.unop, left_inv := , right_inv := }, map_rel_iff' := }
            Instances For
              theorem Submonoid.op_sup {M : Type u_2} [MulOneClass M] (S₁ : Submonoid M) (S₂ : Submonoid M) :
              theorem Submonoid.op_inf {M : Type u_2} [MulOneClass M] (S₁ : Submonoid M) (S₂ : Submonoid M) :
              theorem AddSubmonoid.op_sSup {M : Type u_2} [AddZeroClass M] (S : Set (AddSubmonoid M)) :
              AddSubmonoid.op (sSup S) = sSup (AddSubmonoid.unop ⁻¹' S)
              theorem Submonoid.op_sSup {M : Type u_2} [MulOneClass M] (S : Set (Submonoid M)) :
              Submonoid.op (sSup S) = sSup (Submonoid.unop ⁻¹' S)
              theorem Submonoid.unop_sSup {M : Type u_2} [MulOneClass M] (S : Set (Submonoid Mᵐᵒᵖ)) :
              Submonoid.unop (sSup S) = sSup (Submonoid.op ⁻¹' S)
              theorem AddSubmonoid.op_sInf {M : Type u_2} [AddZeroClass M] (S : Set (AddSubmonoid M)) :
              AddSubmonoid.op (sInf S) = sInf (AddSubmonoid.unop ⁻¹' S)
              theorem Submonoid.op_sInf {M : Type u_2} [MulOneClass M] (S : Set (Submonoid M)) :
              Submonoid.op (sInf S) = sInf (Submonoid.unop ⁻¹' S)
              theorem Submonoid.unop_sInf {M : Type u_2} [MulOneClass M] (S : Set (Submonoid Mᵐᵒᵖ)) :
              Submonoid.unop (sInf S) = sInf (Submonoid.op ⁻¹' S)
              theorem AddSubmonoid.op_iSup {ι : Sort u_1} {M : Type u_2} [AddZeroClass M] (S : ιAddSubmonoid M) :
              AddSubmonoid.op (iSup S) = ⨆ (i : ι), AddSubmonoid.op (S i)
              theorem Submonoid.op_iSup {ι : Sort u_1} {M : Type u_2} [MulOneClass M] (S : ιSubmonoid M) :
              Submonoid.op (iSup S) = ⨆ (i : ι), Submonoid.op (S i)
              theorem AddSubmonoid.unop_iSup {ι : Sort u_1} {M : Type u_2} [AddZeroClass M] (S : ιAddSubmonoid Mᵃᵒᵖ) :
              AddSubmonoid.unop (iSup S) = ⨆ (i : ι), AddSubmonoid.unop (S i)
              theorem Submonoid.unop_iSup {ι : Sort u_1} {M : Type u_2} [MulOneClass M] (S : ιSubmonoid Mᵐᵒᵖ) :
              Submonoid.unop (iSup S) = ⨆ (i : ι), Submonoid.unop (S i)
              theorem AddSubmonoid.op_iInf {ι : Sort u_1} {M : Type u_2} [AddZeroClass M] (S : ιAddSubmonoid M) :
              AddSubmonoid.op (iInf S) = ⨅ (i : ι), AddSubmonoid.op (S i)
              theorem Submonoid.op_iInf {ι : Sort u_1} {M : Type u_2} [MulOneClass M] (S : ιSubmonoid M) :
              Submonoid.op (iInf S) = ⨅ (i : ι), Submonoid.op (S i)
              theorem AddSubmonoid.unop_iInf {ι : Sort u_1} {M : Type u_2} [AddZeroClass M] (S : ιAddSubmonoid Mᵃᵒᵖ) :
              AddSubmonoid.unop (iInf S) = ⨅ (i : ι), AddSubmonoid.unop (S i)
              theorem Submonoid.unop_iInf {ι : Sort u_1} {M : Type u_2} [MulOneClass M] (S : ιSubmonoid Mᵐᵒᵖ) :
              Submonoid.unop (iInf S) = ⨅ (i : ι), Submonoid.unop (S i)
              def AddSubmonoid.equivOp {M : Type u_2} [AddZeroClass M] (H : AddSubmonoid M) :
              H (AddSubmonoid.op H)

              Bijection between an additive submonoid H and its opposite.

              Equations
              Instances For
                theorem AddSubmonoid.equivOp.proof_1 {M : Type u_1} [AddZeroClass M] (H : AddSubmonoid M) :
                ∀ (x : M), x H x H
                @[simp]
                theorem AddSubmonoid.equivOp_symm_apply_coe {M : Type u_2} [AddZeroClass M] (H : AddSubmonoid M) (b : { b : Mᵃᵒᵖ // (fun (x : Mᵃᵒᵖ) => x AddSubmonoid.op H) b }) :
                @[simp]
                theorem Submonoid.equivOp_symm_apply_coe {M : Type u_2} [MulOneClass M] (H : Submonoid M) (b : { b : Mᵐᵒᵖ // (fun (x : Mᵐᵒᵖ) => x Submonoid.op H) b }) :
                ((Submonoid.equivOp H).symm b) = MulOpposite.unop b
                @[simp]
                theorem Submonoid.equivOp_apply_coe {M : Type u_2} [MulOneClass M] (H : Submonoid M) (a : { a : M // (fun (x : M) => x H) a }) :
                @[simp]
                theorem AddSubmonoid.equivOp_apply_coe {M : Type u_2} [AddZeroClass M] (H : AddSubmonoid M) (a : { a : M // (fun (x : M) => x H) a }) :
                def Submonoid.equivOp {M : Type u_2} [MulOneClass M] (H : Submonoid M) :
                H (Submonoid.op H)

                Bijection between a submonoid H and its opposite.

                Equations
                Instances For