@@ -204,8 +204,42 @@ end preorder
204
204
205
205
end has_mul_zero
206
206
207
- section mul_zero_class_partial_order
208
- variables [mul_zero_class α] [partial_order α]
207
+ section mul_zero_class
208
+ variables [mul_zero_class α]
209
+
210
+ section preorder
211
+ variables [preorder α]
212
+
213
+ /-- Assumes left covariance. -/
214
+ lemma left.mul_pos [pos_mul_strict_mono α]
215
+ (ha : 0 < a) (hb : 0 < b) :
216
+ 0 < a * b :=
217
+ have h : a * 0 < a * b, from mul_lt_mul_left' hb ha,
218
+ by rwa [mul_zero] at h
219
+
220
+ lemma mul_neg_of_pos_of_neg [pos_mul_strict_mono α]
221
+ (ha : 0 < a) (hb : b < 0 ) :
222
+ a * b < 0 :=
223
+ have h : a * b < a * 0 , from mul_lt_mul_left' hb ha,
224
+ by rwa [mul_zero] at h
225
+
226
+ /-- Assumes right covariance. -/
227
+ lemma right.mul_pos [mul_pos_strict_mono α]
228
+ (ha : 0 < a) (hb : 0 < b) :
229
+ 0 < a * b :=
230
+ have h : 0 * b < a * b, from mul_lt_mul_right' ha hb,
231
+ by rwa [zero_mul] at h
232
+
233
+ lemma mul_neg_of_neg_of_pos [mul_pos_strict_mono α]
234
+ (ha : a < 0 ) (hb : 0 < b) :
235
+ a * b < 0 :=
236
+ have h : a * b < 0 * b, from mul_lt_mul_right' ha hb,
237
+ by rwa [zero_mul] at h
238
+
239
+ end preorder
240
+
241
+ section partial_order
242
+ variables [partial_order α]
209
243
210
244
lemma lt_of_mul_lt_mul_left'' [pos_mul_reflect_lt α]
211
245
(bc : a * b < a * c) (a0 : 0 ≤ a) :
@@ -225,7 +259,9 @@ begin
225
259
{ exact lt_of_mul_lt_mul_right' bc ((ne.symm a₀).le_iff_lt.mp a0) }
226
260
end
227
261
228
- end mul_zero_class_partial_order
262
+ end partial_order
263
+
264
+ end mul_zero_class
229
265
230
266
section mul_one_class
231
267
variables [mul_one_class α] [has_zero α]
0 commit comments