Canonically ordered rings and semirings. #
@[deprecated "Use `[OrderedCommSemiring α] [CanonicallyOrderedAdd α] [NoZeroDivisors α]` instead." (since := "2025-01-13")]
structure
CanonicallyOrderedCommSemiring
(α : Type u_1)
extends CanonicallyOrderedAddCommMonoid α, CommSemiring α :
Type u_1
A canonically ordered commutative semiring is an ordered, commutative semiring in which a ≤ b
iff there exists c
with b = a + c
. This is satisfied by the natural numbers, for example, but
not the integers or other ordered groups.
- add : α → α → α
- zero : α
- bot : α
- mul : α → α → α
- one : α
- natCast_zero : NatCast.natCast 0 = 0
No zero divisors.
Instances For
@[instance 10]
instance
CanonicallyOrderedAdd.toZeroLEOneClass
{α : Type u}
[AddZeroClass α]
[One α]
[LE α]
[CanonicallyOrderedAdd α]
:
theorem
Odd.pos
{α : Type u}
[Semiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Nontrivial α]
{a : α}
:
@[instance 100]
instance
CanonicallyOrderedAdd.toMulLeftMono
{α : Type u}
[NonUnitalNonAssocSemiring α]
[LE α]
[CanonicallyOrderedAdd α]
:
@[reducible, inline]
abbrev
CanonicallyOrderedAdd.toOrderedCommMonoid
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
:
Construct an OrderedCommMonoid
from a canonically ordered CommSemiring
.
Instances For
@[reducible, inline]
abbrev
CanonicallyOrderedAdd.toOrderedCommSemiring
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
:
Construct an OrderedCommSemiring
from a canonically ordered CommSemiring
.
Instances For
@[simp]
theorem
CanonicallyOrderedAdd.mul_pos
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[NoZeroDivisors α]
{a b : α}
:
theorem
CanonicallyOrderedAdd.pow_pos
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[NoZeroDivisors α]
{a : α}
(ha : 0 < a)
(n : ℕ)
:
theorem
CanonicallyOrderedAdd.mul_lt_mul_of_lt_of_lt
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[PosMulStrictMono α]
{a b c d : α}
(hab : a < b)
(hcd : c < d)
:
theorem
AddLECancellable.mul_tsub
{α : Type u}
[NonUnitalNonAssocSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
{a b c : α}
(h : AddLECancellable (a * c))
:
theorem
AddLECancellable.tsub_mul
{α : Type u}
[NonUnitalNonAssocSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[MulRightMono α]
{a b c : α}
(h : AddLECancellable (b * c))
:
theorem
mul_tsub
{α : Type u}
[NonUnitalNonAssocSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[AddLeftReflectLE α]
(a b c : α)
:
theorem
tsub_mul
{α : Type u}
[NonUnitalNonAssocSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[AddLeftReflectLE α]
[MulRightMono α]
(a b c : α)
:
theorem
mul_tsub_one
{α : Type u}
[NonAssocSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[AddLeftReflectLE α]
(a b : α)
:
theorem
tsub_one_mul
{α : Type u}
[NonAssocSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[MulRightMono α]
[AddLeftReflectLE α]
(a b : α)
:
theorem
mul_self_tsub_mul_self
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[AddLeftReflectLE α]
(a b : α)
:
The tsub
version of mul_self_sub_mul_self
. Notably, this holds for Nat
and NNReal
.
theorem
sq_tsub_sq
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[AddLeftReflectLE α]
(a b : α)
:
The tsub
version of sq_sub_sq
. Notably, this holds for Nat
and NNReal
.
theorem
mul_self_tsub_one
{α : Type u}
[CommSemiring α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[AddLeftReflectLE α]
(a : α)
: