Documentation

Mathlib.Algebra.Group.Opposite

Group structures on the multiplicative and additive opposites #

Additive structures on αᵐᵒᵖ #

Multiplicative structures on αᵐᵒᵖ #

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

instance MulOpposite.instGroup {α : Type u_1} [Group α] :
Equations
    @[simp]
    theorem MulOpposite.op_pow {α : Type u_1} [Monoid α] (x : α) (n : ) :
    op (x ^ n) = op x ^ n
    @[simp]
    theorem AddOpposite.op_nsmul {α : Type u_1} [AddMonoid α] (x : α) (n : ) :
    op (n x) = n op x
    @[simp]
    theorem MulOpposite.unop_pow {α : Type u_1} [Monoid α] (x : αᵐᵒᵖ) (n : ) :
    unop (x ^ n) = unop x ^ n
    @[simp]
    theorem AddOpposite.unop_nsmul {α : Type u_1} [AddMonoid α] (x : αᵃᵒᵖ) (n : ) :
    unop (n x) = n unop x
    @[simp]
    theorem MulOpposite.op_zpow {α : Type u_1} [DivInvMonoid α] (x : α) (z : ) :
    op (x ^ z) = op x ^ z
    @[simp]
    theorem AddOpposite.op_zsmul {α : Type u_1} [SubNegMonoid α] (x : α) (z : ) :
    op (z x) = z op x
    @[simp]
    theorem MulOpposite.unop_zpow {α : Type u_1} [DivInvMonoid α] (x : αᵐᵒᵖ) (z : ) :
    unop (x ^ z) = unop x ^ z
    @[simp]
    theorem AddOpposite.unop_zsmul {α : Type u_1} [SubNegMonoid α] (x : αᵃᵒᵖ) (z : ) :
    unop (z x) = z unop x
    @[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 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) :
    @[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.instGroup {α : Type u_1} [Group α] :
      Equations