Documentation

Mathlib.Algebra.Order.Group.Synonym

Group structure on the order type synonyms #

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

OrderDual #

instance instOneOrderDual {α : Type u_1} [h : One α] :
Equations
instance instZeroOrderDual {α : Type u_1} [h : Zero α] :
Equations
instance instMulOrderDual {α : Type u_1} [h : Mul α] :
Equations
instance instAddOrderDual {α : Type u_1} [h : Add α] :
Equations
instance instInvOrderDual {α : Type u_1} [h : Inv α] :
Equations
instance instNegOrderDual {α : Type u_1} [h : Neg α] :
Equations
instance instDivOrderDual {α : Type u_1} [h : Div α] :
Equations
instance instSubOrderDual {α : Type u_1} [h : Sub α] :
Equations
instance OrderDual.instPow {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow αᵒᵈ β
Equations
instance OrderDual.instSMul {β : Type u_2} {α : Type u_1} [h : SMul β α] :
Equations
instance OrderDual.instVAdd {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
Equations
instance OrderDual.instPow' {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow α βᵒᵈ
Equations
instance OrderDual.instVAdd' {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
Equations
instance OrderDual.instSMul' {β : Type u_2} {α : Type u_1} [h : SMul β α] :
Equations
instance instMonoidOrderDual {α : Type u_1} [h : Monoid α] :
Equations
instance OrderDual.instGroup {α : Type u_1} [h : Group α] :
Equations
@[simp]
theorem toDual_one {α : Type u_1} [One α] :
OrderDual.toDual 1 = 1
@[simp]
theorem toDual_zero {α : Type u_1} [Zero α] :
OrderDual.toDual 0 = 0
@[simp]
theorem ofDual_one {α : Type u_1} [One α] :
OrderDual.ofDual 1 = 1
@[simp]
theorem ofDual_zero {α : Type u_1} [Zero α] :
OrderDual.ofDual 0 = 0
@[simp]
theorem toDual_mul {α : Type u_1} [Mul α] (a b : α) :
OrderDual.toDual (a * b) = OrderDual.toDual a * OrderDual.toDual b
@[simp]
theorem toDual_add {α : Type u_1} [Add α] (a b : α) :
OrderDual.toDual (a + b) = OrderDual.toDual a + OrderDual.toDual b
@[simp]
theorem ofDual_mul {α : Type u_1} [Mul α] (a b : αᵒᵈ) :
OrderDual.ofDual (a * b) = OrderDual.ofDual a * OrderDual.ofDual b
@[simp]
theorem ofDual_add {α : Type u_1} [Add α] (a b : αᵒᵈ) :
OrderDual.ofDual (a + b) = OrderDual.ofDual a + OrderDual.ofDual b
@[simp]
theorem toDual_inv {α : Type u_1} [Inv α] (a : α) :
OrderDual.toDual a⁻¹ = (OrderDual.toDual a)⁻¹
@[simp]
theorem toDual_neg {α : Type u_1} [Neg α] (a : α) :
OrderDual.toDual (-a) = -OrderDual.toDual a
@[simp]
theorem ofDual_inv {α : Type u_1} [Inv α] (a : αᵒᵈ) :
OrderDual.ofDual a⁻¹ = (OrderDual.ofDual a)⁻¹
@[simp]
theorem ofDual_neg {α : Type u_1} [Neg α] (a : αᵒᵈ) :
OrderDual.ofDual (-a) = -OrderDual.ofDual a
@[simp]
theorem toDual_div {α : Type u_1} [Div α] (a b : α) :
OrderDual.toDual (a / b) = OrderDual.toDual a / OrderDual.toDual b
@[simp]
theorem toDual_sub {α : Type u_1} [Sub α] (a b : α) :
OrderDual.toDual (a - b) = OrderDual.toDual a - OrderDual.toDual b
@[simp]
theorem ofDual_div {α : Type u_1} [Div α] (a b : αᵒᵈ) :
OrderDual.ofDual (a / b) = OrderDual.ofDual a / OrderDual.ofDual b
@[simp]
theorem ofDual_sub {α : Type u_1} [Sub α] (a b : αᵒᵈ) :
OrderDual.ofDual (a - b) = OrderDual.ofDual a - OrderDual.ofDual b
@[simp]
theorem toDual_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
OrderDual.toDual (a ^ b) = OrderDual.toDual a ^ 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 ofDual_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : αᵒᵈ) (b : β) :
OrderDual.ofDual (a ^ b) = OrderDual.ofDual 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 pow_toDual {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
a ^ OrderDual.toDual b = a ^ b
@[simp]
theorem toDual_vadd' {β : Type u_2} {α : Type u_1} [VAdd β α] (b : β) (a : α) :
OrderDual.toDual b +ᵥ a = b +ᵥ a
@[simp]
theorem toDual_smul' {β : Type u_2} {α : Type u_1} [SMul β α] (b : β) (a : α) :
OrderDual.toDual b a = b a
@[simp]
theorem pow_ofDual {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : βᵒᵈ) :
a ^ OrderDual.ofDual b = a ^ b
@[simp]
theorem ofDual_vadd' {β : Type u_2} {α : Type u_1} [VAdd β α] (b : βᵒᵈ) (a : α) :
OrderDual.ofDual b +ᵥ a = b +ᵥ a
@[simp]
theorem ofDual_smul' {β : Type u_2} {α : Type u_1} [SMul β α] (b : βᵒᵈ) (a : α) :
OrderDual.ofDual b a = b a

Lexicographical order #

instance instOneLex {α : Type u_1} [h : One α] :
One (Lex α)
Equations
instance instZeroLex {α : Type u_1} [h : Zero α] :
Zero (Lex α)
Equations
instance instMulLex {α : Type u_1} [h : Mul α] :
Mul (Lex α)
Equations
instance instAddLex {α : Type u_1} [h : Add α] :
Add (Lex α)
Equations
instance instInvLex {α : Type u_1} [h : Inv α] :
Inv (Lex α)
Equations
instance instNegLex {α : Type u_1} [h : Neg α] :
Neg (Lex α)
Equations
instance instDivLex {α : Type u_1} [h : Div α] :
Div (Lex α)
Equations
instance instSubLex {α : Type u_1} [h : Sub α] :
Sub (Lex α)
Equations
instance Lex.instPow {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow (Lex α) β
Equations
instance Lex.instSMul {β : Type u_2} {α : Type u_1} [h : SMul β α] :
SMul β (Lex α)
Equations
instance Lex.instVAdd {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
VAdd β (Lex α)
Equations
instance Lex.instPow' {α : Type u_1} {β : Type u_2} [h : Pow α β] :
Pow α (Lex β)
Equations
instance Lex.instSMul' {β : Type u_2} {α : Type u_1} [h : SMul β α] :
SMul (Lex β) α
Equations
instance Lex.instVAdd' {β : Type u_2} {α : Type u_1} [h : VAdd β α] :
VAdd (Lex β) α
Equations
instance instSemigroupLex {α : Type u_1} [h : Semigroup α] :
Equations
instance instAddSemigroupLex {α : Type u_1} [h : AddSemigroup α] :
Equations
instance instMulOneClassLex {α : Type u_1} [h : MulOneClass α] :
Equations
instance instAddZeroClassLex {α : Type u_1} [h : AddZeroClass α] :
Equations
instance instMonoidLex {α : Type u_1} [h : Monoid α] :
Monoid (Lex α)
Equations
instance instAddMonoidLex {α : Type u_1} [h : AddMonoid α] :
Equations
instance instCommMonoidLex {α : Type u_1} [h : CommMonoid α] :
Equations
instance instCancelMonoidLex {α : Type u_1} [h : CancelMonoid α] :
Equations
instance instDivInvMonoidLex {α : Type u_1} [h : DivInvMonoid α] :
Equations
instance instGroupLex {α : Type u_1} [h : Group α] :
Group (Lex α)
Equations
instance instAddGroupLex {α : Type u_1} [h : AddGroup α] :
Equations
instance instCommGroupLex {α : Type u_1} [h : CommGroup α] :
Equations
instance instAddCommGroupLex {α : Type u_1} [h : AddCommGroup α] :
Equations
@[simp]
theorem toLex_one {α : Type u_1} [One α] :
toLex 1 = 1
@[simp]
theorem toLex_zero {α : Type u_1} [Zero α] :
toLex 0 = 0
@[simp]
theorem ofLex_one {α : Type u_1} [One α] :
ofLex 1 = 1
@[simp]
theorem ofLex_zero {α : Type u_1} [Zero α] :
ofLex 0 = 0
@[simp]
theorem toLex_mul {α : Type u_1} [Mul α] (a b : α) :
toLex (a * b) = toLex a * toLex b
@[simp]
theorem toLex_add {α : Type u_1} [Add α] (a b : α) :
toLex (a + b) = toLex a + toLex b
@[simp]
theorem ofLex_mul {α : Type u_1} [Mul α] (a b : Lex α) :
ofLex (a * b) = ofLex a * ofLex b
@[simp]
theorem ofLex_add {α : Type u_1} [Add α] (a b : Lex α) :
ofLex (a + b) = ofLex a + ofLex b
@[simp]
theorem toLex_inv {α : Type u_1} [Inv α] (a : α) :
toLex a⁻¹ = (toLex a)⁻¹
@[simp]
theorem toLex_neg {α : Type u_1} [Neg α] (a : α) :
toLex (-a) = -toLex a
@[simp]
theorem ofLex_inv {α : Type u_1} [Inv α] (a : Lex α) :
ofLex a⁻¹ = (ofLex a)⁻¹
@[simp]
theorem ofLex_neg {α : Type u_1} [Neg α] (a : Lex α) :
ofLex (-a) = -ofLex a
@[simp]
theorem toLex_div {α : Type u_1} [Div α] (a b : α) :
toLex (a / b) = toLex a / toLex b
@[simp]
theorem toLex_sub {α : Type u_1} [Sub α] (a b : α) :
toLex (a - b) = toLex a - toLex b
@[simp]
theorem ofLex_div {α : Type u_1} [Div α] (a b : Lex α) :
ofLex (a / b) = ofLex a / ofLex b
@[simp]
theorem ofLex_sub {α : Type u_1} [Sub α] (a b : Lex α) :
ofLex (a - b) = ofLex a - ofLex b
@[simp]
theorem toLex_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
toLex (a ^ b) = toLex a ^ 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 ofLex_pow {α : Type u_1} {β : Type u_2} [Pow α β] (a : Lex α) (b : β) :
ofLex (a ^ b) = ofLex 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 pow_toLex {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : β) :
a ^ toLex b = 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_ofLex {α : Type u_1} {β : Type u_2} [Pow α β] (a : α) (b : Lex β) :
a ^ ofLex 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