Group structures on the multiplicative and additive opposites #
Additive structures on αᵐᵒᵖ
#
Equations
- MulOpposite.instNatCast = { natCast := fun (n : ℕ) => MulOpposite.op ↑n }
Equations
- AddOpposite.instNatCast = { natCast := fun (n : ℕ) => AddOpposite.op ↑n }
Equations
- MulOpposite.instIntCast = { intCast := fun (n : ℤ) => MulOpposite.op ↑n }
Equations
- AddOpposite.instIntCast = { intCast := fun (n : ℤ) => AddOpposite.op ↑n }
Equations
Equations
Equations
- MulOpposite.instAddMonoidWithOne = { toNatCast := MulOpposite.instNatCast, toAddMonoid := MulOpposite.instAddMonoid, toOne := MulOpposite.instOne, natCast_zero := ⋯, natCast_succ := ⋯ }
Equations
- MulOpposite.instAddCommMonoidWithOne = { toAddMonoidWithOne := MulOpposite.instAddMonoidWithOne, add_comm := ⋯ }
Equations
Equations
- MulOpposite.instAddGroup = Function.Injective.addGroup MulOpposite.unop ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Multiplicative structures on αᵐᵒᵖ
#
We also generate additive structures on αᵃᵒᵖ
using to_additive
Equations
- MulOpposite.instSemigroup = { toMul := MulOpposite.instMul, mul_assoc := ⋯ }
Equations
- AddOpposite.instAddSemigroup = { toAdd := AddOpposite.instAdd, add_assoc := ⋯ }
Equations
- MulOpposite.instLeftCancelSemigroup = { toSemigroup := MulOpposite.instSemigroup, mul_left_cancel := ⋯ }
Equations
- AddOpposite.instAddLeftCancelSemigroup = { toAddSemigroup := AddOpposite.instAddSemigroup, add_left_cancel := ⋯ }
Equations
- MulOpposite.instRightCancelSemigroup = { toSemigroup := MulOpposite.instSemigroup, mul_right_cancel := ⋯ }
Equations
- AddOpposite.instAddRightCancelSemigroup = { toAddSemigroup := AddOpposite.instAddSemigroup, add_right_cancel := ⋯ }
Equations
- MulOpposite.instCommSemigroup = { toSemigroup := MulOpposite.instSemigroup, mul_comm := ⋯ }
Equations
- AddOpposite.instAddCommSemigroup = { toAddSemigroup := AddOpposite.instAddSemigroup, add_comm := ⋯ }
Equations
- MulOpposite.instMulOneClass = { toOne := MulOpposite.instOne, toMul := MulOpposite.instMul, one_mul := ⋯, mul_one := ⋯ }
Equations
- AddOpposite.instAddZeroClass = { toZero := AddOpposite.instZero, toAdd := AddOpposite.instAdd, zero_add := ⋯, add_zero := ⋯ }
Equations
- MulOpposite.instLeftCancelMonoid = { toMonoid := MulOpposite.instMonoid, mul_left_cancel := ⋯ }
Equations
- AddOpposite.instAddLeftCancelMonoid = { toAddMonoid := AddOpposite.instAddMonoid, add_left_cancel := ⋯ }
Equations
- MulOpposite.instRightCancelMonoid = { toMonoid := MulOpposite.instMonoid, mul_right_cancel := ⋯ }
Equations
- AddOpposite.instAddRightCancelMonoid = { toAddMonoid := AddOpposite.instAddMonoid, add_right_cancel := ⋯ }
Equations
- MulOpposite.instCancelMonoid = { toLeftCancelMonoid := MulOpposite.instLeftCancelMonoid, mul_right_cancel := ⋯ }
Equations
- AddOpposite.instAddCancelMonoid = { toAddLeftCancelMonoid := AddOpposite.instAddLeftCancelMonoid, add_right_cancel := ⋯ }
Equations
- MulOpposite.instCommMonoid = { toMonoid := MulOpposite.instMonoid, mul_comm := ⋯ }
Equations
- AddOpposite.instAddCommMonoid = { toAddMonoid := AddOpposite.instAddMonoid, add_comm := ⋯ }
Equations
- MulOpposite.instCancelCommMonoid = { toCommMonoid := MulOpposite.instCommMonoid, mul_left_cancel := ⋯ }
Equations
- AddOpposite.instAddCancelCommMonoid = { toAddCommMonoid := AddOpposite.instAddCommMonoid, add_left_cancel := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- MulOpposite.instDivisionMonoid = { toDivInvMonoid := MulOpposite.instDivInvMonoid, inv_inv := ⋯, mul_inv_rev := ⋯, inv_eq_of_mul := ⋯ }
Equations
- AddOpposite.instSubtractionMonoid = { toSubNegMonoid := AddOpposite.instSubNegMonoid, neg_neg := ⋯, neg_add_rev := ⋯, neg_eq_of_add := ⋯ }
Equations
- MulOpposite.instDivisionCommMonoid = { toDivisionMonoid := MulOpposite.instDivisionMonoid, mul_comm := ⋯ }
Equations
- AddOpposite.instSubtractionCommMonoid = { toSubtractionMonoid := AddOpposite.instSubtractionMonoid, add_comm := ⋯ }
Equations
- MulOpposite.instGroup = { toDivInvMonoid := MulOpposite.instDivInvMonoid, inv_mul_cancel := ⋯ }
Equations
- AddOpposite.instAddGroup = { toSubNegMonoid := AddOpposite.instSubNegMonoid, neg_add_cancel := ⋯ }
Equations
- MulOpposite.instCommGroup = { toGroup := MulOpposite.instGroup, mul_comm := ⋯ }
Equations
- AddOpposite.instAddCommGroup = { toAddGroup := AddOpposite.instAddGroup, add_comm := ⋯ }
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
SemiconjBy.op
{α : Type u_1}
[Mul α]
{a x y : α}
(h : SemiconjBy a x y)
:
SemiconjBy (MulOpposite.op a) (MulOpposite.op y) (MulOpposite.op x)
theorem
AddSemiconjBy.op
{α : Type u_1}
[Add α]
{a x y : α}
(h : AddSemiconjBy a x y)
:
AddSemiconjBy (AddOpposite.op a) (AddOpposite.op y) (AddOpposite.op x)
theorem
SemiconjBy.unop
{α : Type u_1}
[Mul α]
{a x y : αᵐᵒᵖ}
(h : SemiconjBy a x y)
:
SemiconjBy (MulOpposite.unop a) (MulOpposite.unop y) (MulOpposite.unop x)
theorem
Commute.op
{α : Type u_1}
[Mul α]
{x y : α}
(h : Commute x y)
:
Commute (MulOpposite.op x) (MulOpposite.op y)
theorem
AddCommute.op
{α : Type u_1}
[Add α]
{x y : α}
(h : AddCommute x y)
:
AddCommute (AddOpposite.op x) (AddOpposite.op y)
theorem
Commute.unop
{α : Type u_1}
[Mul α]
{x y : αᵐᵒᵖ}
(h : Commute x y)
:
Commute (MulOpposite.unop x) (MulOpposite.unop y)
@[simp]
@[simp]
Multiplicative structures on αᵃᵒᵖ
#
Equations
- AddOpposite.pow = { pow := fun (a : αᵃᵒᵖ) (b : β) => AddOpposite.op (AddOpposite.unop a ^ b) }
Equations
Equations
Equations
Equations
- AddOpposite.instGroup = Function.Injective.group AddOpposite.unop ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.