@@ -84,16 +84,16 @@ def ennreal := with_top ℝ≥0
84
84
localized " notation `ℝ≥0∞` := ennreal" in ennreal
85
85
localized " notation `∞` := (⊤ : ennreal)" in ennreal
86
86
87
+ namespace ennreal
88
+ variables {a b c d : ℝ≥0 ∞} {r p q : ℝ≥0 }
89
+
87
90
-- TODO: why are the two covariant instances necessary? why aren't they inferred?
88
- instance covariant_class_mul : covariant_class ℝ≥0 ∞ ℝ≥0 ∞ (*) (≤) :=
91
+ instance covariant_class_mul_le : covariant_class ℝ≥0 ∞ ℝ≥0 ∞ (*) (≤) :=
89
92
canonically_ordered_comm_semiring.to_covariant_mul_le
90
93
91
- instance covariant_class_add : covariant_class ℝ≥0 ∞ ℝ≥0 ∞ (+) (≤) :=
94
+ instance covariant_class_add_le : covariant_class ℝ≥0 ∞ ℝ≥0 ∞ (+) (≤) :=
92
95
ordered_add_comm_monoid.to_covariant_class_left ℝ≥0 ∞
93
96
94
- namespace ennreal
95
- variables {a b c d : ℝ≥0 ∞} {r p q : ℝ≥0 }
96
-
97
97
instance : inhabited ℝ≥0 ∞ := ⟨0 ⟩
98
98
99
99
instance : has_coe ℝ≥0 ℝ≥0 ∞ := ⟨ option.some ⟩
@@ -484,23 +484,30 @@ by simpa only [pos_iff_ne_zero] using ennreal.pow_pos
484
484
485
485
@[simp] lemma not_lt_zero : ¬ a < 0 := by simp
486
486
487
- lemma add_lt_add_iff_left (ha : a ≠ ∞) : a + c < a + b ↔ c < b :=
488
- with_top.add_lt_add_iff_left ha
489
-
490
- lemma add_lt_add_left (ha : a ≠ ∞) (h : b < c) : a + b < a + c :=
491
- (add_lt_add_iff_left ha).2 h
492
-
493
- lemma add_lt_add_iff_right (ha : a ≠ ∞) : c + a < b + a ↔ c < b :=
494
- with_top.add_lt_add_iff_right ha
495
-
496
- lemma add_lt_add_right (ha : a ≠ ∞) (h : b < c) : b + a < c + a :=
497
- (add_lt_add_iff_right ha).2 h
487
+ protected lemma le_of_add_le_add_left : a ≠ ∞ → a + b ≤ a + c → b ≤ c :=
488
+ with_top.le_of_add_le_add_left
489
+ protected lemma le_of_add_le_add_right : a ≠ ∞ → b + a ≤ c + a → b ≤ c :=
490
+ with_top.le_of_add_le_add_right
491
+ protected lemma add_lt_add_left : a ≠ ∞ → b < c → a + b < a + c := with_top.add_lt_add_left
492
+ protected lemma add_lt_add_right : a ≠ ∞ → b < c → b + a < c + a := with_top.add_lt_add_right
493
+ protected lemma add_le_add_iff_left : a ≠ ∞ → (a + b ≤ a + c ↔ b ≤ c) :=
494
+ with_top.add_le_add_iff_left
495
+ protected lemma add_le_add_iff_right : a ≠ ∞ → (b + a ≤ c + a ↔ b ≤ c) :=
496
+ with_top.add_le_add_iff_right
497
+ protected lemma add_lt_add_iff_left : a ≠ ∞ → (a + b < a + c ↔ b < c) :=
498
+ with_top.add_lt_add_iff_left
499
+ protected lemma add_lt_add_iff_right : a ≠ ∞ → (b + a < c + a ↔ b < c) :=
500
+ with_top.add_lt_add_iff_right
501
+ protected lemma add_lt_add_of_le_of_lt : a ≠ ∞ → a ≤ b → c < d → a + c < b + d :=
502
+ with_top.add_lt_add_of_le_of_lt
503
+ protected lemma add_lt_add_of_lt_of_le : c ≠ ∞ → a < b → c ≤ d → a + c < b + d :=
504
+ with_top.add_lt_add_of_lt_of_le
498
505
499
506
instance contravariant_class_add_lt : contravariant_class ℝ≥0 ∞ ℝ≥0 ∞ (+) (<) :=
500
507
with_top.contravariant_class_add_lt
501
508
502
509
lemma lt_add_right (ha : a ≠ ∞) (hb : b ≠ 0 ) : a < a + b :=
503
- by rwa [← pos_iff_ne_zero, ← add_lt_add_iff_left ha, add_zero] at hb
510
+ by rwa [← pos_iff_ne_zero, ←ennreal. add_lt_add_iff_left ha, add_zero] at hb
504
511
505
512
lemma le_of_forall_pos_le_add : ∀{a b : ℝ≥0 ∞}, (∀ε : ℝ≥0 , 0 < ε → b < ∞ → a ≤ b + ε) → a ≤ b
506
513
| a none h := le_top
@@ -614,21 +621,6 @@ by simp [upper_bounds, ball_image_iff, -mem_image, *] {contextual := tt}
614
621
615
622
end complete_lattice
616
623
617
- /-- `le_of_add_le_add_left` is normally applicable to `ordered_cancel_add_comm_monoid`,
618
- but it holds in `ℝ≥0∞` with the additional assumption that `a ≠ ∞`. -/
619
- lemma le_of_add_le_add_left {a b c : ℝ≥0 ∞} (ha : a ≠ ∞) :
620
- a + b ≤ a + c → b ≤ c :=
621
- begin
622
- lift a to ℝ≥0 using ha,
623
- cases b; cases c; simp [← ennreal.coe_add, ennreal.coe_le_coe]
624
- end
625
-
626
- /-- `le_of_add_le_add_right` is normally applicable to `ordered_cancel_add_comm_monoid`,
627
- but it holds in `ℝ≥0∞` with the additional assumption that `a ≠ ∞`. -/
628
- lemma le_of_add_le_add_right {a b c : ℝ≥0 ∞} : a ≠ ∞ →
629
- b + a ≤ c + a → b ≤ c :=
630
- by simpa only [add_comm _ a] using le_of_add_le_add_left
631
-
632
624
section mul
633
625
634
626
@[mono] lemma mul_le_mul : a ≤ b → c ≤ d → a * c ≤ b * d :=
0 commit comments