@@ -75,10 +75,47 @@ ordered_comm_monoid.mul_le_mul_left a b h c
75
75
lemma mul_le_mul_right' (h : a ≤ b) (c) : a * c ≤ b * c :=
76
76
by { convert mul_le_mul_left' h c using 1 ; rw mul_comm }
77
77
78
+ @[to_additive]
79
+ lemma mul_lt_of_mul_lt_left (h : a * b < c) (hle : d ≤ b) : a * d < c :=
80
+ (mul_le_mul_left' hle a).trans_lt h
81
+
82
+ @[to_additive]
83
+ lemma mul_lt_of_mul_lt_right (h : a * b < c) (hle : d ≤ a) : d * b < c :=
84
+ (mul_le_mul_right' hle b).trans_lt h
85
+
86
+ @[to_additive]
87
+ lemma mul_le_of_mul_le_left (h : a * b ≤ c) (hle : d ≤ b) : a * d ≤ c :=
88
+ (mul_le_mul_left' hle a).trans h
89
+
90
+ @[to_additive]
91
+ lemma mul_le_of_mul_le_right (h : a * b ≤ c) (hle : d ≤ a) : d * b ≤ c :=
92
+ (mul_le_mul_right' hle b).trans h
93
+
94
+ @[to_additive]
95
+ lemma lt_mul_of_lt_mul_left (h : a < b * c) (hle : c ≤ d) : a < b * d :=
96
+ h.trans_le (mul_le_mul_left' hle b)
97
+
98
+ @[to_additive]
99
+ lemma lt_mul_of_lt_mul_right (h : a < b * c) (hle : b ≤ d) : a < d * c :=
100
+ h.trans_le (mul_le_mul_right' hle c)
101
+
102
+ @[to_additive]
103
+ lemma le_mul_of_le_mul_left (h : a ≤ b * c) (hle : c ≤ d) : a ≤ b * d :=
104
+ h.trans (mul_le_mul_left' hle b)
105
+
106
+ @[to_additive]
107
+ lemma le_mul_of_le_mul_right (h : a ≤ b * c) (hle : b ≤ d) : a ≤ d * c :=
108
+ h.trans (mul_le_mul_right' hle c)
109
+
78
110
@[to_additive lt_of_add_lt_add_left]
79
111
lemma lt_of_mul_lt_mul_left' : a * b < a * c → b < c :=
80
112
ordered_comm_monoid.lt_of_mul_lt_mul_left a b c
81
113
114
+ @[to_additive lt_of_add_lt_add_right]
115
+ lemma lt_of_mul_lt_mul_right' (h : a * b < c * b) : a < c :=
116
+ lt_of_mul_lt_mul_left'
117
+ (show b * a < b * c, begin rw [mul_comm b a, mul_comm b c], assumption end )
118
+
82
119
@[to_additive add_le_add]
83
120
lemma mul_le_mul' (h₁ : a ≤ b) (h₂ : c ≤ d) : a * c ≤ b * d :=
84
121
(mul_le_mul_right' h₁ _).trans $ mul_le_mul_left' h₂ _
@@ -87,22 +124,55 @@ lemma mul_le_mul' (h₁ : a ≤ b) (h₂ : c ≤ d) : a * c ≤ b * d :=
87
124
lemma mul_le_mul_three {e f : α} (h₁ : a ≤ d) (h₂ : b ≤ e) (h₃ : c ≤ f) : a * b * c ≤ d * e * f :=
88
125
mul_le_mul' (mul_le_mul' h₁ h₂) h₃
89
126
127
+ -- here we start using properties of one.
90
128
@[to_additive le_add_of_nonneg_right]
91
129
lemma le_mul_of_one_le_right' (h : 1 ≤ b) : a ≤ a * b :=
92
- have a * 1 ≤ a * b, from mul_le_mul_left' h _,
93
- by rwa mul_one at this
130
+ by simpa only [mul_one] using mul_le_mul_left' h a
94
131
95
132
@[to_additive le_add_of_nonneg_left]
96
133
lemma le_mul_of_one_le_left' (h : 1 ≤ b) : a ≤ b * a :=
97
- have 1 * a ≤ b * a, from mul_le_mul_right' h a,
98
- by rwa one_mul at this
134
+ by simpa only [one_mul] using mul_le_mul_right' h a
99
135
100
- @[to_additive lt_of_add_lt_add_right]
101
- lemma lt_of_mul_lt_mul_right' (h : a * b < c * b) : a < c :=
102
- lt_of_mul_lt_mul_left'
103
- (show b * a < b * c, begin rw [mul_comm b a, mul_comm b c], assumption end )
136
+ @[to_additive add_le_of_nonpos_right]
137
+ lemma mul_le_of_le_one_right' (h : b ≤ 1 ) : a * b ≤ a :=
138
+ by simpa only [mul_one] using mul_le_mul_left' h a
139
+
140
+ @[to_additive add_le_of_nonpos_left]
141
+ lemma mul_le_of_le_one_left' (h : b ≤ 1 ) : b * a ≤ a :=
142
+ by simpa only [one_mul] using mul_le_mul_right' h a
143
+
144
+ @[to_additive]
145
+ lemma lt_of_mul_lt_of_one_le_left (h : a * b < c) (hle : 1 ≤ b) : a < c :=
146
+ (le_mul_of_one_le_right' hle).trans_lt h
147
+
148
+ @[to_additive]
149
+ lemma lt_of_mul_lt_of_one_le_right (h : a * b < c) (hle : 1 ≤ a) : b < c :=
150
+ (le_mul_of_one_le_left' hle).trans_lt h
151
+
152
+ @[to_additive]
153
+ lemma le_of_mul_le_of_one_le_left (h : a * b ≤ c) (hle : 1 ≤ b) : a ≤ c :=
154
+ (le_mul_of_one_le_right' hle).trans h
155
+
156
+ @[to_additive]
157
+ lemma le_of_mul_le_of_one_le_right (h : a * b ≤ c) (hle : 1 ≤ a) : b ≤ c :=
158
+ (le_mul_of_one_le_left' hle).trans h
159
+
160
+ @[to_additive]
161
+ lemma lt_of_lt_mul_of_le_one_left (h : a < b * c) (hle : c ≤ 1 ) : a < b :=
162
+ h.trans_le (mul_le_of_le_one_right' hle)
163
+
164
+ @[to_additive]
165
+ lemma lt_of_lt_mul_of_le_one_right (h : a < b * c) (hle : b ≤ 1 ) : a < c :=
166
+ h.trans_le (mul_le_of_le_one_left' hle)
167
+
168
+ @[to_additive]
169
+ lemma le_of_le_mul_of_le_one_left (h : a ≤ b * c) (hle : c ≤ 1 ) : a ≤ b :=
170
+ h.trans (mul_le_of_le_one_right' hle)
171
+
172
+ @[to_additive]
173
+ lemma le_of_le_mul_of_le_one_right (h : a ≤ b * c) (hle : b ≤ 1 ) : a ≤ c :=
174
+ h.trans (mul_le_of_le_one_left' hle)
104
175
105
- -- here we start using properties of one.
106
176
@[to_additive]
107
177
lemma le_mul_of_one_le_of_le (ha : 1 ≤ a) (hbc : b ≤ c) : b ≤ a * c :=
108
178
one_mul b ▸ mul_le_mul' ha hbc
0 commit comments