@@ -34,6 +34,9 @@ protected def of_real (r : ℝ) : ℝ≥0 := ⟨max r 0, le_max_right _ _⟩
34
34
lemma coe_of_real (r : ℝ) (hr : 0 ≤ r) : (nnreal.of_real r : ℝ) = r :=
35
35
max_eq_left hr
36
36
37
+ lemma le_coe_of_real (r : ℝ) : r ≤ nnreal.of_real r :=
38
+ le_max_left r 0
39
+
37
40
lemma coe_nonneg (r : nnreal) : (0 : ℝ) ≤ r := r.2
38
41
39
42
instance : has_zero ℝ≥0 := ⟨⟨0 , le_refl 0 ⟩⟩
@@ -93,6 +96,19 @@ decidable_linear_order.lift (coe : ℝ≥0 → ℝ) subtype.val_injective (by ap
93
96
@[elim_cast] protected lemma coe_lt {r₁ r₂ : ℝ≥0 } : (r₁ : ℝ) < r₂ ↔ r₁ < r₂ := iff.rfl
94
97
@[elim_cast] protected lemma coe_pos {r : ℝ≥0 } : (0 : ℝ) < r ↔ 0 < r := iff.rfl
95
98
99
+ protected lemma coe_mono : monotone (coe : ℝ≥0 → ℝ) := λ _ _, nnreal.coe_le.2
100
+
101
+ protected lemma of_real_mono : monotone nnreal.of_real :=
102
+ λ x y h, max_le_max h (le_refl 0 )
103
+
104
+ @[simp] lemma of_real_coe {r : ℝ≥0 } : nnreal.of_real r = r :=
105
+ nnreal.eq $ max_eq_left r.2
106
+
107
+ /-- `nnreal.of_real` and `coe : ℝ≥0 → ℝ` form a Galois insertion. -/
108
+ protected def gi : galois_insertion nnreal.of_real coe :=
109
+ galois_insertion.monotone_intro nnreal.coe_mono nnreal.of_real_mono
110
+ le_coe_of_real (λ _, of_real_coe)
111
+
96
112
instance : order_bot ℝ≥0 :=
97
113
{ bot := ⊥, bot_le := assume ⟨a, h⟩, h, .. nnreal.decidable_linear_order }
98
114
@@ -246,9 +262,6 @@ by simpa [-of_real_pos] using (not_iff_not.2 (@of_real_pos r))
246
262
lemma of_real_of_nonpos {r : ℝ} : r ≤ 0 → nnreal.of_real r = 0 :=
247
263
of_real_eq_zero.2
248
264
249
- @[simp] lemma of_real_coe {r : nnreal} : nnreal.of_real r = r :=
250
- nnreal.eq $ by simp [nnreal.of_real]
251
-
252
265
@[simp] lemma of_real_le_of_real_iff {r p : ℝ} (hp : 0 ≤ p) :
253
266
nnreal.of_real r ≤ nnreal.of_real p ↔ r ≤ p :=
254
267
by simp [nnreal.coe_le.symm, nnreal.of_real, hp]
@@ -270,19 +283,13 @@ lemma of_real_add_of_real {r p : ℝ} (hr : 0 ≤ r) (hp : 0 ≤ p) :
270
283
(of_real_add hr hp).symm
271
284
272
285
lemma of_real_le_of_real {r p : ℝ} (h : r ≤ p) : nnreal.of_real r ≤ nnreal.of_real p :=
273
- nnreal.coe_le. 2 $ max_le_max h $ le_refl _
286
+ nnreal.of_real_mono h
274
287
275
288
lemma of_real_add_le {r p : ℝ} : nnreal.of_real (r + p) ≤ nnreal.of_real r + nnreal.of_real p :=
276
289
nnreal.coe_le.1 $ max_le (add_le_add (le_max_left _ _) (le_max_left _ _)) nnreal.zero_le_coe
277
290
278
291
lemma of_real_le_iff_le_coe {r : ℝ} {p : nnreal} : nnreal.of_real r ≤ p ↔ r ≤ ↑p :=
279
- begin
280
- cases le_total 0 r,
281
- { rw [← nnreal.coe_le, nnreal.coe_of_real r h] },
282
- { rw [of_real_eq_zero.2 h], split,
283
- intro, exact le_trans h (coe_nonneg _),
284
- intro, exact zero_le _ }
285
- end
292
+ nnreal.gi.gc r p
286
293
287
294
lemma le_of_real_iff_coe_le {r : nnreal} {p : ℝ} (hp : p ≥ 0 ) : r ≤ nnreal.of_real p ↔ ↑r ≤ p :=
288
295
by rw [← nnreal.coe_le, nnreal.coe_of_real p hp]
0 commit comments