Documentation

Mathlib.Algebra.Group.Opposite

Group structures on the multiplicative and additive opposites #

Additive structures on αᵐᵒᵖ #

Equations
    Equations
      Equations
        Equations
          Equations

            Multiplicative structures on αᵐᵒᵖ #

            We also generate additive structures on αᵃᵒᵖ using to_additive

            instance MulOpposite.instMonoid {α : Type u_1} [Monoid α] :
            Equations
              instance MulOpposite.instGroup {α : Type u_1} [Group α] :
              Equations
                Equations
                  @[simp]
                  theorem MulOpposite.op_pow {α : Type u_1} [Monoid α] (x : α) (n : ) :
                  op (x ^ n) = op x ^ n
                  @[simp]
                  theorem MulOpposite.unop_pow {α : Type u_1} [Monoid α] (x : αᵐᵒᵖ) (n : ) :
                  unop (x ^ n) = unop x ^ n
                  @[simp]
                  theorem MulOpposite.op_zpow {α : Type u_1} [DivInvMonoid α] (x : α) (z : ) :
                  op (x ^ z) = op x ^ z
                  @[simp]
                  theorem MulOpposite.unop_zpow {α : Type u_1} [DivInvMonoid α] (x : αᵐᵒᵖ) (z : ) :
                  unop (x ^ z) = unop x ^ z
                  @[simp]
                  theorem MulOpposite.op_natCast {α : Type u_1} [NatCast α] (n : ) :
                  op n = n
                  @[simp]
                  theorem AddOpposite.op_natCast {α : Type u_1} [NatCast α] (n : ) :
                  op n = n
                  @[simp]
                  theorem MulOpposite.op_ofNat {α : Type u_1} [NatCast α] (n : ) [n.AtLeastTwo] :
                  @[simp]
                  theorem AddOpposite.op_ofNat {α : Type u_1} [NatCast α] (n : ) [n.AtLeastTwo] :
                  @[simp]
                  theorem MulOpposite.op_intCast {α : Type u_1} [IntCast α] (n : ) :
                  op n = n
                  @[simp]
                  theorem AddOpposite.op_intCast {α : Type u_1} [IntCast α] (n : ) :
                  op n = n
                  @[simp]
                  theorem MulOpposite.unop_natCast {α : Type u_1} [NatCast α] (n : ) :
                  unop n = n
                  @[simp]
                  theorem AddOpposite.unop_natCast {α : Type u_1} [NatCast α] (n : ) :
                  unop n = n
                  @[simp]
                  theorem MulOpposite.unop_ofNat {α : Type u_1} [NatCast α] (n : ) [n.AtLeastTwo] :
                  @[simp]
                  theorem AddOpposite.unop_ofNat {α : Type u_1} [NatCast α] (n : ) [n.AtLeastTwo] :
                  @[simp]
                  theorem MulOpposite.unop_intCast {α : Type u_1} [IntCast α] (n : ) :
                  unop n = n
                  @[simp]
                  theorem AddOpposite.unop_intCast {α : Type u_1} [IntCast α] (n : ) :
                  unop n = n
                  @[simp]
                  theorem MulOpposite.unop_div {α : Type u_1} [DivInvMonoid α] (x y : αᵐᵒᵖ) :
                  unop (x / y) = (unop y)⁻¹ * unop x
                  @[simp]
                  theorem AddOpposite.unop_sub {α : Type u_1} [SubNegMonoid α] (x y : αᵃᵒᵖ) :
                  unop (x - y) = -unop y + unop x
                  @[simp]
                  theorem MulOpposite.op_div {α : Type u_1} [DivInvMonoid α] (x y : α) :
                  op (x / y) = (op y)⁻¹ * op x
                  @[simp]
                  theorem AddOpposite.op_sub {α : Type u_1} [SubNegMonoid α] (x y : α) :
                  op (x - y) = -op y + op x
                  @[simp]
                  theorem MulOpposite.semiconjBy_op {α : Type u_1} [Mul α] {a x y : α} :
                  SemiconjBy (op a) (op y) (op x) SemiconjBy a x y
                  @[simp]
                  theorem AddOpposite.addSemiconjBy_op {α : Type u_1} [Add α] {a x y : α} :
                  @[simp]
                  theorem MulOpposite.semiconjBy_unop {α : Type u_1} [Mul α] {a x y : αᵐᵒᵖ} :
                  @[simp]
                  theorem AddOpposite.addSemiconjBy_unop {α : Type u_1} [Add α] {a x y : αᵃᵒᵖ} :
                  theorem SemiconjBy.op {α : Type u_1} [Mul α] {a x y : α} (h : SemiconjBy a x y) :
                  theorem AddSemiconjBy.op {α : Type u_1} [Add α] {a x y : α} (h : AddSemiconjBy a x y) :
                  theorem Commute.op {α : Type u_1} [Mul α] {x y : α} (h : Commute x y) :
                  theorem AddCommute.op {α : Type u_1} [Add α] {x y : α} (h : AddCommute x y) :
                  theorem Commute.unop {α : Type u_1} [Mul α] {x y : αᵐᵒᵖ} (h : Commute x y) :
                  theorem AddCommute.unop {α : Type u_1} [Add α] {x y : αᵃᵒᵖ} (h : AddCommute x y) :
                  @[simp]
                  theorem MulOpposite.commute_op {α : Type u_1} [Mul α] {x y : α} :
                  Commute (op x) (op y) Commute x y
                  @[simp]
                  theorem AddOpposite.addCommute_op {α : Type u_1} [Add α] {x y : α} :
                  @[simp]
                  theorem MulOpposite.commute_unop {α : Type u_1} [Mul α] {x y : αᵐᵒᵖ} :
                  @[simp]
                  theorem AddOpposite.addCommute_unop {α : Type u_1} [Add α] {x y : αᵃᵒᵖ} :

                  Multiplicative structures on αᵃᵒᵖ #

                  instance AddOpposite.pow {α : Type u_1} {β : Type u_2} [Pow α β] :
                  Equations
                    @[simp]
                    theorem AddOpposite.op_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
                    op (a ^ b) = op a ^ b
                    @[simp]
                    theorem AddOpposite.unop_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : αᵃᵒᵖ) (b : β) :
                    unop (a ^ b) = unop a ^ b
                    instance AddOpposite.instMonoid {α : Type u_1} [Monoid α] :
                    Equations
                      instance AddOpposite.instGroup {α : Type u_1} [Group α] :
                      Equations