Canonically ordered semifields #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
@[class]
- 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 : α), canonically_linear_ordered_semifield.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), canonically_linear_ordered_semifield.nsmul n.succ x = x + canonically_linear_ordered_semifield.nsmul n x) . "try_refl_tac"
- 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
- bot : α
- bot_le : ∀ (x : α), ⊥ ≤ x
- exists_add_of_le : ∀ {a b : α}, a ≤ b → (∃ (c : α), b = a + c)
- le_self_add : ∀ (a b : α), a ≤ a + b
- mul : α → α → α
- left_distrib : ∀ (a b c : α), a * (b + c) = a * b + a * c
- right_distrib : ∀ (a b c : α), (a + b) * c = a * c + b * c
- zero_mul : ∀ (a : α), 0 * a = 0
- mul_zero : ∀ (a : α), a * 0 = 0
- mul_assoc : ∀ (a b c : α), a * b * c = a * (b * c)
- one : α
- one_mul : ∀ (a : α), 1 * a = a
- mul_one : ∀ (a : α), a * 1 = a
- nat_cast : ℕ → α
- nat_cast_zero : canonically_linear_ordered_semifield.nat_cast 0 = 0 . "control_laws_tac"
- nat_cast_succ : (∀ (n : ℕ), canonically_linear_ordered_semifield.nat_cast (n + 1) = canonically_linear_ordered_semifield.nat_cast n + 1) . "control_laws_tac"
- npow : ℕ → α → α
- npow_zero' : (∀ (x : α), canonically_linear_ordered_semifield.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), canonically_linear_ordered_semifield.npow n.succ x = x * canonically_linear_ordered_semifield.npow n x) . "try_refl_tac"
- mul_comm : ∀ (a b : α), a * b = b * a
- eq_zero_or_eq_zero_of_mul_eq_zero : ∀ {a b : α}, a * b = 0 → a = 0 ∨ b = 0
- 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
- mul_lt_mul_of_pos_left : ∀ (a b c : α), a < b → 0 < c → c * a < c * b
- mul_lt_mul_of_pos_right : ∀ (a b c : α), a < b → 0 < c → a * c < b * c
- 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 : canonically_linear_ordered_semifield.max = max_default . "reflexivity"
- min : α → α → α
- min_def : canonically_linear_ordered_semifield.min = min_default . "reflexivity"
- inv : α → α
- div : α → α → α
- div_eq_mul_inv : (∀ (a b : α), a / b = a * b⁻¹) . "try_refl_tac"
- zpow : ℤ → α → α
- zpow_zero' : (∀ (a : α), canonically_linear_ordered_semifield.zpow 0 a = 1) . "try_refl_tac"
- zpow_succ' : (∀ (n : ℕ) (a : α), canonically_linear_ordered_semifield.zpow (int.of_nat n.succ) a = a * canonically_linear_ordered_semifield.zpow (int.of_nat n) a) . "try_refl_tac"
- zpow_neg' : (∀ (n : ℕ) (a : α), canonically_linear_ordered_semifield.zpow -[1+ n] a = (canonically_linear_ordered_semifield.zpow ↑(n.succ) a)⁻¹) . "try_refl_tac"
- inv_zero : 0⁻¹ = 0
- mul_inv_cancel : ∀ (a : α), a ≠ 0 → a * a⁻¹ = 1
A canonically linear ordered field is a linear ordered field in which a ≤ b
iff there exists
c
with b = a + c
.
Instances of this typeclass
Instances of other typeclasses for canonically_linear_ordered_semifield
- canonically_linear_ordered_semifield.has_sizeof_inst
@[instance]
def
canonically_linear_ordered_semifield.to_linear_ordered_semifield
(α : Type u_2)
[self : canonically_linear_ordered_semifield α] :
@[instance]
@[protected, instance]
def
canonically_linear_ordered_semifield.to_linear_ordered_comm_group_with_zero
{α : Type u_1}
[canonically_linear_ordered_semifield α] :
Equations
- canonically_linear_ordered_semifield.to_linear_ordered_comm_group_with_zero = {le := canonically_linear_ordered_semifield.le _inst_1, lt := canonically_linear_ordered_semifield.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := canonically_linear_ordered_semifield.decidable_le _inst_1, decidable_eq := canonically_linear_ordered_semifield.decidable_eq _inst_1, decidable_lt := canonically_linear_ordered_semifield.decidable_lt _inst_1, max := canonically_linear_ordered_semifield.max _inst_1, max_def := _, min := canonically_linear_ordered_semifield.min _inst_1, min_def := _, mul := canonically_linear_ordered_semifield.mul _inst_1, mul_assoc := _, one := canonically_linear_ordered_semifield.one _inst_1, one_mul := _, mul_one := _, npow := canonically_linear_ordered_semifield.npow _inst_1, npow_zero' := _, npow_succ' := _, mul_comm := _, mul_le_mul_left := _, zero := canonically_linear_ordered_semifield.zero _inst_1, zero_mul := _, mul_zero := _, zero_le_one := _, inv := canonically_linear_ordered_semifield.inv _inst_1, div := canonically_linear_ordered_semifield.div _inst_1, div_eq_mul_inv := _, zpow := canonically_linear_ordered_semifield.zpow _inst_1, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, inv_zero := _, mul_inv_cancel := _}
@[protected, instance]
def
canonically_linear_ordered_semifield.to_canonically_linear_ordered_add_monoid
{α : Type u_1}
[canonically_linear_ordered_semifield α] :
Equations
- canonically_linear_ordered_semifield.to_canonically_linear_ordered_add_monoid = {add := canonically_linear_ordered_semifield.add _inst_1, add_assoc := _, zero := canonically_linear_ordered_semifield.zero _inst_1, zero_add := _, add_zero := _, nsmul := canonically_linear_ordered_semifield.nsmul _inst_1, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := canonically_linear_ordered_semifield.le _inst_1, lt := canonically_linear_ordered_semifield.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, bot := canonically_linear_ordered_semifield.bot _inst_1, bot_le := _, exists_add_of_le := _, le_self_add := _, le_total := _, decidable_le := canonically_linear_ordered_semifield.decidable_le _inst_1, decidable_eq := canonically_linear_ordered_semifield.decidable_eq _inst_1, decidable_lt := canonically_linear_ordered_semifield.decidable_lt _inst_1, max := canonically_linear_ordered_semifield.max _inst_1, max_def := _, min := canonically_linear_ordered_semifield.min _inst_1, min_def := _}