Canonically ordered semifields #
A canonically linear ordered field is a linear ordered field in which a ≤ b
iff there exists
c
with b = a + c
.
- add : α → α → α
- zero : α
- nsmul : ℕ → α → α
- nsmul_zero : ∀ (x : α), AddMonoid.nsmul 0 x = 0
- nsmul_succ : ∀ (n : ℕ) (x : α), AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- bot : α
- mul : α → α → α
- one : α
- natCast : ℕ → α
- natCast_zero : NatCast.natCast 0 = 0
- natCast_succ : ∀ (n : ℕ), NatCast.natCast (n + 1) = NatCast.natCast n + 1
- npow : ℕ → α → α
- npow_zero : ∀ (x : α), CanonicallyOrderedCommSemiring.npow 0 x = 1
- npow_succ : ∀ (n : ℕ) (x : α), CanonicallyOrderedCommSemiring.npow (n + 1) x = CanonicallyOrderedCommSemiring.npow n x * x
- exists_pair_ne : ∃ (x : α), ∃ (y : α), x ≠ y
- zero_le_one : 0 ≤ 1
In a strict ordered semiring,
0 ≤ 1
. Left multiplication by a positive element is strictly monotone.
Right multiplication by a positive element is strictly monotone.
- min : α → α → α
- max : α → α → α
- compare : α → α → Ordering
A linear order is total.
- decidableLE : DecidableRel fun (x1 x2 : α) => x1 ≤ x2
In a linearly ordered type, we assume the order relations are all decidable.
- decidableEq : DecidableEq α
In a linearly ordered type, we assume the order relations are all decidable.
- decidableLT : DecidableRel fun (x1 x2 : α) => x1 < x2
In a linearly ordered type, we assume the order relations are all decidable.
The minimum function is equivalent to the one you get from
minOfLe
.The minimum function is equivalent to the one you get from
maxOfLe
.- compare_eq_compareOfLessAndEq : ∀ (a b : α), compare a b = compareOfLessAndEq a b
Comparison via
compare
is equal to the canonical comparison given decidable<
and=
. - inv : α → α
- div : α → α → α
a / b := a * b⁻¹
- zpow : ℤ → α → α
The power operation:
a ^ n = a * ··· * a
;a ^ (-n) = a⁻¹ * ··· a⁻¹
(n
times) - zpow_zero' : ∀ (a : α), CanonicallyLinearOrderedSemifield.zpow 0 a = 1
a ^ 0 = 1
- zpow_succ' : ∀ (n : ℕ) (a : α), CanonicallyLinearOrderedSemifield.zpow (Int.ofNat n.succ) a = CanonicallyLinearOrderedSemifield.zpow (Int.ofNat n) a * a
a ^ (n + 1) = a ^ n * a
- zpow_neg' : ∀ (n : ℕ) (a : α), CanonicallyLinearOrderedSemifield.zpow (Int.negSucc n) a = (CanonicallyLinearOrderedSemifield.zpow (↑n.succ) a)⁻¹
a ^ -(n + 1) = (a ^ (n + 1))⁻¹
The inverse of
0
in a group with zero is0
.Every nonzero element of a group with zero is invertible.
- nnratCast : ℚ≥0 → α
However
NNRat.cast
is defined, it must be propositionally equal toa / b
.Do not use this lemma directly. Use
NNRat.cast_def
instead.- nnqsmul : ℚ≥0 → α → α
Scalar multiplication by a nonnegative rational number.
Unless there is a risk of a
Module ℚ≥0 _
instance diamond, writennqsmul := _
. This will setnnqsmul
to(NNRat.cast · * ·)
thanks to unification in the default proof ofnnqsmul_def
.Do not use directly. Instead use the
•
notation. - nnqsmul_def : ∀ (q : ℚ≥0) (a : α), CanonicallyLinearOrderedSemifield.nnqsmul q a = ↑q * a
However
qsmul
is defined, it must be propositionally equal to multiplication byRat.cast
.Do not use this lemma directly. Use
NNRat.smul_def
instead.
Instances
Equations
- CanonicallyLinearOrderedSemifield.toLinearOrderedCommGroupWithZero = LinearOrderedCommGroupWithZero.mk ⋯ CanonicallyLinearOrderedSemifield.zpow ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- One or more equations did not get rendered due to their size.