@@ -125,6 +125,18 @@ lemma mul_lt_iff_lt_one_right {a b : α} (hb : b > 0) : b * a < b ↔ a < 1 :=
125
125
⟨ λ h, lt_of_not_ge (mt (le_mul_iff_one_le_right hb).2 (not_le_of_gt h)),
126
126
λ h, lt_of_not_ge (mt (le_mul_iff_one_le_right hb).1 (not_le_of_gt h)) ⟩
127
127
128
+ lemma nonpos_of_mul_nonneg_left {a b : α} (h : 0 ≤ a * b) (hb : b < 0 ) : a ≤ 0 :=
129
+ le_of_not_gt (λ ha, absurd h (not_le_of_gt (mul_neg_of_pos_of_neg ha hb)))
130
+
131
+ lemma nonpos_of_mul_nonneg_right {a b : α} (h : 0 ≤ a * b) (ha : a < 0 ) : b ≤ 0 :=
132
+ le_of_not_gt (λ hb, absurd h (not_le_of_gt (mul_neg_of_neg_of_pos ha hb)))
133
+
134
+ lemma neg_of_mul_pos_left {a b : α} (h : 0 < a * b) (hb : b ≤ 0 ) : a < 0 :=
135
+ lt_of_not_ge (λ ha, absurd h (not_lt_of_ge (mul_nonpos_of_nonneg_of_nonpos ha hb)))
136
+
137
+ lemma neg_of_mul_pos_right {a b : α} (h : 0 < a * b) (ha : a ≤ 0 ) : b < 0 :=
138
+ lt_of_not_ge (λ hb, absurd h (not_lt_of_ge (mul_nonpos_of_nonpos_of_nonneg ha hb)))
139
+
128
140
end linear_ordered_semiring
129
141
130
142
section decidable_linear_ordered_semiring
@@ -181,6 +193,18 @@ begin
181
193
{ rw ← neg_mul_neg, exact mul_self_le_mul_self (neg_nonneg_of_nonpos h) h₂ }
182
194
end
183
195
196
+ lemma nonneg_of_mul_nonpos_left {a b : α} (h : a * b ≤ 0 ) (hb : b < 0 ) : 0 ≤ a :=
197
+ le_of_not_gt (λ ha, absurd h (not_le_of_gt (mul_pos_of_neg_of_neg ha hb)))
198
+
199
+ lemma nonneg_of_mul_nonpos_right {a b : α} (h : a * b ≤ 0 ) (ha : a < 0 ) : 0 ≤ b :=
200
+ le_of_not_gt (λ hb, absurd h (not_le_of_gt (mul_pos_of_neg_of_neg ha hb)))
201
+
202
+ lemma pos_of_mul_neg_left {a b : α} (h : a * b < 0 ) (hb : b ≤ 0 ) : 0 < a :=
203
+ lt_of_not_ge (λ ha, absurd h (not_lt_of_ge (mul_nonneg_of_nonpos_of_nonpos ha hb)))
204
+
205
+ lemma pos_of_mul_neg_right {a b : α} (h : a * b < 0 ) (ha : a ≤ 0 ) : 0 < b :=
206
+ lt_of_not_ge (λ hb, absurd h (not_lt_of_ge (mul_nonneg_of_nonpos_of_nonpos ha hb)))
207
+
184
208
end linear_ordered_ring
185
209
186
210
set_option old_structure_cmd true
0 commit comments