class Lean.Grind.OrderedRing (R : Type u) [Semiring R] [LE R] [LT R] [Std.IsPreorder R] extends Lean.Grind.OrderedAdd R :
A ring which is also equipped with a preorder is considered a strict ordered ring if addition, negation,
and multiplication are compatible with the preorder, and 0 < 1.
In a strict ordered semiring, we have
0 < 1.In a strict ordered semiring, we can multiply an inequality
a < bon the left by a positive element0 < cto obtainc * a < c * b.In a strict ordered semiring, we can multiply an inequality
a < bon the right by a positive element0 < cto obtaina * c < b * c.
Instances
theorem Lean.Grind.OrderedRing.neg_one_lt_zero {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] :
theorem Lean.Grind.OrderedRing.ofNat_nonneg {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (x : Nat) :
theorem Lean.Grind.OrderedRing.le_of_natCast_le_natCast {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a b : Nat) :
theorem Lean.Grind.OrderedRing.le_of_intCast_le_intCast {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a b : Int) :
theorem Lean.Grind.OrderedRing.lt_of_natCast_lt_natCast {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a b : Nat) :
theorem Lean.Grind.OrderedRing.lt_of_intCast_lt_intCast {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a b : Int) :
theorem Lean.Grind.OrderedRing.natCast_le_natCast_of_le {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a b : Nat) :
theorem Lean.Grind.OrderedRing.natCast_nonneg {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] {a : Nat} :
theorem Lean.Grind.OrderedRing.natCast_lt_natCast_of_lt {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a b : Nat) :
theorem Lean.Grind.OrderedRing.pos_natCast_of_pos {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a : Nat) :
theorem Lean.Grind.OrderedRing.pos_intCast_of_pos {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a : Int) :
theorem Lean.Grind.OrderedRing.neg_intCast_of_neg {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a : Int) :
theorem Lean.Grind.OrderedRing.nonneg_intCast_of_nonneg {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a : Int) :
theorem Lean.Grind.OrderedRing.nonpos_intCast_of_nonpos {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] (a : Int) :
instance Lean.Grind.OrderedRing.instIsCharPOfNatNatOfLawfulOrderLT {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] :
IsCharP R 0
theorem Lean.Grind.OrderedRing.mul_pos {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPreorder R] [OrderedRing R] {a b : R} (h₁ : 0 < a) (h₂ : 0 < b) :
theorem Lean.Grind.OrderedRing.zero_le_one {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] :
theorem Lean.Grind.OrderedRing.not_one_lt_zero {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsPreorder R] [OrderedRing R] :
theorem Lean.Grind.OrderedRing.mul_le_mul_of_nonneg_left {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b c : R} (h : a ≤ b) (h' : 0 ≤ c) :
theorem Lean.Grind.OrderedRing.mul_le_mul_of_nonneg_right {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b c : R} (h : a ≤ b) (h' : 0 ≤ c) :
theorem Lean.Grind.OrderedRing.mul_le_mul_of_nonpos_left {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b c : R} (h : a ≤ b) (h' : c ≤ 0) :
theorem Lean.Grind.OrderedRing.mul_le_mul_of_nonpos_right {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b c : R} (h : a ≤ b) (h' : c ≤ 0) :
theorem Lean.Grind.OrderedRing.mul_lt_mul_of_neg_left {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b c : R} (h : a < b) (h' : c < 0) :
theorem Lean.Grind.OrderedRing.mul_lt_mul_of_neg_right {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b c : R} (h : a < b) (h' : c < 0) :
theorem Lean.Grind.OrderedRing.mul_nonneg {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : 0 ≤ a) (h₂ : 0 ≤ b) :
theorem Lean.Grind.OrderedRing.mul_nonneg_of_nonpos_of_nonpos {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : a ≤ 0) (h₂ : b ≤ 0) :
theorem Lean.Grind.OrderedRing.mul_nonpos_of_nonneg_of_nonpos {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : 0 ≤ a) (h₂ : b ≤ 0) :
theorem Lean.Grind.OrderedRing.mul_nonpos_of_nonpos_of_nonneg {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : a ≤ 0) (h₂ : 0 ≤ b) :
theorem Lean.Grind.OrderedRing.mul_pos_of_neg_of_neg {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : a < 0) (h₂ : b < 0) :
theorem Lean.Grind.OrderedRing.mul_neg_of_pos_of_neg {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : 0 < a) (h₂ : b < 0) :
theorem Lean.Grind.OrderedRing.mul_neg_of_neg_of_pos {R : Type u} [Ring R] [LE R] [LT R] [Std.IsPartialOrder R] [OrderedRing R] [Std.LawfulOrderLT R] {a b : R} (h₁ : a < 0) (h₂ : 0 < b) :
theorem Lean.Grind.OrderedRing.mul_nonneg_iff {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsLinearOrder R] [OrderedRing R] {a b : R} :
theorem Lean.Grind.OrderedRing.mul_pos_iff {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsLinearOrder R] [OrderedRing R] {a b : R} :
theorem Lean.Grind.OrderedRing.sq_nonneg {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsLinearOrder R] [OrderedRing R] {a : R} :
theorem Lean.Grind.OrderedRing.sq_pos {R : Type u} [Ring R] [LE R] [LT R] [Std.LawfulOrderLT R] [Std.IsLinearOrder R] [OrderedRing R] {a : R} (h : a ≠ 0) :