@@ -10,11 +10,21 @@ variables {α : Type*} [linear_ordered_field α] {a b c d : α}
10
10
11
11
lemma div_pos : 0 < a → 0 < b → 0 < a / b := div_pos_of_pos_of_pos
12
12
13
- lemma inv_pos {a : α} : 0 < a → 0 < a⁻¹ :=
14
- by rw [inv_eq_one_div]; exact div_pos zero_lt_one
13
+ @[simp] lemma inv_pos : ∀ {a : α}, 0 < a⁻¹ ↔ 0 < a :=
14
+ suffices ∀ a : α, 0 < a → 0 < a⁻¹,
15
+ from λ a, ⟨λ h, inv_inv'' a ▸ this _ h, this a⟩,
16
+ λ a, one_div_eq_inv a ▸ one_div_pos_of_pos
15
17
16
- lemma inv_lt_zero {a : α} : a < 0 → a⁻¹ < 0 :=
17
- by rw [inv_eq_one_div]; exact div_neg_of_pos_of_neg zero_lt_one
18
+ @[simp] lemma inv_lt_zero : ∀ {a : α}, a⁻¹ < 0 ↔ a < 0 :=
19
+ suffices ∀ a : α, a < 0 → a⁻¹ < 0 ,
20
+ from λ a, ⟨λ h, inv_inv'' a ▸ this _ h, this a⟩,
21
+ λ a, one_div_eq_inv a ▸ one_div_neg_of_neg
22
+
23
+ @[simp] lemma inv_nonneg {a : α} : 0 ≤ a⁻¹ ↔ 0 ≤ a :=
24
+ le_iff_le_iff_lt_iff_lt.2 inv_lt_zero
25
+
26
+ @[simp] lemma inv_nonpos {a : α} : a⁻¹ ≤ 0 ↔ a ≤ 0 :=
27
+ le_iff_le_iff_lt_iff_lt.2 inv_pos
18
28
19
29
lemma one_le_div_iff_le (hb : 0 < b) : 1 ≤ a / b ↔ b ≤ a :=
20
30
⟨le_of_one_le_div a hb, one_le_div_of_le a hb⟩
@@ -67,10 +77,10 @@ by rw [inv_eq_one_div, div_le_iff ha,
67
77
← div_eq_inv_mul, one_le_div_iff_le hb]
68
78
69
79
lemma inv_le (ha : 0 < a) (hb : 0 < b) : a⁻¹ ≤ b ↔ b⁻¹ ≤ a :=
70
- by rw [← inv_le_inv hb (inv_pos ha), inv_inv']
80
+ by rw [← inv_le_inv hb (inv_pos. 2 ha), inv_inv']
71
81
72
82
lemma le_inv (ha : 0 < a) (hb : 0 < b) : a ≤ b⁻¹ ↔ b ≤ a⁻¹ :=
73
- by rw [← inv_le_inv (inv_pos hb) ha, inv_inv']
83
+ by rw [← inv_le_inv (inv_pos. 2 hb) ha, inv_inv']
74
84
75
85
lemma one_div_le_one_div (ha : 0 < a) (hb : 0 < b) : 1 / a ≤ 1 / b ↔ b ≤ a :=
76
86
by simpa [one_div_eq_inv] using inv_le_inv ha hb
@@ -174,14 +184,31 @@ by haveI := classical.dec_eq α; exact
174
184
if ha0 : a = 0 then by simp [ha0]
175
185
else (div_le_div_left (lt_of_le_of_ne ha (ne.symm ha0)) (lt_of_lt_of_le hc h) hc).2 h
176
186
187
+ lemma inv_neg : (-a)⁻¹ = -(a⁻¹) :=
188
+ by rwa [inv_eq_one_div, inv_eq_one_div, div_neg_eq_neg_div]
189
+
190
+ lemma inv_le_inv_of_le {a b : α} (hb : 0 < b) (h : b ≤ a) : a⁻¹ ≤ b⁻¹ :=
191
+ begin
192
+ rw [inv_eq_one_div, inv_eq_one_div],
193
+ exact one_div_le_one_div_of_le hb h
194
+ end
195
+
196
+ lemma div_nonneg' {a b : α} (ha : 0 ≤ a) (hb : 0 ≤ b) : 0 ≤ a / b :=
197
+ (lt_or_eq_of_le hb).elim (div_nonneg ha) (λ h, by simp [h.symm])
198
+
199
+ lemma div_le_div_of_le_of_nonneg {a b c : α} (hab : a ≤ b) (hc : 0 ≤ c) :
200
+ a / c ≤ b / c :=
201
+ mul_le_mul_of_nonneg_right hab (inv_nonneg.2 hc)
202
+
203
+
177
204
end linear_ordered_field
178
205
179
206
namespace nat
180
207
181
208
variables {α : Type *} [linear_ordered_field α]
182
209
183
210
lemma inv_pos_of_nat {n : ℕ} : 0 < ((n : α) + 1 )⁻¹ :=
184
- inv_pos $ add_pos_of_nonneg_of_pos n.cast_nonneg zero_lt_one
211
+ inv_pos. 2 $ add_pos_of_nonneg_of_pos n.cast_nonneg zero_lt_one
185
212
186
213
lemma one_div_pos_of_nat {n : ℕ} : 0 < 1 / ((n : α) + 1 ) :=
187
214
by { rw one_div_eq_inv, exact inv_pos_of_nat }
@@ -197,37 +224,9 @@ end nat
197
224
section
198
225
variables {α : Type *} [discrete_linear_ordered_field α] (a b c : α)
199
226
200
- @[simp] lemma inv_pos' {a : α} : 0 < a⁻¹ ↔ 0 < a :=
201
- ⟨by rw [inv_eq_one_div]; exact pos_of_one_div_pos, inv_pos⟩
202
-
203
- @[simp] lemma inv_neg' {a : α} : a⁻¹ < 0 ↔ a < 0 :=
204
- ⟨by rw [inv_eq_one_div]; exact neg_of_one_div_neg, inv_lt_zero⟩
205
-
206
- @[simp] lemma inv_nonneg {a : α} : 0 ≤ a⁻¹ ↔ 0 ≤ a :=
207
- le_iff_le_iff_lt_iff_lt.2 inv_neg'
208
-
209
- @[simp] lemma inv_nonpos {a : α} : a⁻¹ ≤ 0 ↔ a ≤ 0 :=
210
- le_iff_le_iff_lt_iff_lt.2 inv_pos'
211
-
212
227
lemma abs_inv : abs a⁻¹ = (abs a)⁻¹ :=
213
228
have h : abs (1 / a) = 1 / abs a,
214
229
begin rw [abs_div, abs_of_nonneg], exact zero_le_one end ,
215
230
by simp [*] at *
216
231
217
- lemma inv_neg : (-a)⁻¹ = -(a⁻¹) :=
218
- by rwa [inv_eq_one_div, inv_eq_one_div, div_neg_eq_neg_div]
219
-
220
- lemma inv_le_inv_of_le {a b : α} (hb : 0 < b) (h : b ≤ a) : a⁻¹ ≤ b⁻¹ :=
221
- begin
222
- rw [inv_eq_one_div, inv_eq_one_div],
223
- exact one_div_le_one_div_of_le hb h
224
- end
225
-
226
- lemma div_nonneg' {a b : α} (ha : 0 ≤ a) (hb : 0 ≤ b) : 0 ≤ a / b :=
227
- (lt_or_eq_of_le hb).elim (div_nonneg ha) (λ h, by simp [h.symm])
228
-
229
- lemma div_le_div_of_le_of_nonneg {a b c : α} (hab : a ≤ b) (hc : 0 ≤ c) :
230
- a / c ≤ b / c :=
231
- mul_le_mul_of_nonneg_right hab (inv_nonneg.2 hc)
232
-
233
232
end
0 commit comments