Ordered groups #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file develops the basics of ordered groups.
Implementation details #
Unfortunately, the number of '
appended to lemmas in this file
may differ between the multiplicative and the additive version of a lemma.
The reason is that we did not want to change existing names in the library.
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), ordered_add_comm_group.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), ordered_add_comm_group.nsmul n.succ x = x + ordered_add_comm_group.nsmul n x) . "try_refl_tac"
- neg : α → α
- sub : α → α → α
- sub_eq_add_neg : (∀ (a b : α), a - b = a + -b) . "try_refl_tac"
- zsmul : ℤ → α → α
- zsmul_zero' : (∀ (a : α), ordered_add_comm_group.zsmul 0 a = 0) . "try_refl_tac"
- zsmul_succ' : (∀ (n : ℕ) (a : α), ordered_add_comm_group.zsmul (int.of_nat n.succ) a = a + ordered_add_comm_group.zsmul (int.of_nat n) a) . "try_refl_tac"
- zsmul_neg' : (∀ (n : ℕ) (a : α), ordered_add_comm_group.zsmul -[1+ n] a = -ordered_add_comm_group.zsmul ↑(n.succ) a) . "try_refl_tac"
- add_left_neg : ∀ (a : α), -a + a = 0
- add_comm : ∀ (a b : α), a + b = b + a
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
An ordered additive commutative group is an additive commutative group with a partial order in which addition is strictly monotone.
Instances of this typeclass
- add_subgroup_class.to_ordered_add_comm_group
- linear_ordered_add_comm_group.to_ordered_add_comm_group
- ordered_ring.to_ordered_add_comm_group
- strict_ordered_ring.to_ordered_add_comm_group
- star_ordered_ring.to_ordered_add_comm_group
- normed_ordered_add_group.to_ordered_add_comm_group
- normed_lattice_add_comm_group_to_ordered_add_comm_group
- add_units.ordered_add_comm_group
- order_dual.ordered_add_comm_group
- pi.lex.ordered_add_comm_group
- rat.ordered_add_comm_group
- add_subgroup.to_ordered_add_comm_group
- submodule.to_ordered_add_comm_group
- pi.ordered_add_comm_group
- real.ordered_add_comm_group
- additive.ordered_add_comm_group
- measure_theory.Lp.ordered_add_comm_group
- filter.germ.ordered_add_comm_group
- game.ordered_add_comm_group
- surreal.ordered_add_comm_group
- prod.ordered_add_comm_group
- counterexample.int_with_epsilon.ordered_add_comm_group
Instances of other typeclasses for ordered_add_comm_group
- ordered_add_comm_group.has_sizeof_inst
- mul : α → α → α
- mul_assoc : ∀ (a b c : α), a * b * c = a * (b * c)
- one : α
- one_mul : ∀ (a : α), 1 * a = a
- mul_one : ∀ (a : α), a * 1 = a
- npow : ℕ → α → α
- npow_zero' : (∀ (x : α), ordered_comm_group.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), ordered_comm_group.npow n.succ x = x * ordered_comm_group.npow n x) . "try_refl_tac"
- inv : α → α
- div : α → α → α
- div_eq_mul_inv : (∀ (a b : α), a / b = a * b⁻¹) . "try_refl_tac"
- zpow : ℤ → α → α
- zpow_zero' : (∀ (a : α), ordered_comm_group.zpow 0 a = 1) . "try_refl_tac"
- zpow_succ' : (∀ (n : ℕ) (a : α), ordered_comm_group.zpow (int.of_nat n.succ) a = a * ordered_comm_group.zpow (int.of_nat n) a) . "try_refl_tac"
- zpow_neg' : (∀ (n : ℕ) (a : α), ordered_comm_group.zpow -[1+ n] a = (ordered_comm_group.zpow ↑(n.succ) a)⁻¹) . "try_refl_tac"
- mul_left_inv : ∀ (a : α), a⁻¹ * a = 1
- mul_comm : ∀ (a b : α), a * b = b * a
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
An ordered commutative group is an commutative group with a partial order in which multiplication is strictly monotone.
Instances of this typeclass
- subgroup_class.to_ordered_comm_group
- linear_ordered_comm_group.to_ordered_comm_group
- normed_ordered_group.to_ordered_comm_group
- units.ordered_comm_group
- order_dual.ordered_comm_group
- pi.lex.ordered_comm_group
- subgroup.to_ordered_comm_group
- pi.ordered_comm_group
- multiplicative.ordered_comm_group
- filter.germ.ordered_comm_group
- prod.ordered_comm_group
Instances of other typeclasses for ordered_comm_group
- ordered_comm_group.has_sizeof_inst
Equations
- ordered_add_comm_group.to_ordered_cancel_add_comm_monoid = {add := ordered_add_comm_group.add _inst_1, add_assoc := _, zero := ordered_add_comm_group.zero _inst_1, zero_add := _, add_zero := _, nsmul := ordered_add_comm_group.nsmul _inst_1, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_add_comm_group.le _inst_1, lt := ordered_add_comm_group.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _}
Equations
- ordered_comm_group.to_ordered_cancel_comm_monoid = {mul := ordered_comm_group.mul _inst_1, mul_assoc := _, one := ordered_comm_group.one _inst_1, one_mul := _, mul_one := _, npow := ordered_comm_group.npow _inst_1, npow_zero' := _, npow_succ' := _, mul_comm := _, le := ordered_comm_group.le _inst_1, lt := ordered_comm_group.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _}
A choice-free shortcut instance.
A choice-free shortcut instance.
A choice-free shortcut instance.
A choice-free shortcut instance.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses left
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Uses right
co(ntra)variant.
Alias of the forward direction of neg_le_neg_iff
.
Alias of the reverse direction of sub_le_self_iff
.
Alias of the forward direction of lt_inv'
.
Alias of the forward direction of lt_inv'
.
Alias of the forward direction of inv_lt'
.
Alias of the forward direction of inv_lt'
.
Alias of the reverse direction of sub_lt_self_iff
.
Alias of left.neg_le_self
.
Alias of left.neg_lt_self
.
Alias of the forward direction of left.inv_le_one_iff
.
Alias of the forward direction of left.inv_le_one_iff
.
Alias of the forward direction of left.one_le_inv_iff
.
Alias of the forward direction of left.one_le_inv_iff
.
Alias of the forward direction of inv_lt_inv_iff
.
Alias of the forward direction of inv_lt_inv_iff
.
Alias of the forward direction of left.inv_lt_one_iff
.
Alias of the forward direction of left.inv_lt_one_iff
.
Alias of left.inv_lt_one_iff
.
Alias of left.inv_lt_one_iff
.
Alias of left.inv_lt_one_iff
.
Alias of left.inv_lt_one_iff
.
Alias of the forward direction of left.one_lt_inv_iff
.
Alias of the forward direction of left.one_lt_inv_iff
.
Alias of the reverse direction of left.one_lt_inv_iff
.
Alias of the reverse direction of left.one_lt_inv_iff
.
Alias of the forward direction of le_inv_mul_iff_mul_le
.
Alias of the forward direction of le_inv_mul_iff_mul_le
.
Alias of the reverse direction of le_inv_mul_iff_mul_le
.
Alias of the reverse direction of le_inv_mul_iff_mul_le
.
Alias of the reverse direction of inv_mul_le_iff_le_mul
.
Alias of the forward direction of lt_inv_mul_iff_mul_lt
.
Alias of the forward direction of lt_inv_mul_iff_mul_lt
.
Alias of the reverse direction of lt_inv_mul_iff_mul_lt
.
Alias of the reverse direction of lt_inv_mul_iff_mul_lt
.
Alias of the reverse direction of inv_mul_lt_iff_lt_mul
.
Alias of the forward direction of inv_mul_lt_iff_lt_mul
.
Alias of the forward direction of inv_mul_lt_iff_lt_mul
.
Alias of the reverse direction of inv_mul_lt_iff_lt_mul
.
Alias of lt_mul_of_inv_mul_lt
.
Alias of lt_mul_of_inv_mul_lt
.
Alias of left.inv_le_one_iff
.
Alias of left.inv_le_one_iff
.
Alias of left.one_le_inv_iff
.
Alias of left.one_le_inv_iff
.
Alias of left.one_lt_inv_iff
.
Alias of left.one_lt_inv_iff
.
Alias of mul_lt_mul_left'
.
Alias of mul_lt_mul_left'
.
Alias of le_of_mul_le_mul_left'
.
Alias of le_of_mul_le_mul_left'
.
Alias of lt_of_mul_lt_mul_left'
.
Alias of lt_of_mul_lt_mul_left'
.
Alias of the forward direction of sub_nonneg
.
Alias of the reverse direction of sub_nonneg
.
Alias of the reverse direction of sub_nonpos
.
Alias of the forward direction of sub_nonpos
.
Alias of the forward direction of le_sub_iff_add_le
.
Alias of the reverse direction of le_sub_iff_add_le
.
Alias of the forward direction of le_sub_iff_add_le'
.
Alias of the reverse direction of le_sub_iff_add_le'
.
Alias of the forward direction of sub_le_iff_le_add'
.
Alias of the reverse direction of sub_le_iff_le_add'
.
Alias of the forward direction of sub_pos
.
Alias of the reverse direction of sub_pos
.
Alias of the forward direction of sub_neg
.
Alias of the reverse direction of sub_neg
.
Alias of sub_neg
.
Alias of the forward direction of lt_sub_iff_add_lt
.
Alias of the reverse direction of lt_sub_iff_add_lt
.
Alias of the forward direction of sub_lt_iff_lt_add
.
Alias of the reverse direction of sub_lt_iff_lt_add
.
Alias of the forward direction of lt_sub_iff_add_lt'
.
Alias of the reverse direction of lt_sub_iff_add_lt'
.
Alias of the reverse direction of sub_lt_iff_lt_add'
.
Alias of the forward direction of sub_lt_iff_lt_add'
.
Linearly ordered commutative groups #
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), linear_ordered_add_comm_group.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), linear_ordered_add_comm_group.nsmul n.succ x = x + linear_ordered_add_comm_group.nsmul n x) . "try_refl_tac"
- neg : α → α
- sub : α → α → α
- sub_eq_add_neg : (∀ (a b : α), a - b = a + -b) . "try_refl_tac"
- zsmul : ℤ → α → α
- zsmul_zero' : (∀ (a : α), linear_ordered_add_comm_group.zsmul 0 a = 0) . "try_refl_tac"
- zsmul_succ' : (∀ (n : ℕ) (a : α), linear_ordered_add_comm_group.zsmul (int.of_nat n.succ) a = a + linear_ordered_add_comm_group.zsmul (int.of_nat n) a) . "try_refl_tac"
- zsmul_neg' : (∀ (n : ℕ) (a : α), linear_ordered_add_comm_group.zsmul -[1+ n] a = -linear_ordered_add_comm_group.zsmul ↑(n.succ) a) . "try_refl_tac"
- add_left_neg : ∀ (a : α), -a + a = 0
- add_comm : ∀ (a b : α), a + b = b + a
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- le_total : ∀ (a b : α), a ≤ b ∨ b ≤ a
- decidable_le : decidable_rel has_le.le
- decidable_eq : decidable_eq α
- decidable_lt : decidable_rel has_lt.lt
- max : α → α → α
- max_def : linear_ordered_add_comm_group.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_add_comm_group.min = min_default . "reflexivity"
A linearly ordered additive commutative group is an additive commutative group with a linear order in which addition is monotone.
Instances of this typeclass
- add_subgroup_class.to_linear_ordered_add_comm_group
- linear_ordered_ring.to_linear_ordered_add_comm_group
- normed_linear_ordered_add_group.to_linear_ordered_add_comm_group
- order_dual.linear_ordered_add_comm_group
- int.linear_ordered_add_comm_group
- rat.linear_ordered_add_comm_group
- add_subgroup.to_linear_ordered_add_comm_group
- submodule.to_linear_ordered_add_comm_group
- real.linear_ordered_add_comm_group
- additive.linear_ordered_add_comm_group
- filter.germ.linear_ordered_add_comm_group
- surreal.linear_ordered_add_comm_group
Instances of other typeclasses for linear_ordered_add_comm_group
- linear_ordered_add_comm_group.has_sizeof_inst
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- le_total : ∀ (a b : α), a ≤ b ∨ b ≤ a
- decidable_le : decidable_rel has_le.le
- decidable_eq : decidable_eq α
- decidable_lt : decidable_rel has_lt.lt
- max : α → α → α
- max_def : linear_ordered_add_comm_group_with_top.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_add_comm_group_with_top.min = min_default . "reflexivity"
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), linear_ordered_add_comm_group_with_top.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), linear_ordered_add_comm_group_with_top.nsmul n.succ x = x + linear_ordered_add_comm_group_with_top.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- top : α
- le_top : ∀ (x : α), x ≤ ⊤
- top_add' : ∀ (x : α), ⊤ + x = ⊤
- neg : α → α
- sub : α → α → α
- sub_eq_add_neg : (∀ (a b : α), a - b = a + -b) . "try_refl_tac"
- zsmul : ℤ → α → α
- zsmul_zero' : (∀ (a : α), linear_ordered_add_comm_group_with_top.zsmul 0 a = 0) . "try_refl_tac"
- zsmul_succ' : (∀ (n : ℕ) (a : α), linear_ordered_add_comm_group_with_top.zsmul (int.of_nat n.succ) a = a + linear_ordered_add_comm_group_with_top.zsmul (int.of_nat n) a) . "try_refl_tac"
- zsmul_neg' : (∀ (n : ℕ) (a : α), linear_ordered_add_comm_group_with_top.zsmul -[1+ n] a = -linear_ordered_add_comm_group_with_top.zsmul ↑(n.succ) a) . "try_refl_tac"
- exists_pair_ne : ∃ (x y : α), x ≠ y
- neg_top : -⊤ = ⊤
- add_neg_cancel : ∀ (a : α), a ≠ ⊤ → a + -a = 0
A linearly ordered commutative monoid with an additively absorbing ⊤
element.
Instances should include number systems with an infinite element adjoined.`
Instances of this typeclass
Instances of other typeclasses for linear_ordered_add_comm_group_with_top
- linear_ordered_add_comm_group_with_top.has_sizeof_inst
- mul : α → α → α
- mul_assoc : ∀ (a b c : α), a * b * c = a * (b * c)
- one : α
- one_mul : ∀ (a : α), 1 * a = a
- mul_one : ∀ (a : α), a * 1 = a
- npow : ℕ → α → α
- npow_zero' : (∀ (x : α), linear_ordered_comm_group.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), linear_ordered_comm_group.npow n.succ x = x * linear_ordered_comm_group.npow n x) . "try_refl_tac"
- inv : α → α
- div : α → α → α
- div_eq_mul_inv : (∀ (a b : α), a / b = a * b⁻¹) . "try_refl_tac"
- zpow : ℤ → α → α
- zpow_zero' : (∀ (a : α), linear_ordered_comm_group.zpow 0 a = 1) . "try_refl_tac"
- zpow_succ' : (∀ (n : ℕ) (a : α), linear_ordered_comm_group.zpow (int.of_nat n.succ) a = a * linear_ordered_comm_group.zpow (int.of_nat n) a) . "try_refl_tac"
- zpow_neg' : (∀ (n : ℕ) (a : α), linear_ordered_comm_group.zpow -[1+ n] a = (linear_ordered_comm_group.zpow ↑(n.succ) a)⁻¹) . "try_refl_tac"
- mul_left_inv : ∀ (a : α), a⁻¹ * a = 1
- mul_comm : ∀ (a b : α), a * b = b * a
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- le_total : ∀ (a b : α), a ≤ b ∨ b ≤ a
- decidable_le : decidable_rel has_le.le
- decidable_eq : decidable_eq α
- decidable_lt : decidable_rel has_lt.lt
- max : α → α → α
- max_def : linear_ordered_comm_group.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_comm_group.min = min_default . "reflexivity"
A linearly ordered commutative group is a commutative group with a linear order in which multiplication is monotone.
Instances of this typeclass
Instances of other typeclasses for linear_ordered_comm_group
- linear_ordered_comm_group.has_sizeof_inst
Equations
- linear_ordered_add_comm_group.to_linear_ordered_cancel_add_comm_monoid = {add := linear_ordered_add_comm_group.add _inst_1, add_assoc := _, zero := linear_ordered_add_comm_group.zero _inst_1, zero_add := _, add_zero := _, nsmul := linear_ordered_add_comm_group.nsmul _inst_1, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := linear_ordered_add_comm_group.le _inst_1, lt := linear_ordered_add_comm_group.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _, le_total := _, decidable_le := linear_ordered_add_comm_group.decidable_le _inst_1, decidable_eq := linear_ordered_add_comm_group.decidable_eq _inst_1, decidable_lt := linear_ordered_add_comm_group.decidable_lt _inst_1, max := linear_ordered_add_comm_group.max _inst_1, max_def := _, min := linear_ordered_add_comm_group.min _inst_1, min_def := _}
Equations
- linear_ordered_comm_group.to_linear_ordered_cancel_comm_monoid = {mul := linear_ordered_comm_group.mul _inst_1, mul_assoc := _, one := linear_ordered_comm_group.one _inst_1, one_mul := _, mul_one := _, npow := linear_ordered_comm_group.npow _inst_1, npow_zero' := _, npow_succ' := _, mul_comm := _, le := linear_ordered_comm_group.le _inst_1, lt := linear_ordered_comm_group.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _, le_total := _, decidable_le := linear_ordered_comm_group.decidable_le _inst_1, decidable_eq := linear_ordered_comm_group.decidable_eq _inst_1, decidable_lt := linear_ordered_comm_group.decidable_lt _inst_1, max := linear_ordered_comm_group.max _inst_1, max_def := _, min := linear_ordered_comm_group.min _inst_1, min_def := _}
- nonneg : α → Prop
- pos : α → Prop
- pos_iff : (∀ (a : α), self.pos a ↔ self.nonneg a ∧ ¬self.nonneg (-a)) . "order_laws_tac"
- zero_nonneg : self.nonneg 0
- add_nonneg : ∀ {a b : α}, self.nonneg a → self.nonneg b → self.nonneg (a + b)
- nonneg_antisymm : ∀ {a : α}, self.nonneg a → self.nonneg (-a) → a = 0
A collection of elements in an add_comm_group
designated as "non-negative".
This is useful for constructing an ordered_add_commm_group
by choosing a positive cone in an exisiting add_comm_group
.
Instances for add_comm_group.positive_cone
- add_comm_group.positive_cone.has_sizeof_inst
Forget that a total_positive_cone
is total.
- nonneg : α → Prop
- pos : α → Prop
- pos_iff : (∀ (a : α), self.pos a ↔ self.nonneg a ∧ ¬self.nonneg (-a)) . "order_laws_tac"
- zero_nonneg : self.nonneg 0
- add_nonneg : ∀ {a b : α}, self.nonneg a → self.nonneg b → self.nonneg (a + b)
- nonneg_antisymm : ∀ {a : α}, self.nonneg a → self.nonneg (-a) → a = 0
- nonneg_decidable : decidable_pred self.nonneg
- nonneg_total : ∀ (a : α), self.nonneg a ∨ self.nonneg (-a)
A positive cone in an add_comm_group
induces a linear order if
for every a
, either a
or -a
is non-negative.
Instances for add_comm_group.total_positive_cone
- add_comm_group.total_positive_cone.has_sizeof_inst
Construct an ordered_add_comm_group
by
designating a positive cone in an existing add_comm_group
.
Equations
- ordered_add_comm_group.mk_of_positive_cone C = {add := add_comm_group.add _inst_1, add_assoc := _, zero := add_comm_group.zero _inst_1, zero_add := _, add_zero := _, nsmul := add_comm_group.nsmul _inst_1, nsmul_zero' := _, nsmul_succ' := _, neg := add_comm_group.neg _inst_1, sub := add_comm_group.sub _inst_1, sub_eq_add_neg := _, zsmul := add_comm_group.zsmul _inst_1, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, le := λ (a b : α), C.nonneg (b - a), lt := λ (a b : α), C.pos (b - a), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Construct a linear_ordered_add_comm_group
by
designating a positive cone in an existing add_comm_group
such that for every a
, either a
or -a
is non-negative.
Equations
- linear_ordered_add_comm_group.mk_of_positive_cone C = {add := ordered_add_comm_group.add (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), add_assoc := _, zero := ordered_add_comm_group.zero (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), zero_add := _, add_zero := _, nsmul := ordered_add_comm_group.nsmul (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), nsmul_zero' := _, nsmul_succ' := _, neg := ordered_add_comm_group.neg (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), sub := ordered_add_comm_group.sub (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), sub_eq_add_neg := _, zsmul := ordered_add_comm_group.zsmul (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, le := ordered_add_comm_group.le (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), lt := ordered_add_comm_group.lt (ordered_add_comm_group.mk_of_positive_cone C.to_positive_cone), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_total := _, decidable_le := λ (a b : α), C.nonneg_decidable (b - a), decidable_eq := linear_order.decidable_eq._default ordered_add_comm_group.le ordered_add_comm_group.lt _ _ _ _ (λ (a b : α), C.nonneg_decidable (b - a)), decidable_lt := linear_order.decidable_lt._default ordered_add_comm_group.le ordered_add_comm_group.lt _ _ _ _ (λ (a b : α), C.nonneg_decidable (b - a)), max := linear_order.max._default ordered_add_comm_group.le ordered_add_comm_group.lt _ _ _ _ (λ (a b : α), C.nonneg_decidable (b - a)), max_def := _, min := linear_order.min._default ordered_add_comm_group.le ordered_add_comm_group.lt _ _ _ _ (λ (a b : α), C.nonneg_decidable (b - a)), min_def := _}