Documentation

Mathlib.Algebra.Group.Equiv.Opposite

Group isomorphism between a group and its opposite #

MulOpposite.op on a commutative monoid is an isomorphism.

Instances For

    AddOpposite.op on a commutative additive monoid is an isomorphism.

    Instances For
      @[simp]
      theorem AddOpposite.opAddEquiv_apply {M : Type u_1} [AddCommMonoid M] (aāœ : M) :
      opAddEquiv aāœ = op aāœ
      @[simp]
      theorem MulOpposite.opMulEquiv_apply {M : Type u_1} [CommMonoid M] (aāœ : M) :
      opMulEquiv aāœ = op aāœ
      def MulOpposite.opAddEquiv {α : Type u_2} [Add α] :

      The function MulOpposite.op is an additive equivalence.

      Instances For
        @[simp]
        theorem MulOpposite.opAddEquiv_symm_apply {α : Type u_2} [Add α] :
        @[simp]
        theorem MulOpposite.opAddEquiv_apply {α : Type u_2} [Add α] :
        ⇑opAddEquiv = op
        @[simp]
        theorem MulOpposite.opAddEquiv_toEquiv {α : Type u_2} [Add α] :
        def AddOpposite.opMulEquiv {α : Type u_2} [Mul α] :

        The function AddOpposite.op is a multiplicative equivalence.

        Instances For
          @[simp]
          theorem AddOpposite.opMulEquiv_symm_apply {α : Type u_2} [Mul α] :
          @[simp]
          theorem AddOpposite.opMulEquiv_apply {α : Type u_2} [Mul α] :
          ⇑opMulEquiv = op
          @[simp]
          theorem AddOpposite.opMulEquiv_toEquiv {α : Type u_2} [Mul α] :

          Inversion on a group is a MulEquiv to the opposite group. When G is commutative, there is MulEquiv.inv.

          Instances For

            Negation on an additive group is an AddEquiv to the opposite group. When G is commutative, there is AddEquiv.inv.

            Instances For
              @[simp]
              theorem MulEquiv.inv'_apply (G : Type u_3) [DivisionMonoid G] :
              ⇑(inv' G) = MulOpposite.op ∘ Inv.inv
              def MulHom.toOpposite {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] (f : M →ₙ* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :

              A semigroup homomorphism f : M →ₙ* N such that f x commutes with f y for all x, y defines a semigroup homomorphism to Nᵐᵒᵖ.

              Instances For
                def AddHom.toOpposite {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : M →ₙ+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :

                An additive semigroup homomorphism f : AddHom M N such that f x additively commutes with f y for all x, y defines an additive semigroup homomorphism to Sįµƒįµ’įµ–.

                Instances For
                  @[simp]
                  theorem MulHom.toOpposite_apply {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] (f : M →ₙ* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :
                  ⇑(f.toOpposite hf) = MulOpposite.op ∘ ⇑f
                  @[simp]
                  theorem AddHom.toOpposite_apply {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : M →ₙ+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :
                  ⇑(f.toOpposite hf) = AddOpposite.op ∘ ⇑f
                  def MulHom.fromOpposite {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] (f : M →ₙ* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :

                  A semigroup homomorphism f : M →ₙ* N such that f x commutes with f y for all x, y defines a semigroup homomorphism from Mᵐᵒᵖ.

                  Instances For
                    def AddHom.fromOpposite {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : M →ₙ+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :

                    An additive semigroup homomorphism f : AddHom M N such that f x additively commutes with f y for all x, y defines an additive semigroup homomorphism from Mįµƒįµ’įµ–.

                    Instances For
                      @[simp]
                      theorem AddHom.fromOpposite_apply {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : M →ₙ+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :
                      ⇑(f.fromOpposite hf) = ⇑f ∘ AddOpposite.unop
                      @[simp]
                      theorem MulHom.fromOpposite_apply {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] (f : M →ₙ* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :
                      ⇑(f.fromOpposite hf) = ⇑f ∘ MulOpposite.unop
                      def MonoidHom.toOpposite {M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] (f : M →* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :

                      A monoid homomorphism f : M →* N such that f x commutes with f y for all x, y defines a monoid homomorphism to Nᵐᵒᵖ.

                      Instances For
                        def AddMonoidHom.toOpposite {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :

                        An additive monoid homomorphism f : M →+ N such that f x additively commutes with f y for all x, y defines an additive monoid homomorphism to Sįµƒįµ’įµ–.

                        Instances For
                          @[simp]
                          theorem MonoidHom.toOpposite_apply {M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] (f : M →* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :
                          ⇑(f.toOpposite hf) = MulOpposite.op ∘ ⇑f
                          @[simp]
                          theorem AddMonoidHom.toOpposite_apply {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :
                          ⇑(f.toOpposite hf) = AddOpposite.op ∘ ⇑f
                          def MonoidHom.fromOpposite {M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] (f : M →* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :

                          A monoid homomorphism f : M →* N such that f x commutes with f y for all x, y defines a monoid homomorphism from Mᵐᵒᵖ.

                          Instances For
                            def AddMonoidHom.fromOpposite {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :

                            An additive monoid homomorphism f : M →+ N such that f x additively commutes with f y for all x, y defines an additive monoid homomorphism from Mįµƒįµ’įµ–.

                            Instances For
                              @[simp]
                              theorem AddMonoidHom.fromOpposite_apply {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (hf : āˆ€ (x y : M), AddCommute (f x) (f y)) :
                              ⇑(f.fromOpposite hf) = ⇑f ∘ AddOpposite.unop
                              @[simp]
                              theorem MonoidHom.fromOpposite_apply {M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] (f : M →* N) (hf : āˆ€ (x y : M), Commute (f x) (f y)) :
                              ⇑(f.fromOpposite hf) = ⇑f ∘ MulOpposite.unop
                              def MulHom.op {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] :

                              A semigroup homomorphism M →ₙ* N can equivalently be viewed as a semigroup homomorphism Mᵐᵒᵖ →ₙ* Nᵐᵒᵖ. This is the action of the (fully faithful) ᵐᵒᵖ-functor on morphisms.

                              Instances For
                                def AddHom.op {M : Type u_3} {N : Type u_4} [Add M] [Add N] :

                                An additive semigroup homomorphism AddHom M N can equivalently be viewed as an additive semigroup homomorphism AddHom Mįµƒįµ’įµ– Nįµƒįµ’įµ–. This is the action of the (fully faithful)įµƒįµ’įµ–-functor on morphisms.

                                Instances For
                                  @[simp]
                                  theorem AddHom.op_symm_apply_apply {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : Mįµƒįµ’įµ– →ₙ+ Nįµƒįµ’įµ–) (aāœ : M) :
                                  (op.symm f) aāœ = (AddOpposite.unop ∘ ⇑f ∘ AddOpposite.op) aāœ
                                  @[simp]
                                  theorem MulHom.op_symm_apply_apply {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] (f : Mᵐᵒᵖ →ₙ* Nᵐᵒᵖ) (aāœ : M) :
                                  (op.symm f) aāœ = (MulOpposite.unop ∘ ⇑f ∘ MulOpposite.op) aāœ
                                  @[simp]
                                  theorem MulHom.op_apply_apply {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] (f : M →ₙ* N) (aāœ : Mᵐᵒᵖ) :
                                  (op f) aāœ = (MulOpposite.op ∘ ⇑f ∘ MulOpposite.unop) aāœ
                                  @[simp]
                                  theorem AddHom.op_apply_apply {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : M →ₙ+ N) (aāœ : Mįµƒįµ’įµ–) :
                                  (op f) aāœ = (AddOpposite.op ∘ ⇑f ∘ AddOpposite.unop) aāœ
                                  def MulHom.unop {M : Type u_3} {N : Type u_4} [Mul M] [Mul N] :

                                  The 'unopposite' of a semigroup homomorphism Mᵐᵒᵖ →ₙ* Nᵐᵒᵖ. Inverse to MulHom.op.

                                  Instances For
                                    def AddHom.unop {M : Type u_3} {N : Type u_4} [Add M] [Add N] :

                                    The 'unopposite' of an additive semigroup homomorphism Mįµƒįµ’įµ– →ₙ+ Nįµƒįµ’įµ–. Inverse to AddHom.op.

                                    Instances For

                                      An additive semigroup homomorphism AddHom M N can equivalently be viewed as an additive homomorphism AddHom Mᵐᵒᵖ Nᵐᵒᵖ. This is the action of the (fully faithful) ᵐᵒᵖ-functor on morphisms.

                                      Instances For
                                        @[simp]
                                        theorem AddHom.mulOp_apply_apply {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : M →ₙ+ N) (aāœ : Mᵐᵒᵖ) :
                                        (mulOp f) aāœ = (MulOpposite.op ∘ ⇑f ∘ MulOpposite.unop) aāœ
                                        @[simp]
                                        theorem AddHom.mulOp_symm_apply_apply {M : Type u_3} {N : Type u_4} [Add M] [Add N] (f : Mᵐᵒᵖ →ₙ+ Nᵐᵒᵖ) (aāœ : M) :
                                        (mulOp.symm f) aāœ = (MulOpposite.unop ∘ ⇑f ∘ MulOpposite.op) aāœ
                                        def AddHom.mulUnop {α : Type u_3} {β : Type u_4} [Add α] [Add β] :

                                        The 'unopposite' of an additive semigroup hom αᵐᵒᵖ →+ βᵐᵒᵖ. Inverse to AddHom.mul_op.

                                        Instances For

                                          A monoid homomorphism M →* N can equivalently be viewed as a monoid homomorphism Mᵐᵒᵖ →* Nᵐᵒᵖ. This is the action of the (fully faithful) ᵐᵒᵖ-functor on morphisms.

                                          Instances For

                                            An additive monoid homomorphism M →+ N can equivalently be viewed as an additive monoid homomorphism Mįµƒįµ’įµ– →+ Nįµƒįµ’įµ–. This is the action of the (fully faithful) įµƒįµ’įµ–-functor on morphisms.

                                            Instances For
                                              @[simp]
                                              theorem MonoidHom.op_apply_apply {M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] (f : M →* N) (aāœ : Mᵐᵒᵖ) :
                                              (op f) aāœ = (MulOpposite.op ∘ ⇑f ∘ MulOpposite.unop) aāœ
                                              @[simp]
                                              theorem AddMonoidHom.op_apply_apply {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (aāœ : Mįµƒįµ’įµ–) :
                                              (op f) aāœ = (AddOpposite.op ∘ ⇑f ∘ AddOpposite.unop) aāœ
                                              @[simp]
                                              theorem MonoidHom.op_symm_apply_apply {M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] (f : Mᵐᵒᵖ →* Nᵐᵒᵖ) (aāœ : M) :
                                              (op.symm f) aāœ = (MulOpposite.unop ∘ ⇑f ∘ MulOpposite.op) aāœ
                                              @[simp]
                                              theorem AddMonoidHom.op_symm_apply_apply {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : Mįµƒįµ’įµ– →+ Nįµƒįµ’įµ–) (aāœ : M) :
                                              (op.symm f) aāœ = (AddOpposite.unop ∘ ⇑f ∘ AddOpposite.op) aāœ

                                              The 'unopposite' of a monoid homomorphism Mᵐᵒᵖ →* Nᵐᵒᵖ. Inverse to MonoidHom.op.

                                              Instances For

                                                The 'unopposite' of an additive monoid homomorphism Mįµƒįµ’įµ– →+ Nįµƒįµ’įµ–. Inverse to AddMonoidHom.op.

                                                Instances For

                                                  A monoid is isomorphic to the opposite of its opposite.

                                                  Instances For

                                                    An additive monoid is isomorphic to the opposite of its opposite.

                                                    Instances For
                                                      @[simp]
                                                      theorem AddEquiv.opOp_apply (M : Type u_3) [Add M] (aāœ : M) :
                                                      (opOp M) aāœ = AddOpposite.op (AddOpposite.op aāœ)
                                                      @[simp]
                                                      theorem MulEquiv.opOp_apply (M : Type u_3) [Mul M] (aāœ : M) :
                                                      (opOp M) aāœ = MulOpposite.op (MulOpposite.op aāœ)

                                                      An additive homomorphism M →+ N can equivalently be viewed as an additive homomorphism Mᵐᵒᵖ →+ Nᵐᵒᵖ. This is the action of the (fully faithful) ᵐᵒᵖ-functor on morphisms.

                                                      Instances For
                                                        @[simp]
                                                        theorem AddMonoidHom.mulOp_apply_apply {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (aāœ : Mᵐᵒᵖ) :
                                                        (mulOp f) aāœ = (MulOpposite.op ∘ ⇑f ∘ MulOpposite.unop) aāœ
                                                        @[simp]
                                                        theorem AddMonoidHom.mulOp_symm_apply_apply {M : Type u_3} {N : Type u_4} [AddZeroClass M] [AddZeroClass N] (f : Mᵐᵒᵖ →+ Nᵐᵒᵖ) (aāœ : M) :
                                                        (mulOp.symm f) aāœ = (MulOpposite.unop ∘ ⇑f ∘ MulOpposite.op) aāœ
                                                        def AddMonoidHom.mulUnop {α : Type u_3} {β : Type u_4} [AddZeroClass α] [AddZeroClass β] :

                                                        The 'unopposite' of an additive monoid hom αᵐᵒᵖ →+ βᵐᵒᵖ. Inverse to AddMonoidHom.mul_op.

                                                        Instances For
                                                          def AddEquiv.mulOp {α : Type u_3} {β : Type u_4} [Add α] [Add β] :

                                                          An iso α ā‰ƒ+ β can equivalently be viewed as an iso αᵐᵒᵖ ā‰ƒ+ βᵐᵒᵖ.

                                                          Instances For
                                                            @[simp]
                                                            theorem AddEquiv.mulOp_apply {α : Type u_3} {β : Type u_4} [Add α] [Add β] (f : α ā‰ƒ+ β) :
                                                            def AddEquiv.mulUnop {α : Type u_3} {β : Type u_4} [Add α] [Add β] :

                                                            The 'unopposite' of an iso αᵐᵒᵖ ā‰ƒ+ βᵐᵒᵖ. Inverse to AddEquiv.mul_op.

                                                            Instances For
                                                              def MulEquiv.op {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] :

                                                              An iso α ā‰ƒ* β can equivalently be viewed as an iso αᵐᵒᵖ ā‰ƒ* βᵐᵒᵖ.

                                                              Instances For
                                                                def AddEquiv.op {α : Type u_3} {β : Type u_4} [Add α] [Add β] :

                                                                An iso α ā‰ƒ+ β can equivalently be viewed as an iso Ī±įµƒįµ’įµ– ā‰ƒ+ Ī²įµƒįµ’įµ–.

                                                                Instances For
                                                                  @[simp]
                                                                  theorem AddEquiv.op_apply_symm_apply {α : Type u_3} {β : Type u_4} [Add α] [Add β] (f : α ā‰ƒ+ β) (aāœ : Ī²įµƒįµ’įµ–) :
                                                                  (op f).symm aāœ = (AddOpposite.op ∘ ⇑f.symm ∘ AddOpposite.unop) aāœ
                                                                  @[simp]
                                                                  theorem MulEquiv.op_apply_apply {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] (f : α ā‰ƒ* β) (aāœ : αᵐᵒᵖ) :
                                                                  (op f) aāœ = (MulOpposite.op ∘ ⇑f ∘ MulOpposite.unop) aāœ
                                                                  @[simp]
                                                                  theorem AddEquiv.op_apply_apply {α : Type u_3} {β : Type u_4} [Add α] [Add β] (f : α ā‰ƒ+ β) (aāœ : Ī±įµƒįµ’įµ–) :
                                                                  (op f) aāœ = (AddOpposite.op ∘ ⇑f ∘ AddOpposite.unop) aāœ
                                                                  @[simp]
                                                                  theorem AddEquiv.op_symm_apply_apply {α : Type u_3} {β : Type u_4} [Add α] [Add β] (f : Ī±įµƒįµ’įµ– ā‰ƒ+ Ī²įµƒįµ’įµ–) (aāœ : α) :
                                                                  (op.symm f) aāœ = (AddOpposite.unop ∘ ⇑f ∘ AddOpposite.op) aāœ
                                                                  @[simp]
                                                                  theorem MulEquiv.op_apply_symm_apply {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] (f : α ā‰ƒ* β) (aāœ : βᵐᵒᵖ) :
                                                                  (op f).symm aāœ = (MulOpposite.op ∘ ⇑f.symm ∘ MulOpposite.unop) aāœ
                                                                  @[simp]
                                                                  theorem AddEquiv.op_symm_apply_symm_apply {α : Type u_3} {β : Type u_4} [Add α] [Add β] (f : Ī±įµƒįµ’įµ– ā‰ƒ+ Ī²įµƒįµ’įµ–) (aāœ : β) :
                                                                  (op.symm f).symm aāœ = (AddOpposite.unop ∘ ⇑f.symm ∘ AddOpposite.op) aāœ
                                                                  @[simp]
                                                                  theorem MulEquiv.op_symm_apply_apply {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] (f : αᵐᵒᵖ ā‰ƒ* βᵐᵒᵖ) (aāœ : α) :
                                                                  (op.symm f) aāœ = (MulOpposite.unop ∘ ⇑f ∘ MulOpposite.op) aāœ
                                                                  @[simp]
                                                                  theorem MulEquiv.op_symm_apply_symm_apply {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] (f : αᵐᵒᵖ ā‰ƒ* βᵐᵒᵖ) (aāœ : β) :
                                                                  (op.symm f).symm aāœ = (MulOpposite.unop ∘ ⇑f.symm ∘ MulOpposite.op) aāœ
                                                                  def MulEquiv.unop {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] :

                                                                  The 'unopposite' of an iso αᵐᵒᵖ ā‰ƒ* βᵐᵒᵖ. Inverse to MulEquiv.op.

                                                                  Instances For
                                                                    def AddEquiv.unop {α : Type u_3} {β : Type u_4} [Add α] [Add β] :

                                                                    The 'unopposite' of an iso Ī±įµƒįµ’įµ– ā‰ƒ+ Ī²įµƒįµ’įµ–. Inverse to AddEquiv.op.

                                                                    Instances For

                                                                      This ext lemma changes equalities on αᵐᵒᵖ →+ β to equalities on α →+ β. This is useful because there are often ext lemmas for specific αs that will apply to an equality of α →+ β such as Finsupp.addHom_ext'.