Documentation

Mathlib.Algebra.Group.OrderSynonym

Group structure on the order type synonyms #

Transfer algebraic instances from α to αᵒᵈ and Lex α.

OrderDual #

instance instZeroOrderDual {α : Type u_1} [h : Zero α] :
Equations
  • instZeroOrderDual = h
instance instOneOrderDual {α : Type u_1} [h : One α] :
Equations
  • instOneOrderDual = h
instance instAddOrderDual {α : Type u_1} [h : Add α] :
Equations
  • instAddOrderDual = h
instance instMulOrderDual {α : Type u_1} [h : Mul α] :
Equations
  • instMulOrderDual = h
instance instNegOrderDual {α : Type u_1} [h : Neg α] :
Equations
  • instNegOrderDual = h
instance instInvOrderDual {α : Type u_1} [h : Inv α] :
Equations
  • instInvOrderDual = h
instance instSubOrderDual {α : Type u_1} [h : Sub α] :
Equations
  • instSubOrderDual = h
instance instDivOrderDual {α : Type u_1} [h : Div α] :
Equations
  • instDivOrderDual = h
instance OrderDual.instSMul {β : Type u_2} {α : Type u_1} [h : SMul β α] :
Equations
  • OrderDual.instSMul = h
instance OrderDual.instVAdd {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
Equations
  • OrderDual.instVAdd = h
instance OrderDual.instPow {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow αᵒᵈ β
Equations
  • OrderDual.instPow = h
instance OrderDual.instSMul' {β : Type u_2} {α : Type u_1} [h : SMul β α] :
Equations
  • OrderDual.instSMul' = h
instance OrderDual.instVAdd' {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
Equations
  • OrderDual.instVAdd' = h
instance OrderDual.instPow' {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow α βᵒᵈ
Equations
  • OrderDual.instPow' = h
Equations
  • instAddSemigroupOrderDual = h
instance instSemigroupOrderDual {α : Type u_1} [h : Semigroup α] :
Equations
  • instSemigroupOrderDual = h
Equations
  • instAddCommSemigroupOrderDual = h
Equations
  • instCommSemigroupOrderDual = h
Equations
  • = h
Equations
  • = h
Equations
  • instAddLeftCancelSemigroupOrderDual = h
Equations
  • instLeftCancelSemigroupOrderDual = h
Equations
  • instAddRightCancelSemigroupOrderDual = h
Equations
  • instRightCancelSemigroupOrderDual = h
Equations
  • instAddZeroClassOrderDual = h
Equations
  • instMulOneClassOrderDual = h
instance instAddMonoidOrderDual {α : Type u_1} [h : AddMonoid α] :
Equations
  • instAddMonoidOrderDual = h
instance instMonoidOrderDual {α : Type u_1} [h : Monoid α] :
Equations
  • instMonoidOrderDual = h
Equations
  • OrderDual.instAddCommMonoid = h
instance OrderDual.instCommMonoid {α : Type u_1} [h : CommMonoid α] :
Equations
  • OrderDual.instCommMonoid = h
Equations
  • instAddLeftCancelMonoidOrderDual = h
Equations
  • instLeftCancelMonoidOrderDual = h
Equations
  • instAddRightCancelMonoidOrderDual = h
Equations
  • instRightCancelMonoidOrderDual = h
Equations
  • instAddCancelMonoidOrderDual = h
Equations
  • instCancelMonoidOrderDual = h
Equations
  • OrderDual.instAddCancelCommMonoid = h
Equations
  • OrderDual.instCancelCommMonoid = h
Equations
  • instInvolutiveNegOrderDual = h
Equations
  • instInvolutiveInvOrderDual = h
Equations
  • instSubNegAddMonoidOrderDual = h
Equations
  • instDivInvMonoidOrderDual = h
Equations
  • OrderDual.subtractionMonoid = h
Equations
  • instDivisionMonoidOrderDual = h
Equations
  • OrderDual.subtractionCommMonoid = h
Equations
  • instDivisionCommMonoidOrderDual = h
instance OrderDual.instAddGroup {α : Type u_1} [h : AddGroup α] :
Equations
  • OrderDual.instAddGroup = h
instance OrderDual.instGroup {α : Type u_1} [h : Group α] :
Equations
  • OrderDual.instGroup = h
Equations
  • instAddCommGroupOrderDual = h
instance instCommGroupOrderDual {α : Type u_1} [h : CommGroup α] :
Equations
  • instCommGroupOrderDual = h
@[simp]
theorem toDual_zero {α : Type u_1} [Zero α] :
OrderDual.toDual 0 = 0
@[simp]
theorem toDual_one {α : Type u_1} [One α] :
OrderDual.toDual 1 = 1
@[simp]
theorem ofDual_zero {α : Type u_1} [Zero α] :
OrderDual.ofDual 0 = 0
@[simp]
theorem ofDual_one {α : Type u_1} [One α] :
OrderDual.ofDual 1 = 1
@[simp]
theorem toDual_add {α : Type u_1} [Add α] (a : α) (b : α) :
OrderDual.toDual (a + b) = OrderDual.toDual a + OrderDual.toDual b
@[simp]
theorem toDual_mul {α : Type u_1} [Mul α] (a : α) (b : α) :
OrderDual.toDual (a * b) = OrderDual.toDual a * OrderDual.toDual b
@[simp]
theorem ofDual_add {α : Type u_1} [Add α] (a : αᵒᵈ) (b : αᵒᵈ) :
OrderDual.ofDual (a + b) = OrderDual.ofDual a + OrderDual.ofDual b
@[simp]
theorem ofDual_mul {α : Type u_1} [Mul α] (a : αᵒᵈ) (b : αᵒᵈ) :
OrderDual.ofDual (a * b) = OrderDual.ofDual a * OrderDual.ofDual b
@[simp]
theorem toDual_neg {α : Type u_1} [Neg α] (a : α) :
OrderDual.toDual (-a) = -OrderDual.toDual a
@[simp]
theorem toDual_inv {α : Type u_1} [Inv α] (a : α) :
OrderDual.toDual a⁻¹ = (OrderDual.toDual a)⁻¹
@[simp]
theorem ofDual_neg {α : Type u_1} [Neg α] (a : αᵒᵈ) :
OrderDual.ofDual (-a) = -OrderDual.ofDual a
@[simp]
theorem ofDual_inv {α : Type u_1} [Inv α] (a : αᵒᵈ) :
OrderDual.ofDual a⁻¹ = (OrderDual.ofDual a)⁻¹
@[simp]
theorem toDual_sub {α : Type u_1} [Sub α] (a : α) (b : α) :
OrderDual.toDual (a - b) = OrderDual.toDual a - OrderDual.toDual b
@[simp]
theorem toDual_div {α : Type u_1} [Div α] (a : α) (b : α) :
OrderDual.toDual (a / b) = OrderDual.toDual a / OrderDual.toDual b
@[simp]
theorem ofDual_sub {α : Type u_1} [Sub α] (a : αᵒᵈ) (b : αᵒᵈ) :
OrderDual.ofDual (a - b) = OrderDual.ofDual a - OrderDual.ofDual b
@[simp]
theorem ofDual_div {α : Type u_1} [Div α] (a : αᵒᵈ) (b : αᵒᵈ) :
OrderDual.ofDual (a / b) = OrderDual.ofDual a / OrderDual.ofDual b
@[simp]
theorem toDual_smul {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : α) :
OrderDual.toDual (b a) = b OrderDual.toDual a
@[simp]
theorem toDual_vadd {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : α) :
OrderDual.toDual (b +ᵥ a) = b +ᵥ OrderDual.toDual a
@[simp]
theorem toDual_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
OrderDual.toDual (a ^ b) = OrderDual.toDual a ^ b
@[simp]
theorem ofDual_vadd {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : αᵒᵈ) :
OrderDual.ofDual (b +ᵥ a) = b +ᵥ OrderDual.ofDual a
@[simp]
theorem ofDual_smul {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : αᵒᵈ) :
OrderDual.ofDual (b a) = b OrderDual.ofDual a
@[simp]
theorem ofDual_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : αᵒᵈ) (b : β) :
OrderDual.ofDual (a ^ b) = OrderDual.ofDual a ^ b
@[simp]
theorem toDual_smul' {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : α) :
OrderDual.toDual b a = b a
@[simp]
theorem toDual_vadd' {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : α) :
OrderDual.toDual b +ᵥ a = b +ᵥ a
@[simp]
theorem pow_toDual {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
a ^ OrderDual.toDual b = a ^ b
@[simp]
theorem ofDual_smul' {β : Type u_2} {α : Type u_1} [SMul β α] (b : βᵒᵈ) (a : α) :
OrderDual.ofDual b a = b a
@[simp]
theorem ofDual_vadd' {β : Type u_2} {α : Type u_1} [VAdd β α] (b : βᵒᵈ) (a : α) :
OrderDual.ofDual b +ᵥ a = b +ᵥ a
@[simp]
theorem pow_ofDual {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : βᵒᵈ) :
a ^ OrderDual.ofDual b = a ^ b

Lexicographical order #

instance instZeroLex {α : Type u_1} [h : Zero α] :
Zero (Lex α)
Equations
  • instZeroLex = h
instance instOneLex {α : Type u_1} [h : One α] :
One (Lex α)
Equations
  • instOneLex = h
instance instAddLex {α : Type u_1} [h : Add α] :
Add (Lex α)
Equations
  • instAddLex = h
instance instMulLex {α : Type u_1} [h : Mul α] :
Mul (Lex α)
Equations
  • instMulLex = h
instance instNegLex {α : Type u_1} [h : Neg α] :
Neg (Lex α)
Equations
  • instNegLex = h
instance instInvLex {α : Type u_1} [h : Inv α] :
Inv (Lex α)
Equations
  • instInvLex = h
instance instSubLex {α : Type u_1} [h : Sub α] :
Sub (Lex α)
Equations
  • instSubLex = h
instance instDivLex {α : Type u_1} [h : Div α] :
Div (Lex α)
Equations
  • instDivLex = h
instance Lex.instSMul {β : Type u_2} {α : Type u_1} [h : SMul β α] :
SMul β (Lex α)
Equations
  • Lex.instSMul = h
instance Lex.instVAdd {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
VAdd β (Lex α)
Equations
  • Lex.instVAdd = h
instance Lex.instPow {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow (Lex α) β
Equations
  • Lex.instPow = h
instance Lex.instSMul' {β : Type u_2} {α : Type u_1} [h : SMul β α] :
SMul (Lex β) α
Equations
  • Lex.instSMul' = h
instance Lex.instVAdd' {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
VAdd (Lex β) α
Equations
  • Lex.instVAdd' = h
instance Lex.instPow' {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow α (Lex β)
Equations
  • Lex.instPow' = h
instance instAddSemigroupLex {α : Type u_1} [h : AddSemigroup α] :
Equations
  • instAddSemigroupLex = h
instance instSemigroupLex {α : Type u_1} [h : Semigroup α] :
Equations
  • instSemigroupLex = h
Equations
  • instAddCommSemigroupLex = h
instance instCommSemigroupLex {α : Type u_1} [h : CommSemigroup α] :
Equations
  • instCommSemigroupLex = h
Equations
  • instAddLeftCancelSemigroupLex = h
Equations
  • instLeftCancelSemigroupLex = h
Equations
  • instAddRightCancelSemigroupLex = h
Equations
  • instRightCancelSemigroupLex = h
instance instAddZeroClassLex {α : Type u_1} [h : AddZeroClass α] :
Equations
  • instAddZeroClassLex = h
instance instMulOneClassLex {α : Type u_1} [h : MulOneClass α] :
Equations
  • instMulOneClassLex = h
instance instAddMonoidLex {α : Type u_1} [h : AddMonoid α] :
Equations
  • instAddMonoidLex = h
instance instMonoidLex {α : Type u_1} [h : Monoid α] :
Monoid (Lex α)
Equations
  • instMonoidLex = h
instance instAddCommMonoidLex {α : Type u_1} [h : AddCommMonoid α] :
Equations
  • instAddCommMonoidLex = h
instance instCommMonoidLex {α : Type u_1} [h : CommMonoid α] :
Equations
  • instCommMonoidLex = h
Equations
  • instAddLeftCancelMonoidLex = h
Equations
  • instLeftCancelMonoidLex = h
Equations
  • instAddRightCancelMonoidLex = h
Equations
  • instRightCancelMonoidLex = h
Equations
  • instAddCancelMonoidLex = h
instance instCancelMonoidLex {α : Type u_1} [h : CancelMonoid α] :
Equations
  • instCancelMonoidLex = h
Equations
  • instAddCancelCommMonoidLex = h
Equations
  • instCancelCommMonoidLex = h
instance instInvolutiveNegLex {α : Type u_1} [h : InvolutiveNeg α] :
Equations
  • instInvolutiveNegLex = h
instance instInvolutiveInvLex {α : Type u_1} [h : InvolutiveInv α] :
Equations
  • instInvolutiveInvLex = h
instance instSubNegAddMonoidLex {α : Type u_1} [h : SubNegMonoid α] :
Equations
  • instSubNegAddMonoidLex = h
instance instDivInvMonoidLex {α : Type u_1} [h : DivInvMonoid α] :
Equations
  • instDivInvMonoidLex = h
instance instDivisionMonoidLex {α : Type u_1} [h : DivisionMonoid α] :
Equations
  • instDivisionMonoidLex = h
Equations
  • instDivisionCommMonoidLex = h
instance instAddGroupLex {α : Type u_1} [h : AddGroup α] :
Equations
  • instAddGroupLex = h
instance instGroupLex {α : Type u_1} [h : Group α] :
Group (Lex α)
Equations
  • instGroupLex = h
instance instAddCommGroupLex {α : Type u_1} [h : AddCommGroup α] :
Equations
  • instAddCommGroupLex = h
instance instCommGroupLex {α : Type u_1} [h : CommGroup α] :
Equations
  • instCommGroupLex = h
@[simp]
theorem toLex_zero {α : Type u_1} [Zero α] :
toLex 0 = 0
@[simp]
theorem toLex_one {α : Type u_1} [One α] :
toLex 1 = 1
@[simp]
theorem ofLex_zero {α : Type u_1} [Zero α] :
ofLex 0 = 0
@[simp]
theorem ofLex_one {α : Type u_1} [One α] :
ofLex 1 = 1
@[simp]
theorem toLex_add {α : Type u_1} [Add α] (a : α) (b : α) :
toLex (a + b) = toLex a + toLex b
@[simp]
theorem toLex_mul {α : Type u_1} [Mul α] (a : α) (b : α) :
toLex (a * b) = toLex a * toLex b
@[simp]
theorem ofLex_add {α : Type u_1} [Add α] (a : Lex α) (b : Lex α) :
ofLex (a + b) = ofLex a + ofLex b
@[simp]
theorem ofLex_mul {α : Type u_1} [Mul α] (a : Lex α) (b : Lex α) :
ofLex (a * b) = ofLex a * ofLex b
@[simp]
theorem toLex_neg {α : Type u_1} [Neg α] (a : α) :
toLex (-a) = -toLex a
@[simp]
theorem toLex_inv {α : Type u_1} [Inv α] (a : α) :
toLex a⁻¹ = (toLex a)⁻¹
@[simp]
theorem ofLex_neg {α : Type u_1} [Neg α] (a : Lex α) :
ofLex (-a) = -ofLex a
@[simp]
theorem ofLex_inv {α : Type u_1} [Inv α] (a : Lex α) :
ofLex a⁻¹ = (ofLex a)⁻¹
@[simp]
theorem toLex_sub {α : Type u_1} [Sub α] (a : α) (b : α) :
toLex (a - b) = toLex a - toLex b
@[simp]
theorem toLex_div {α : Type u_1} [Div α] (a : α) (b : α) :
toLex (a / b) = toLex a / toLex b
@[simp]
theorem ofLex_sub {α : Type u_1} [Sub α] (a : Lex α) (b : Lex α) :
ofLex (a - b) = ofLex a - ofLex b
@[simp]
theorem ofLex_div {α : Type u_1} [Div α] (a : Lex α) (b : Lex α) :
ofLex (a / b) = ofLex a / ofLex b
@[simp]
theorem toLex_smul {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : α) :
toLex (b a) = b toLex a
@[simp]
theorem toLex_vadd {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : α) :
toLex (b +ᵥ a) = b +ᵥ toLex a
@[simp]
theorem toLex_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
toLex (a ^ b) = toLex a ^ b
@[simp]
theorem ofLex_vadd {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : Lex α) :
ofLex (b +ᵥ a) = b +ᵥ ofLex a
@[simp]
theorem ofLex_smul {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : Lex α) :
ofLex (b a) = b ofLex a
@[simp]
theorem ofLex_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : Lex α) (b : β) :
ofLex (a ^ b) = ofLex a ^ b
@[simp]
theorem toLex_vadd' {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : α) :
toLex b +ᵥ a = b +ᵥ a
@[simp]
theorem toLex_smul' {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : α) :
toLex b a = b a
@[simp]
theorem pow_toLex {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
a ^ toLex b = a ^ b
@[simp]
theorem ofLex_vadd' {β : Type u_2} {α : Type u_1} [VAdd β α] (b : Lex β) (a : α) :
ofLex b +ᵥ a = b +ᵥ a
@[simp]
theorem ofLex_smul' {β : Type u_2} {α : Type u_1} [SMul β α] (b : Lex β) (a : α) :
ofLex b a = b a
@[simp]
theorem pow_ofLex {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : Lex β) :
a ^ ofLex b = a ^ b