Canonically ordered rings and semirings. #
@[instance 10]
instance CanonicallyOrderedAdd.toZeroLEOneClass {R : Type u} [AddZeroClass R] [One R] [LE R] [CanonicallyOrderedAdd R] :
theorem Odd.pos {R : Type u} [Semiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Nontrivial R] {a : R} :
@[instance 100]
instance CanonicallyOrderedAdd.toMulLeftMono {R : Type u} [NonUnitalNonAssocSemiring R] [LE R] [CanonicallyOrderedAdd R] :
@[instance 100]
instance CanonicallyOrderedAdd.toMulRightMono {R : Type u} [NonUnitalNonAssocSemiring R] [LE R] [CanonicallyOrderedAdd R] :
theorem CanonicallyOrderedAdd.toIsOrderedMonoid {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] :
theorem CanonicallyOrderedAdd.toIsOrderedRing {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] :
@[simp]
theorem CanonicallyOrderedAdd.mul_pos {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [NoZeroDivisors R] {a b : R} :
theorem CanonicallyOrderedAdd.pow_pos {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [IsReduced R] {a : R} (ha : 0 < a) (n : ℕ) :
theorem CanonicallyOrderedAdd.mul_lt_mul_of_lt_of_lt {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [PosMulStrictMono R] {a b c d : R} (hab : a < b) (hcd : c < d) :
theorem AddLECancellable.mul_tsub {R : Type u} [NonUnitalNonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] {a b c : R} (h : AddLECancellable (a * c)) :
theorem AddLECancellable.tsub_mul {R : Type u} [NonUnitalNonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [MulRightMono R] {a b c : R} (h : AddLECancellable (b * c)) :
theorem mul_tsub {R : Type u} [NonUnitalNonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [AddLeftReflectLE R] (a b c : R) :
theorem tsub_mul {R : Type u} [NonUnitalNonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [AddLeftReflectLE R] [MulRightMono R] (a b c : R) :
theorem mul_tsub_one {R : Type u} [NonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [AddLeftReflectLE R] (a b : R) :
theorem tsub_one_mul {R : Type u} [NonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [MulRightMono R] [AddLeftReflectLE R] (a b : R) :
theorem mul_self_tsub_mul_self {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [AddLeftReflectLE R] (a b : R) :
The tsub version of mul_self_sub_mul_self. Notably, this holds for Nat and NNReal.
theorem sq_tsub_sq {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [AddLeftReflectLE R] (a b : R) :
The tsub version of sq_sub_sq. Notably, this holds for Nat and NNReal.
theorem mul_self_tsub_one {R : Type u} [CommSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [Sub R] [OrderedSub R] [Std.Total fun (x1 x2 : R) => x1 ≤ x2] [AddLeftReflectLE R] (a : R) :