Linear ordered (semi)fields #
A linear ordered (semi)field is a (semi)field equipped with a linear order such that
- addition respects the order:
a ≤ b → c + a ≤ c + b
; - multiplication of positives is positive:
0 < a → 0 < b → 0 < a * b
; 0 < 1
.
Main Definitions #
LinearOrderedSemifield
: Typeclass for linear order semifields.LinearOrderedField
: Typeclass for linear ordered fields.
A linear ordered semifield is a field with a linear order respecting the operations.
- add : α → α → α
- zero : α
- nsmul_zero : ∀ (x : α), AddMonoid.nsmul 0 x = 0
- nsmul_succ : ∀ (n : ℕ) (x : α), AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
- mul : α → α → α
- one : α
- natCast_zero : NatCast.natCast 0 = 0
- natCast_succ : ∀ (n : ℕ), NatCast.natCast (n + 1) = NatCast.natCast n + 1
- npow_zero : ∀ (x : α), Semiring.npow 0 x = 1
- npow_succ : ∀ (n : ℕ) (x : α), Semiring.npow (n + 1) x = Semiring.npow n x * x
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- le_of_add_le_add_left : ∀ (a b c : α), a + b ≤ a + c → b ≤ c
- exists_pair_ne : ∃ (x : α), ∃ (y : α), x ≠ y
- zero_le_one : 0 ≤ 1
- min : α → α → α
- max : α → α → α
- decidableLE : DecidableRel fun (x1 x2 : α) => x1 ≤ x2
- decidableLT : DecidableRel fun (x1 x2 : α) => x1 < x2
- compare_eq_compareOfLessAndEq : ∀ (a b : α), compare a b = compareOfLessAndEq a b
- inv : α → α
- div : α → α → α
- div_eq_mul_inv : ∀ (a b : α), a / b = a * b⁻¹
- zpow_zero' : ∀ (a : α), LinearOrderedSemifield.zpow 0 a = 1
- zpow_succ' : ∀ (n : ℕ) (a : α), LinearOrderedSemifield.zpow (↑n.succ) a = LinearOrderedSemifield.zpow (↑n) a * a
- zpow_neg' : ∀ (n : ℕ) (a : α), LinearOrderedSemifield.zpow (Int.negSucc n) a = (LinearOrderedSemifield.zpow (↑n.succ) a)⁻¹
- mul_inv_cancel : ∀ (a : α), a ≠ 0 → a * a⁻¹ = 1
- nnratCast_def : ∀ (q : ℚ≥0), ↑q = ↑q.num / ↑q.den
- nnqsmul_def : ∀ (q : ℚ≥0) (a : α), LinearOrderedSemifield.nnqsmul q a = ↑q * a
Instances
A linear ordered field is a field with a linear order respecting the operations.
- add : α → α → α
- zero : α
- nsmul_zero : ∀ (x : α), AddMonoid.nsmul 0 x = 0
- nsmul_succ : ∀ (n : ℕ) (x : α), AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
- mul : α → α → α
- one : α
- natCast_zero : NatCast.natCast 0 = 0
- natCast_succ : ∀ (n : ℕ), NatCast.natCast (n + 1) = NatCast.natCast n + 1
- npow_zero : ∀ (x : α), Semiring.npow 0 x = 1
- npow_succ : ∀ (n : ℕ) (x : α), Semiring.npow (n + 1) x = Semiring.npow n x * x
- neg : α → α
- sub : α → α → α
- sub_eq_add_neg : ∀ (a b : α), a - b = a + -b
- zsmul_zero' : ∀ (a : α), Ring.zsmul 0 a = 0
- zsmul_succ' : ∀ (n : ℕ) (a : α), Ring.zsmul (↑n.succ) a = Ring.zsmul (↑n) a + a
- zsmul_neg' : ∀ (n : ℕ) (a : α), Ring.zsmul (Int.negSucc n) a = -Ring.zsmul (↑n.succ) a
- neg_add_cancel : ∀ (a : α), -a + a = 0
- intCast_ofNat : ∀ (n : ℕ), IntCast.intCast ↑n = ↑n
- intCast_negSucc : ∀ (n : ℕ), IntCast.intCast (Int.negSucc n) = -↑(n + 1)
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- exists_pair_ne : ∃ (x : α), ∃ (y : α), x ≠ y
- zero_le_one : 0 ≤ 1
- min : α → α → α
- max : α → α → α
- decidableLE : DecidableRel fun (x1 x2 : α) => x1 ≤ x2
- decidableLT : DecidableRel fun (x1 x2 : α) => x1 < x2
- compare_eq_compareOfLessAndEq : ∀ (a b : α), compare a b = compareOfLessAndEq a b
- inv : α → α
- div : α → α → α
- div_eq_mul_inv : ∀ (a b : α), a / b = a * b⁻¹
- zpow_zero' : ∀ (a : α), LinearOrderedField.zpow 0 a = 1
- zpow_succ' : ∀ (n : ℕ) (a : α), LinearOrderedField.zpow (↑n.succ) a = LinearOrderedField.zpow (↑n) a * a
- zpow_neg' : ∀ (n : ℕ) (a : α), LinearOrderedField.zpow (Int.negSucc n) a = (LinearOrderedField.zpow (↑n.succ) a)⁻¹
- mul_inv_cancel : ∀ (a : α), a ≠ 0 → a * a⁻¹ = 1
- nnratCast_def : ∀ (q : ℚ≥0), ↑q = ↑q.num / ↑q.den
- nnqsmul_def : ∀ (q : ℚ≥0) (a : α), LinearOrderedField.nnqsmul q a = ↑q * a
- ratCast_def : ∀ (q : ℚ), ↑q = ↑q.num / ↑q.den
- qsmul_def : ∀ (a : ℚ) (x : α), LinearOrderedField.qsmul a x = ↑a * x
Instances
Equations
- LinearOrderedField.toLinearOrderedSemifield = LinearOrderedSemifield.mk ⋯ LinearOrderedField.zpow ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ LinearOrderedField.nnqsmul ⋯
Equality holds when a ≠ 0
. See mul_inv_cancel
.
Equality holds when a ≠ 0
. See inv_mul_cancel
.
Equality holds when a ≠ 0
. See mul_inv_cancel_left
.
Equality holds when a ≠ 0
. See mul_inv_cancel_left
.
Equality holds when a ≠ 0
. See inv_mul_cancel_left
.
Equality holds when a ≠ 0
. See inv_mul_cancel_left
.
Equality holds when b ≠ 0
. See mul_inv_cancel_right
.
Equality holds when b ≠ 0
. See mul_inv_cancel_right
.
Equality holds when b ≠ 0
. See inv_mul_cancel_right
.
Equality holds when b ≠ 0
. See inv_mul_cancel_right
.
Equality holds when c ≠ 0
. See mul_div_mul_left
.
Equality holds when c ≠ 0
. See mul_div_mul_left
.
Equality holds when c ≠ 0
. See mul_div_mul_right
.
Equality holds when c ≠ 0
. See mul_div_mul_right
.