@@ -322,6 +322,38 @@ instance pos_mul_strict_mono.to_pos_mul_mono_rev [pos_mul_strict_mono α] : pos_
322
322
instance mul_pos_strict_mono.to_mul_pos_mono_rev [mul_pos_strict_mono α] : mul_pos_mono_rev α :=
323
323
⟨λ x a b h, le_of_not_lt $ λ h', h.not_lt (mul_lt_mul_right' h' x.prop)⟩
324
324
325
+ lemma pos_mul_mono_rev.to_pos_mul_strict_mono [pos_mul_mono_rev α] : pos_mul_strict_mono α :=
326
+ ⟨λ x a b h, lt_of_not_le $ λ h', h.not_le (le_of_mul_le_mul_left' h' x.prop)⟩
327
+
328
+ lemma mul_pos_mono_rev.to_mul_pos_strict_mono [mul_pos_mono_rev α] : mul_pos_strict_mono α :=
329
+ ⟨λ x a b h, lt_of_not_le $ λ h', h.not_le (le_of_mul_le_mul_right' h' x.prop)⟩
330
+
331
+ lemma pos_mul_strict_mono_iff_pos_mul_mono_rev : pos_mul_strict_mono α ↔ pos_mul_mono_rev α :=
332
+ ⟨@zero_lt.pos_mul_strict_mono.to_pos_mul_mono_rev _ _ _ _,
333
+ @pos_mul_mono_rev.to_pos_mul_strict_mono _ _ _ _⟩
334
+
335
+ lemma mul_pos_strict_mono_iff_mul_pos_mono_rev : mul_pos_strict_mono α ↔ mul_pos_mono_rev α :=
336
+ ⟨@zero_lt.mul_pos_strict_mono.to_mul_pos_mono_rev _ _ _ _,
337
+ @mul_pos_mono_rev.to_mul_pos_strict_mono _ _ _ _⟩
338
+
339
+ lemma pos_mul_reflect_lt.to_pos_mul_mono [pos_mul_reflect_lt α] : pos_mul_mono α :=
340
+ ⟨λ x a b h, le_of_not_lt $ λ h', h.not_lt (lt_of_mul_lt_mul_left' h' x.prop)⟩
341
+
342
+ lemma mul_pos_reflect_lt.to_mul_pos_mono [mul_pos_reflect_lt α] : mul_pos_mono α :=
343
+ ⟨λ x a b h, le_of_not_lt $ λ h', h.not_lt (lt_of_mul_lt_mul_right' h' x.prop)⟩
344
+
345
+ lemma pos_mul_mono.to_pos_mul_reflect_lt [pos_mul_mono α] : pos_mul_reflect_lt α :=
346
+ ⟨λ x a b h, lt_of_not_le $ λ h', h.not_le (mul_le_mul_left' h' x.prop)⟩
347
+
348
+ lemma mul_pos_mono.to_mul_pos_reflect_lt [mul_pos_mono α] : mul_pos_reflect_lt α :=
349
+ ⟨λ x a b h, lt_of_not_le $ λ h', h.not_le (mul_le_mul_right' h' x.prop)⟩
350
+
351
+ lemma pos_mul_mono_iff_pos_mul_reflect_lt : pos_mul_mono α ↔ pos_mul_reflect_lt α :=
352
+ ⟨@pos_mul_mono.to_pos_mul_reflect_lt _ _ _ _, @pos_mul_reflect_lt.to_pos_mul_mono _ _ _ _⟩
353
+
354
+ lemma mul_pos_mono_iff_mul_pos_reflect_lt : mul_pos_mono α ↔ mul_pos_reflect_lt α :=
355
+ ⟨@mul_pos_mono.to_mul_pos_reflect_lt _ _ _ _, @mul_pos_reflect_lt.to_mul_pos_mono _ _ _ _⟩
356
+
325
357
end linear_order
326
358
327
359
end has_mul_zero
@@ -881,7 +913,7 @@ lemma lt_of_mul_lt_of_one_le_right [mul_pos_mono α]
881
913
(preorder.le_mul_of_one_le_left hle b0).trans_lt h
882
914
883
915
-- proven with `c0 : 0 ≤ b` as `le_of_le_mul_of_le_one_right`
884
- lemma le_of_le_mul_of_le_one_right' [mul_pos_mono α]
916
+ lemma preorder. le_of_le_mul_of_le_one_right [mul_pos_mono α]
885
917
(h : a ≤ b * c) (hle : b ≤ 1 ) (c0 : 0 < c) :
886
918
a ≤ c :=
887
919
h.trans (preorder.mul_le_of_le_one_left hle c0)
@@ -998,7 +1030,7 @@ b0.lt_or_eq.elim (preorder.le_of_mul_le_of_one_le_right h hle)
998
1030
lemma le_of_le_mul_of_le_one_right [mul_pos_mono α]
999
1031
(h : a ≤ b * c) (hle : b ≤ 1 ) (c0 : 0 ≤ c) :
1000
1032
a ≤ c :=
1001
- c0.lt_or_eq.elim (le_of_le_mul_of_le_one_right' h hle)
1033
+ c0.lt_or_eq.elim (preorder. le_of_le_mul_of_le_one_right h hle)
1002
1034
(λ ha, by simpa only [← ha, mul_zero] using h)
1003
1035
1004
1036
end partial_order
@@ -1014,4 +1046,68 @@ end linear_order
1014
1046
1015
1047
end mul_zero_one_class
1016
1048
1049
+ section cancel_monoid_with_zero
1050
+
1051
+ variables [cancel_monoid_with_zero α]
1052
+
1053
+ section partial_order
1054
+ variables [partial_order α]
1055
+
1056
+ lemma pos_mul_mono.to_pos_mul_strict_mono [pos_mul_mono α] : pos_mul_strict_mono α :=
1057
+ ⟨λ x a b h, lt_of_le_of_ne (mul_le_mul_left' h.le x.2 ) (h.ne ∘ mul_left_cancel₀ x.2 .ne.symm)⟩
1058
+
1059
+ lemma pos_mul_mono_iff_pos_mul_strict_mono : pos_mul_mono α ↔ pos_mul_strict_mono α :=
1060
+ ⟨@pos_mul_mono.to_pos_mul_strict_mono α _ _, @zero_lt.pos_mul_strict_mono.to_pos_mul_mono α _ _ _⟩
1061
+
1062
+ lemma mul_pos_mono.to_mul_pos_strict_mono [mul_pos_mono α] : mul_pos_strict_mono α :=
1063
+ ⟨λ x a b h, lt_of_le_of_ne (mul_le_mul_right' h.le x.2 ) (h.ne ∘ mul_right_cancel₀ x.2 .ne.symm)⟩
1064
+
1065
+ lemma mul_pos_mono_iff_mul_pos_strict_mono : mul_pos_mono α ↔ mul_pos_strict_mono α :=
1066
+ ⟨@mul_pos_mono.to_mul_pos_strict_mono α _ _, @zero_lt.mul_pos_strict_mono.to_mul_pos_mono α _ _ _⟩
1067
+
1068
+ lemma pos_mul_reflect_lt.to_pos_mul_mono_rev [pos_mul_reflect_lt α] : pos_mul_mono_rev α :=
1069
+ ⟨λ x a b h, h.eq_or_lt.elim (le_of_eq ∘ mul_left_cancel₀ x.2 .ne.symm)
1070
+ (λ h', (lt_of_mul_lt_mul_left' h' x.2 ).le)⟩
1071
+
1072
+ lemma pos_mul_mono_rev_iff_pos_mul_reflect_lt : pos_mul_mono_rev α ↔ pos_mul_reflect_lt α :=
1073
+ ⟨@zero_lt.pos_mul_mono_rev.to_pos_mul_reflect_lt α _ _ _,
1074
+ @pos_mul_reflect_lt.to_pos_mul_mono_rev α _ _⟩
1075
+
1076
+ lemma mul_pos_reflect_lt.to_mul_pos_mono_rev [mul_pos_reflect_lt α] : mul_pos_mono_rev α :=
1077
+ ⟨λ x a b h, h.eq_or_lt.elim (le_of_eq ∘ mul_right_cancel₀ x.2 .ne.symm)
1078
+ (λ h', (lt_of_mul_lt_mul_right' h' x.2 ).le)⟩
1079
+
1080
+ lemma mul_pos_mono_rev_iff_mul_pos_reflect_lt : mul_pos_mono_rev α ↔ mul_pos_reflect_lt α :=
1081
+ ⟨@zero_lt.mul_pos_mono_rev.to_mul_pos_reflect_lt α _ _ _,
1082
+ @mul_pos_reflect_lt.to_mul_pos_mono_rev α _ _⟩
1083
+
1084
+ end partial_order
1085
+
1086
+ end cancel_monoid_with_zero
1087
+
1088
+ section comm_semigroup_has_zero
1089
+ variables [comm_semigroup α] [has_zero α]
1090
+
1091
+ variables [has_lt α]
1092
+
1093
+ lemma pos_mul_strict_mono_iff_mul_pos_strict_mono :
1094
+ pos_mul_strict_mono α ↔ mul_pos_strict_mono α :=
1095
+ by simp ! only [mul_comm]
1096
+
1097
+ lemma pos_mul_reflect_lt_iff_mul_pos_reflect_lt :
1098
+ pos_mul_reflect_lt α ↔ mul_pos_reflect_lt α :=
1099
+ by simp ! only [mul_comm]
1100
+
1101
+ variables [has_le α]
1102
+
1103
+ lemma pos_mul_mono_iff_mul_pos_mono :
1104
+ pos_mul_mono α ↔ mul_pos_mono α :=
1105
+ by simp ! only [mul_comm]
1106
+
1107
+ lemma pos_mul_mono_rev_iff_mul_pos_mono_rev :
1108
+ pos_mul_mono_rev α ↔ mul_pos_mono_rev α :=
1109
+ by simp ! only [mul_comm]
1110
+
1111
+ end comm_semigroup_has_zero
1112
+
1017
1113
end zero_lt
0 commit comments