Module docstring
{"# Group structure on the order type synonyms
Transfer algebraic instances from α to αᵒᵈ and Lex α.
","### OrderDual ","### Lexicographical order "}
{"# Group structure on the order type synonyms
Transfer algebraic instances from α to αᵒᵈ and Lex α.
","### OrderDual ","### Lexicographical order "}
instOneOrderDual
instance
[h : One α] : One αᵒᵈ
@[to_additive]
instance [h : One α] : One αᵒᵈ := h
instMulOrderDual
instance
[h : Mul α] : Mul αᵒᵈ
@[to_additive]
instance [h : Mul α] : Mul αᵒᵈ := h
instInvOrderDual
instance
[h : Inv α] : Inv αᵒᵈ
@[to_additive]
instance [h : Inv α] : Inv αᵒᵈ := h
instDivOrderDual
instance
[h : Div α] : Div αᵒᵈ
@[to_additive]
instance [h : Div α] : Div αᵒᵈ := h
OrderDual.instPow
instance
[h : Pow α β] : Pow αᵒᵈ β
@[to_additive (attr := to_additive) (reorder := 1 2) OrderDual.instSMul]
instance OrderDual.instPow [h : Pow α β] : Pow αᵒᵈ β := h
OrderDual.instPow'
instance
[h : Pow α β] : Pow α βᵒᵈ
@[to_additive (attr := to_additive) (reorder := 1 2) OrderDual.instSMul']
instance OrderDual.instPow' [h : Pow α β] : Pow α βᵒᵈ := h
instSemigroupOrderDual
instance
[h : Semigroup α] : Semigroup αᵒᵈ
@[to_additive]
instance [h : Semigroup α] : Semigroup αᵒᵈ := h
instCommSemigroupOrderDual
instance
[h : CommSemigroup α] : CommSemigroup αᵒᵈ
@[to_additive]
instance [h : CommSemigroup α] : CommSemigroup αᵒᵈ := h
instIsLeftCancelMulOrderDual
instance
[Mul α] [h : IsLeftCancelMul α] : IsLeftCancelMul αᵒᵈ
@[to_additive]
instance [Mul α] [h : IsLeftCancelMul α] : IsLeftCancelMul αᵒᵈ := h
instIsRightCancelMulOrderDual
instance
[Mul α] [h : IsRightCancelMul α] : IsRightCancelMul αᵒᵈ
@[to_additive]
instance [Mul α] [h : IsRightCancelMul α] : IsRightCancelMul αᵒᵈ := h
instIsCancelMulOrderDual
instance
[Mul α] [h : IsCancelMul α] : IsCancelMul αᵒᵈ
@[to_additive]
instance [Mul α] [h : IsCancelMul α] : IsCancelMul αᵒᵈ := h
instLeftCancelSemigroupOrderDual
instance
[h : LeftCancelSemigroup α] : LeftCancelSemigroup αᵒᵈ
@[to_additive]
instance [h : LeftCancelSemigroup α] : LeftCancelSemigroup αᵒᵈ := h
instRightCancelSemigroupOrderDual
instance
[h : RightCancelSemigroup α] : RightCancelSemigroup αᵒᵈ
@[to_additive]
instance [h : RightCancelSemigroup α] : RightCancelSemigroup αᵒᵈ := h
instMulOneClassOrderDual
instance
[h : MulOneClass α] : MulOneClass αᵒᵈ
@[to_additive]
instance [h : MulOneClass α] : MulOneClass αᵒᵈ := h
instMonoidOrderDual
instance
[h : Monoid α] : Monoid αᵒᵈ
@[to_additive]
instance [h : Monoid α] : Monoid αᵒᵈ := h
OrderDual.instCommMonoid
instance
[h : CommMonoid α] : CommMonoid αᵒᵈ
@[to_additive]
instance OrderDual.instCommMonoid [h : CommMonoid α] : CommMonoid αᵒᵈ := h
instLeftCancelMonoidOrderDual
instance
[h : LeftCancelMonoid α] : LeftCancelMonoid αᵒᵈ
@[to_additive]
instance [h : LeftCancelMonoid α] : LeftCancelMonoid αᵒᵈ := h
instRightCancelMonoidOrderDual
instance
[h : RightCancelMonoid α] : RightCancelMonoid αᵒᵈ
@[to_additive]
instance [h : RightCancelMonoid α] : RightCancelMonoid αᵒᵈ := h
instCancelMonoidOrderDual
instance
[h : CancelMonoid α] : CancelMonoid αᵒᵈ
@[to_additive]
instance [h : CancelMonoid α] : CancelMonoid αᵒᵈ := h
OrderDual.instCancelCommMonoid
instance
[h : CancelCommMonoid α] : CancelCommMonoid αᵒᵈ
@[to_additive]
instance OrderDual.instCancelCommMonoid [h : CancelCommMonoid α] : CancelCommMonoid αᵒᵈ := h
instInvolutiveInvOrderDual
instance
[h : InvolutiveInv α] : InvolutiveInv αᵒᵈ
@[to_additive]
instance [h : InvolutiveInv α] : InvolutiveInv αᵒᵈ := h
instDivInvMonoidOrderDual
instance
[h : DivInvMonoid α] : DivInvMonoid αᵒᵈ
@[to_additive]
instance [h : DivInvMonoid α] : DivInvMonoid αᵒᵈ := h
instDivisionMonoidOrderDual
instance
[h : DivisionMonoid α] : DivisionMonoid αᵒᵈ
@[to_additive]
instance [h : DivisionMonoid α] : DivisionMonoid αᵒᵈ := h
instDivisionCommMonoidOrderDual
instance
[h : DivisionCommMonoid α] : DivisionCommMonoid αᵒᵈ
@[to_additive OrderDual.subtractionCommMonoid]
instance [h : DivisionCommMonoid α] : DivisionCommMonoid αᵒᵈ := h
OrderDual.instGroup
instance
[h : Group α] : Group αᵒᵈ
@[to_additive]
instance OrderDual.instGroup [h : Group α] : Group αᵒᵈ := h
instCommGroupOrderDual
instance
[h : CommGroup α] : CommGroup αᵒᵈ
@[to_additive]
instance [h : CommGroup α] : CommGroup αᵒᵈ := h
toDual_one
theorem
[One α] : toDual (1 : α) = 1
@[to_additive (attr := simp)]
theorem toDual_one [One α] : toDual (1 : α) = 1 := rfl
ofDual_one
theorem
[One α] : (ofDual 1 : α) = 1
@[to_additive (attr := simp)]
theorem ofDual_one [One α] : (ofDual 1 : α) = 1 := rfl
toDual_mul
theorem
[Mul α] (a b : α) : toDual (a * b) = toDual a * toDual b
@[to_additive (attr := simp)]
theorem toDual_mul [Mul α] (a b : α) : toDual (a * b) = toDual a * toDual b := rfl
ofDual_mul
theorem
[Mul α] (a b : αᵒᵈ) : ofDual (a * b) = ofDual a * ofDual b
@[to_additive (attr := simp)]
theorem ofDual_mul [Mul α] (a b : αᵒᵈ) : ofDual (a * b) = ofDual a * ofDual b := rfl
toDual_inv
theorem
[Inv α] (a : α) : toDual a⁻¹ = (toDual a)⁻¹
@[to_additive (attr := simp)]
theorem toDual_inv [Inv α] (a : α) : toDual a⁻¹ = (toDual a)⁻¹ := rfl
ofDual_inv
theorem
[Inv α] (a : αᵒᵈ) : ofDual a⁻¹ = (ofDual a)⁻¹
@[to_additive (attr := simp)]
theorem ofDual_inv [Inv α] (a : αᵒᵈ) : ofDual a⁻¹ = (ofDual a)⁻¹ := rfl
toDual_div
theorem
[Div α] (a b : α) : toDual (a / b) = toDual a / toDual b
@[to_additive (attr := simp)]
theorem toDual_div [Div α] (a b : α) : toDual (a / b) = toDual a / toDual b := rfl
ofDual_div
theorem
[Div α] (a b : αᵒᵈ) : ofDual (a / b) = ofDual a / ofDual b
@[to_additive (attr := simp)]
theorem ofDual_div [Div α] (a b : αᵒᵈ) : ofDual (a / b) = ofDual a / ofDual b := rfl
toDual_pow
theorem
[Pow α β] (a : α) (b : β) : toDual (a ^ b) = toDual a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) toDual_smul]
theorem toDual_pow [Pow α β] (a : α) (b : β) : toDual (a ^ b) = toDual a ^ b := rfl
ofDual_pow
theorem
[Pow α β] (a : αᵒᵈ) (b : β) : ofDual (a ^ b) = ofDual a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) ofDual_smul]
theorem ofDual_pow [Pow α β] (a : αᵒᵈ) (b : β) : ofDual (a ^ b) = ofDual a ^ b := rfl
pow_toDual
theorem
[Pow α β] (a : α) (b : β) : a ^ toDual b = a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) toDual_smul']
theorem pow_toDual [Pow α β] (a : α) (b : β) : a ^ toDual b = a ^ b := rfl
pow_ofDual
theorem
[Pow α β] (a : α) (b : βᵒᵈ) : a ^ ofDual b = a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) ofDual_smul']
theorem pow_ofDual [Pow α β] (a : α) (b : βᵒᵈ) : a ^ ofDual b = a ^ b := rfl
instOneLex
instance
[h : One α] : One (Lex α)
@[to_additive]
instance [h : One α] : One (Lex α) := h
instMulLex
instance
[h : Mul α] : Mul (Lex α)
@[to_additive]
instance [h : Mul α] : Mul (Lex α) := h
instInvLex
instance
[h : Inv α] : Inv (Lex α)
@[to_additive]
instance [h : Inv α] : Inv (Lex α) := h
instDivLex
instance
[h : Div α] : Div (Lex α)
@[to_additive]
instance [h : Div α] : Div (Lex α) := h
Lex.instPow
instance
[h : Pow α β] : Pow (Lex α) β
@[to_additive (attr := to_additive) (reorder := 1 2) Lex.instSMul]
instance Lex.instPow [h : Pow α β] : Pow (Lex α) β := h
Lex.instPow'
instance
[h : Pow α β] : Pow α (Lex β)
@[to_additive (attr := to_additive) (reorder := 1 2) Lex.instSMul']
instance Lex.instPow' [h : Pow α β] : Pow α (Lex β) := h
instSemigroupLex
instance
[h : Semigroup α] : Semigroup (Lex α)
@[to_additive]
instance [h : Semigroup α] : Semigroup (Lex α) := h
instCommSemigroupLex
instance
[h : CommSemigroup α] : CommSemigroup (Lex α)
@[to_additive]
instance [h : CommSemigroup α] : CommSemigroup (Lex α) := h
instIsLeftCancelMulLex
instance
[Mul α] [IsLeftCancelMul α] : IsLeftCancelMul (Lex α)
@[to_additive]
instance [Mul α] [IsLeftCancelMul α] : IsLeftCancelMul (Lex α) :=
inferInstanceAs <| IsLeftCancelMul α
instIsRightCancelMulLex
instance
[Mul α] [IsRightCancelMul α] : IsRightCancelMul (Lex α)
@[to_additive]
instance [Mul α] [IsRightCancelMul α] : IsRightCancelMul (Lex α) :=
inferInstanceAs <| IsRightCancelMul α
instIsCancelMulLex
instance
[Mul α] [IsCancelMul α] : IsCancelMul (Lex α)
@[to_additive]
instance [Mul α] [IsCancelMul α] : IsCancelMul (Lex α) :=
inferInstanceAs <| IsCancelMul α
instLeftCancelSemigroupLex
instance
[h : LeftCancelSemigroup α] : LeftCancelSemigroup (Lex α)
@[to_additive]
instance [h : LeftCancelSemigroup α] : LeftCancelSemigroup (Lex α) := h
instRightCancelSemigroupLex
instance
[h : RightCancelSemigroup α] : RightCancelSemigroup (Lex α)
@[to_additive]
instance [h : RightCancelSemigroup α] : RightCancelSemigroup (Lex α) := h
instMulOneClassLex
instance
[h : MulOneClass α] : MulOneClass (Lex α)
@[to_additive]
instance [h : MulOneClass α] : MulOneClass (Lex α) := h
instMonoidLex
instance
[h : Monoid α] : Monoid (Lex α)
@[to_additive]
instance [h : Monoid α] : Monoid (Lex α) := h
instCommMonoidLex
instance
[h : CommMonoid α] : CommMonoid (Lex α)
@[to_additive]
instance [h : CommMonoid α] : CommMonoid (Lex α) := h
instLeftCancelMonoidLex
instance
[h : LeftCancelMonoid α] : LeftCancelMonoid (Lex α)
@[to_additive]
instance [h : LeftCancelMonoid α] : LeftCancelMonoid (Lex α) := h
instRightCancelMonoidLex
instance
[h : RightCancelMonoid α] : RightCancelMonoid (Lex α)
@[to_additive]
instance [h : RightCancelMonoid α] : RightCancelMonoid (Lex α) := h
instCancelMonoidLex
instance
[h : CancelMonoid α] : CancelMonoid (Lex α)
@[to_additive]
instance [h : CancelMonoid α] : CancelMonoid (Lex α) := h
instCancelCommMonoidLex
instance
[h : CancelCommMonoid α] : CancelCommMonoid (Lex α)
@[to_additive]
instance [h : CancelCommMonoid α] : CancelCommMonoid (Lex α) := h
instInvolutiveInvLex
instance
[h : InvolutiveInv α] : InvolutiveInv (Lex α)
@[to_additive]
instance [h : InvolutiveInv α] : InvolutiveInv (Lex α) := h
instDivInvMonoidLex
instance
[h : DivInvMonoid α] : DivInvMonoid (Lex α)
@[to_additive]
instance [h : DivInvMonoid α] : DivInvMonoid (Lex α) := h
instDivisionMonoidLex
instance
[h : DivisionMonoid α] : DivisionMonoid (Lex α)
@[to_additive]
instance [h : DivisionMonoid α] : DivisionMonoid (Lex α) := h
instDivisionCommMonoidLex
instance
[h : DivisionCommMonoid α] : DivisionCommMonoid (Lex α)
@[to_additive existing OrderDual.subtractionCommMonoid]
instance [h : DivisionCommMonoid α] : DivisionCommMonoid (Lex α) := h
instGroupLex
instance
[h : Group α] : Group (Lex α)
@[to_additive]
instance [h : Group α] : Group (Lex α) := h
instCommGroupLex
instance
[h : CommGroup α] : CommGroup (Lex α)
@[to_additive]
instance [h : CommGroup α] : CommGroup (Lex α) := h
toLex_one
theorem
[One α] : toLex (1 : α) = 1
@[to_additive (attr := simp)]
theorem toLex_one [One α] : toLex (1 : α) = 1 := rfl
ofLex_one
theorem
[One α] : (ofLex 1 : α) = 1
@[to_additive (attr := simp)]
theorem ofLex_one [One α] : (ofLex 1 : α) = 1 := rfl
toLex_mul
theorem
[Mul α] (a b : α) : toLex (a * b) = toLex a * toLex b
ofLex_mul
theorem
[Mul α] (a b : Lex α) : ofLex (a * b) = ofLex a * ofLex b
toLex_inv
theorem
[Inv α] (a : α) : toLex a⁻¹ = (toLex a)⁻¹
@[to_additive (attr := simp)]
theorem toLex_inv [Inv α] (a : α) : toLex a⁻¹ = (toLex a)⁻¹ := rfl
ofLex_inv
theorem
[Inv α] (a : Lex α) : ofLex a⁻¹ = (ofLex a)⁻¹
@[to_additive (attr := simp)]
theorem ofLex_inv [Inv α] (a : Lex α) : ofLex a⁻¹ = (ofLex a)⁻¹ := rfl
toLex_div
theorem
[Div α] (a b : α) : toLex (a / b) = toLex a / toLex b
ofLex_div
theorem
[Div α] (a b : Lex α) : ofLex (a / b) = ofLex a / ofLex b
toLex_pow
theorem
[Pow α β] (a : α) (b : β) : toLex (a ^ b) = toLex a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) toLex_smul]
theorem toLex_pow [Pow α β] (a : α) (b : β) : toLex (a ^ b) = toLex a ^ b := rfl
ofLex_pow
theorem
[Pow α β] (a : Lex α) (b : β) : ofLex (a ^ b) = ofLex a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) ofLex_smul]
theorem ofLex_pow [Pow α β] (a : Lex α) (b : β) : ofLex (a ^ b) = ofLex a ^ b := rfl
pow_toLex
theorem
[Pow α β] (a : α) (b : β) : a ^ toLex b = a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) toLex_smul']
theorem pow_toLex [Pow α β] (a : α) (b : β) : a ^ toLex b = a ^ b := rfl
pow_ofLex
theorem
[Pow α β] (a : α) (b : Lex β) : a ^ ofLex b = a ^ b
@[to_additive (attr := simp, to_additive) (reorder := 1 2, 4 5) ofLex_smul']
theorem pow_ofLex [Pow α β] (a : α) (b : Lex β) : a ^ ofLex b = a ^ b := rfl