data.real.erealMathlib.Data.Real.EReal

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

refactor(algebra/group/basic): rework lemmas on inv and neg (#17483)

This PR adds the following lemma (and its additive equivalent).

theorem inv_eq_iff_eq_inv : a⁻¹ = b ↔ a = b⁻¹

and removes eq_inv_of_eq_inv, eq_inv_iff_eq_inv and inv_eq_iff_inv_eq (and their additive equivalents).

Diff
@@ -554,13 +554,13 @@ instance : has_involutive_neg ereal :=
 | (x : ℝ) := rfl
 
 @[simp] lemma neg_eq_top_iff {x : ereal} : - x = ⊤ ↔ x = ⊥ :=
-by { rw neg_eq_iff_neg_eq, simp [eq_comm] }
+neg_eq_iff_eq_neg
 
 @[simp] lemma neg_eq_bot_iff {x : ereal} : - x = ⊥ ↔ x = ⊤ :=
-by { rw neg_eq_iff_neg_eq, simp [eq_comm] }
+neg_eq_iff_eq_neg
 
 @[simp] lemma neg_eq_zero_iff {x : ereal} : - x = 0 ↔ x = 0 :=
-by { rw neg_eq_iff_neg_eq, simp [eq_comm] }
+by rw [neg_eq_iff_eq_neg, neg_zero]
 
 /-- if `-a ≤ b` then `-b ≤ a` on `ereal`. -/
 protected theorem neg_le_of_neg_le {a b : ereal} (h : -a ≤ b) : -b ≤ a :=

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -793,7 +793,7 @@ def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ
   left_inv := fun ⟨x, hx⟩ =>
     Subtype.eq <| by
       lift x to ℝ
-      · simpa [not_or, and_comm'] using hx
+      · simpa [not_or, and_comm] using hx
       · simp
   right_inv x := by simp
 #align ereal.ne_top_bot_equiv_real EReal.neTopBotEquivReal
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 -/
 import Data.Real.Basic
-import Data.Real.Ennreal
+import Data.ENNReal.Basic
 import Data.Sign
 
 #align_import data.real.ereal from "leanprover-community/mathlib"@"2196ab363eb097c008d4497125e0dde23fb36db2"
Diff
@@ -716,14 +716,14 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) =
     rw [ENNReal.top_mul']; split_ifs
     · simp only [h, coe_ennreal_zero, MulZeroClass.mul_zero]
     · have A : (0 : ℝ) < y := by
-        simp only [ENNReal.coe_eq_zero] at h 
+        simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), ⊤ => by
     rw [ENNReal.mul_top']; split_ifs
     · simp only [h, coe_ennreal_zero, MulZeroClass.zero_mul]
     · have A : (0 : ℝ) < x := by
-        simp only [ENNReal.coe_eq_zero] at h 
+        simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), (y : ℝ≥0) => by
@@ -1068,7 +1068,7 @@ theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   by
   apply lt_of_le_of_ne (EReal.neg_le_of_neg_le h.le)
   intro H
-  rw [← H, neg_neg] at h 
+  rw [← H, neg_neg] at h
   exact lt_irrefl _ h
 #align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_lt
 -/
@@ -1220,7 +1220,7 @@ theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
   by
   induction x using EReal.rec
   · rfl
-  · simp only [EReal.coe_neg'] at h 
+  · simp only [EReal.coe_neg'] at h
     simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
 #align ereal.mul_top_of_neg EReal.mul_top_of_neg
@@ -1277,7 +1277,7 @@ theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
   by
   induction x using EReal.rec
   · rfl
-  · simp only [EReal.coe_neg'] at h 
+  · simp only [EReal.coe_neg'] at h
     simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
 #align ereal.mul_bot_of_neg EReal.mul_bot_of_neg
@@ -1571,7 +1571,7 @@ theorem le_iff_sign {x y : EReal} :
   · intro h
     rcases(sign.monotone h).lt_or_eq with (hs | hs)
     · exact Or.inl hs
-    · rw [← x.sign_mul_abs, ← y.sign_mul_abs] at h 
+    · rw [← x.sign_mul_abs, ← y.sign_mul_abs] at h
       cases SignType.sign y <;> rw [hs] at *
       · simp
       · simp at h ⊢; exact Or.inl h
Diff
@@ -1428,7 +1428,7 @@ theorem abs_eq_zero_iff {x : EReal} : x.abs = 0 ↔ x = 0 :=
   by
   induction x using EReal.rec
   · simp only [abs_bot, ENNReal.top_ne_zero, bot_ne_zero]
-  · simp only [EReal.abs, coe_eq_zero, ENNReal.ofReal_eq_zero, abs_nonpos_iff]
+  · simp only [EReal.abs, NNReal.coe_eq_zero, ENNReal.ofReal_eq_zero, abs_nonpos_iff]
   · simp only [abs_top, ENNReal.top_ne_zero, top_ne_zero]
 #align ereal.abs_eq_zero_iff EReal.abs_eq_zero_iff
 -/
@@ -1460,28 +1460,28 @@ theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
   case coe_coe x y => simp only [← coe_mul, EReal.abs, abs_mul, ENNReal.ofReal_mul (abs_nonneg _)]
   case pos_bot x hx =>
     simp only [coe_mul_bot_of_pos hx, hx.ne', abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-      coe_eq_zero, not_false_iff]
+      NNReal.coe_eq_zero, not_false_iff]
   case neg_bot x hx =>
     simp only [coe_mul_bot_of_neg hx, hx.ne, abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-      coe_eq_zero, not_false_iff, abs_top]
+      NNReal.coe_eq_zero, not_false_iff, abs_top]
   case pos_top x hx =>
-    simp only [coe_mul_top_of_pos hx, hx.ne', WithTop.mul_top, Ne.def, abs_eq_zero_iff, coe_eq_zero,
-      not_false_iff, abs_top]
+    simp only [coe_mul_top_of_pos hx, hx.ne', WithTop.mul_top, Ne.def, abs_eq_zero_iff,
+      NNReal.coe_eq_zero, not_false_iff, abs_top]
   case neg_top x hx =>
     simp only [coe_mul_top_of_neg hx, hx.ne, abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-      coe_eq_zero, not_false_iff, abs_top]
+      NNReal.coe_eq_zero, not_false_iff, abs_top]
   case top_pos y hy =>
-    simp only [top_mul_coe_of_pos hy, hy.ne', WithTop.top_mul, Ne.def, abs_eq_zero_iff, coe_eq_zero,
-      not_false_iff, abs_top]
+    simp only [top_mul_coe_of_pos hy, hy.ne', WithTop.top_mul, Ne.def, abs_eq_zero_iff,
+      NNReal.coe_eq_zero, not_false_iff, abs_top]
   case top_neg y hy =>
     simp only [top_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-      coe_eq_zero, not_false_iff, abs_top]
+      NNReal.coe_eq_zero, not_false_iff, abs_top]
   case bot_pos y hy =>
     simp only [bot_mul_coe_of_pos hy, hy.ne', abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-      coe_eq_zero, not_false_iff]
+      NNReal.coe_eq_zero, not_false_iff]
   case bot_neg y hy =>
     simp only [bot_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-      coe_eq_zero, not_false_iff, abs_top]
+      NNReal.coe_eq_zero, not_false_iff, abs_top]
 #align ereal.abs_mul EReal.abs_mul
 -/
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2019 Kevin Buzzard. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 -/
-import Mathbin.Data.Real.Basic
-import Mathbin.Data.Real.Ennreal
-import Mathbin.Data.Sign
+import Data.Real.Basic
+import Data.Real.Ennreal
+import Data.Sign
 
 #align_import data.real.ereal from "leanprover-community/mathlib"@"2196ab363eb097c008d4497125e0dde23fb36db2"
 
@@ -1319,7 +1319,7 @@ theorem bot_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊥ : EReal) * x = ⊤ :=
 #align ereal.bot_mul_coe_of_neg EReal.bot_mul_coe_of_neg
 -/
 
-/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:146:2: warning: unsupported: with_cases -/
 #print EReal.toReal_mul /-
 theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
   by
@@ -1352,7 +1352,7 @@ theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
 #align ereal.to_real_mul EReal.toReal_mul
 -/
 
-/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:146:2: warning: unsupported: with_cases -/
 #print EReal.neg_mul /-
 protected theorem neg_mul (x y : EReal) : -x * y = -(x * y) :=
   by
@@ -1446,7 +1446,7 @@ theorem coe_abs (x : ℝ) : ((x : EReal).abs : EReal) = (|x| : ℝ) := by
 #align ereal.coe_abs EReal.coe_abs
 -/
 
-/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:146:2: warning: unsupported: with_cases -/
 #print EReal.abs_mul /-
 @[simp]
 theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
@@ -1509,7 +1509,7 @@ theorem sign_coe (x : ℝ) : SignType.sign (x : EReal) = SignType.sign x := by
 #align ereal.sign_coe EReal.sign_coe
 -/
 
-/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:146:2: warning: unsupported: with_cases -/
 #print EReal.sign_mul /-
 @[simp]
 theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignType.sign y :=
Diff
@@ -1380,8 +1380,8 @@ protected theorem neg_mul (x y : EReal) : -x * y = -(x * y) :=
 
 instance : HasDistribNeg EReal :=
   { EReal.hasInvolutiveNeg with
-    neg_mul := EReal.neg_mul
-    mul_neg := fun x y => by rw [x.mul_comm, x.mul_comm]; exact y.neg_mul x }
+    neg_hMul := EReal.neg_mul
+    hMul_neg := fun x y => by rw [x.mul_comm, x.mul_comm]; exact y.neg_mul x }
 
 /-! ### Absolute value -/
 
Diff
@@ -78,11 +78,11 @@ def Real.toEReal : ℝ → EReal :=
 
 namespace EReal
 
-#print EReal.decidableLt /-
+#print EReal.decidableLT /-
 -- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
-instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
+instance decidableLT : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
   WithBot.decidableLT
-#align ereal.decidable_lt EReal.decidableLt
+#align ereal.decidable_lt EReal.decidableLT
 -/
 
 -- TODO: Provide explicitly, otherwise it is inferred noncomputably from `complete_linear_order`
Diff
@@ -1505,7 +1505,7 @@ theorem sign_bot : SignType.sign (⊥ : EReal) = -1 :=
 #print EReal.sign_coe /-
 @[simp]
 theorem sign_coe (x : ℝ) : SignType.sign (x : EReal) = SignType.sign x := by
-  simp only [SignType.sign, OrderHom.coe_fun_mk, EReal.coe_pos, EReal.coe_neg']
+  simp only [SignType.sign, OrderHom.coe_mk, EReal.coe_pos, EReal.coe_neg']
 #align ereal.sign_coe EReal.sign_coe
 -/
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2019 Kevin Buzzard. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
-
-! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit 2196ab363eb097c008d4497125e0dde23fb36db2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Real.Basic
 import Mathbin.Data.Real.Ennreal
 import Mathbin.Data.Sign
 
+#align_import data.real.ereal from "leanprover-community/mathlib"@"2196ab363eb097c008d4497125e0dde23fb36db2"
+
 /-!
 # The extended reals [-∞, ∞].
 
Diff
@@ -1395,7 +1395,7 @@ a real `x` to `|x|`. -/
 protected def abs : EReal → ℝ≥0∞
   | ⊥ => ⊤
   | ⊤ => ⊤
-  | (x : ℝ) => ENNReal.ofReal (|x|)
+  | (x : ℝ) => ENNReal.ofReal |x|
 #align ereal.abs EReal.abs
 -/
 
@@ -1414,7 +1414,7 @@ theorem abs_bot : (⊥ : EReal).abs = ⊤ :=
 -/
 
 #print EReal.abs_def /-
-theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal (|x|) :=
+theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal |x| :=
   rfl
 #align ereal.abs_def EReal.abs_def
 -/
Diff
@@ -81,10 +81,12 @@ def Real.toEReal : ℝ → EReal :=
 
 namespace EReal
 
+#print EReal.decidableLt /-
 -- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
 instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
   WithBot.decidableLT
 #align ereal.decidable_lt EReal.decidableLt
+-/
 
 -- TODO: Provide explicitly, otherwise it is inferred noncomputably from `complete_linear_order`
 instance : Top EReal :=
@@ -93,9 +95,11 @@ instance : Top EReal :=
 instance : Coe ℝ EReal :=
   ⟨Real.toEReal⟩
 
+#print EReal.coe_strictMono /-
 theorem coe_strictMono : StrictMono (coe : ℝ → EReal) :=
   WithBot.coe_strictMono.comp WithTop.coe_strictMono
 #align ereal.coe_strict_mono EReal.coe_strictMono
+-/
 
 #print EReal.coe_injective /-
 theorem coe_injective : Injective (coe : ℝ → EReal) :=
@@ -103,15 +107,19 @@ theorem coe_injective : Injective (coe : ℝ → EReal) :=
 #align ereal.coe_injective EReal.coe_injective
 -/
 
+#print EReal.coe_le_coe_iff /-
 @[simp, norm_cast]
 protected theorem coe_le_coe_iff {x y : ℝ} : (x : EReal) ≤ (y : EReal) ↔ x ≤ y :=
   coe_strictMono.le_iff_le
 #align ereal.coe_le_coe_iff EReal.coe_le_coe_iff
+-/
 
+#print EReal.coe_lt_coe_iff /-
 @[simp, norm_cast]
 protected theorem coe_lt_coe_iff {x y : ℝ} : (x : EReal) < (y : EReal) ↔ x < y :=
   coe_strictMono.lt_iff_lt
 #align ereal.coe_lt_coe_iff EReal.coe_lt_coe_iff
+-/
 
 #print EReal.coe_eq_coe_iff /-
 @[simp, norm_cast]
@@ -143,15 +151,19 @@ instance hasCoeENNReal : Coe ℝ≥0∞ EReal :=
 instance : Inhabited EReal :=
   ⟨0⟩
 
+#print EReal.coe_zero /-
 @[simp, norm_cast]
 theorem coe_zero : ((0 : ℝ) : EReal) = 0 :=
   rfl
 #align ereal.coe_zero EReal.coe_zero
+-/
 
+#print EReal.coe_one /-
 @[simp, norm_cast]
 theorem coe_one : ((1 : ℝ) : EReal) = 1 :=
   rfl
 #align ereal.coe_one EReal.coe_one
+-/
 
 #print EReal.rec /-
 /-- A recursor for `ereal` in terms of the coercion.
@@ -188,6 +200,7 @@ protected def mul : EReal → EReal → EReal
 instance : Mul EReal :=
   ⟨EReal.mul⟩
 
+#print EReal.induction₂ /-
 /-- Induct on two ereals by performing case splits on the sign of one whenever the other is
 infinite. -/
 @[elab_as_elim]
@@ -211,6 +224,7 @@ theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_p
     exacts [top_pos y hy, top_zero, top_neg y hy]
   | ⊤, ⊤ => top_top
 #align ereal.induction₂ EReal.induction₂
+-/
 
 /-! `ereal` with its multiplication is a `comm_monoid_with_zero`. However, the proof of
 associativity by hand is extremely painful (with 125 cases...). Instead, we will deduce it later
@@ -264,25 +278,33 @@ def toReal : EReal → ℝ
 #align ereal.to_real EReal.toReal
 -/
 
+#print EReal.toReal_top /-
 @[simp]
 theorem toReal_top : toReal ⊤ = 0 :=
   rfl
 #align ereal.to_real_top EReal.toReal_top
+-/
 
+#print EReal.toReal_bot /-
 @[simp]
 theorem toReal_bot : toReal ⊥ = 0 :=
   rfl
 #align ereal.to_real_bot EReal.toReal_bot
+-/
 
+#print EReal.toReal_zero /-
 @[simp]
 theorem toReal_zero : toReal 0 = 0 :=
   rfl
 #align ereal.to_real_zero EReal.toReal_zero
+-/
 
+#print EReal.toReal_one /-
 @[simp]
 theorem toReal_one : toReal 1 = 1 :=
   rfl
 #align ereal.to_real_one EReal.toReal_one
+-/
 
 #print EReal.toReal_coe /-
 @[simp]
@@ -291,10 +313,12 @@ theorem toReal_coe (x : ℝ) : toReal (x : EReal) = x :=
 #align ereal.to_real_coe EReal.toReal_coe
 -/
 
+#print EReal.bot_lt_coe /-
 @[simp]
 theorem bot_lt_coe (x : ℝ) : (⊥ : EReal) < x :=
   WithBot.bot_lt_coe _
 #align ereal.bot_lt_coe EReal.bot_lt_coe
+-/
 
 #print EReal.coe_ne_bot /-
 @[simp]
@@ -310,10 +334,12 @@ theorem bot_ne_coe (x : ℝ) : (⊥ : EReal) ≠ x :=
 #align ereal.bot_ne_coe EReal.bot_ne_coe
 -/
 
+#print EReal.coe_lt_top /-
 @[simp]
 theorem coe_lt_top (x : ℝ) : (x : EReal) < ⊤ := by apply WithBot.coe_lt_coe.2;
   exact WithTop.coe_lt_top _
 #align ereal.coe_lt_top EReal.coe_lt_top
+-/
 
 #print EReal.coe_ne_top /-
 @[simp]
@@ -329,50 +355,68 @@ theorem top_ne_coe (x : ℝ) : (⊤ : EReal) ≠ x :=
 #align ereal.top_ne_coe EReal.top_ne_coe
 -/
 
+#print EReal.bot_lt_zero /-
 @[simp]
 theorem bot_lt_zero : (⊥ : EReal) < 0 :=
   bot_lt_coe 0
 #align ereal.bot_lt_zero EReal.bot_lt_zero
+-/
 
+#print EReal.bot_ne_zero /-
 @[simp]
 theorem bot_ne_zero : (⊥ : EReal) ≠ 0 :=
   (coe_ne_bot 0).symm
 #align ereal.bot_ne_zero EReal.bot_ne_zero
+-/
 
+#print EReal.zero_ne_bot /-
 @[simp]
 theorem zero_ne_bot : (0 : EReal) ≠ ⊥ :=
   coe_ne_bot 0
 #align ereal.zero_ne_bot EReal.zero_ne_bot
+-/
 
+#print EReal.zero_lt_top /-
 @[simp]
 theorem zero_lt_top : (0 : EReal) < ⊤ :=
   coe_lt_top 0
 #align ereal.zero_lt_top EReal.zero_lt_top
+-/
 
+#print EReal.zero_ne_top /-
 @[simp]
 theorem zero_ne_top : (0 : EReal) ≠ ⊤ :=
   coe_ne_top 0
 #align ereal.zero_ne_top EReal.zero_ne_top
+-/
 
+#print EReal.top_ne_zero /-
 @[simp]
 theorem top_ne_zero : (⊤ : EReal) ≠ 0 :=
   (coe_ne_top 0).symm
 #align ereal.top_ne_zero EReal.top_ne_zero
+-/
 
+#print EReal.coe_add /-
 @[simp, norm_cast]
 theorem coe_add (x y : ℝ) : (↑(x + y) : EReal) = x + y :=
   rfl
 #align ereal.coe_add EReal.coe_add
+-/
 
+#print EReal.coe_mul /-
 @[simp, norm_cast]
 theorem coe_mul (x y : ℝ) : (↑(x * y) : EReal) = x * y :=
   rfl
 #align ereal.coe_mul EReal.coe_mul
+-/
 
+#print EReal.coe_nsmul /-
 @[norm_cast]
 theorem coe_nsmul (n : ℕ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) _ _
 #align ereal.coe_nsmul EReal.coe_nsmul
+-/
 
 @[simp, norm_cast]
 theorem coe_bit0 (x : ℝ) : (↑(bit0 x) : EReal) = bit0 x :=
@@ -384,44 +428,61 @@ theorem coe_bit1 (x : ℝ) : (↑(bit1 x) : EReal) = bit1 x :=
   rfl
 #align ereal.coe_bit1 EReal.coe_bit1
 
+#print EReal.coe_eq_zero /-
 @[simp, norm_cast]
 theorem coe_eq_zero {x : ℝ} : (x : EReal) = 0 ↔ x = 0 :=
   EReal.coe_eq_coe_iff
 #align ereal.coe_eq_zero EReal.coe_eq_zero
+-/
 
+#print EReal.coe_eq_one /-
 @[simp, norm_cast]
 theorem coe_eq_one {x : ℝ} : (x : EReal) = 1 ↔ x = 1 :=
   EReal.coe_eq_coe_iff
 #align ereal.coe_eq_one EReal.coe_eq_one
+-/
 
+#print EReal.coe_ne_zero /-
 theorem coe_ne_zero {x : ℝ} : (x : EReal) ≠ 0 ↔ x ≠ 0 :=
   EReal.coe_ne_coe_iff
 #align ereal.coe_ne_zero EReal.coe_ne_zero
+-/
 
+#print EReal.coe_ne_one /-
 theorem coe_ne_one {x : ℝ} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
   EReal.coe_ne_coe_iff
 #align ereal.coe_ne_one EReal.coe_ne_one
+-/
 
+#print EReal.coe_nonneg /-
 @[simp, norm_cast]
 protected theorem coe_nonneg {x : ℝ} : (0 : EReal) ≤ x ↔ 0 ≤ x :=
   EReal.coe_le_coe_iff
 #align ereal.coe_nonneg EReal.coe_nonneg
+-/
 
+#print EReal.coe_nonpos /-
 @[simp, norm_cast]
 protected theorem coe_nonpos {x : ℝ} : (x : EReal) ≤ 0 ↔ x ≤ 0 :=
   EReal.coe_le_coe_iff
 #align ereal.coe_nonpos EReal.coe_nonpos
+-/
 
+#print EReal.coe_pos /-
 @[simp, norm_cast]
 protected theorem coe_pos {x : ℝ} : (0 : EReal) < x ↔ 0 < x :=
   EReal.coe_lt_coe_iff
 #align ereal.coe_pos EReal.coe_pos
+-/
 
+#print EReal.coe_neg' /-
 @[simp, norm_cast]
 protected theorem coe_neg' {x : ℝ} : (x : EReal) < 0 ↔ x < 0 :=
   EReal.coe_lt_coe_iff
 #align ereal.coe_neg' EReal.coe_neg'
+-/
 
+#print EReal.toReal_le_toReal /-
 theorem toReal_le_toReal {x y : EReal} (h : x ≤ y) (hx : x ≠ ⊥) (hy : y ≠ ⊤) :
     x.toReal ≤ y.toReal := by
   lift x to ℝ
@@ -430,6 +491,7 @@ theorem toReal_le_toReal {x y : EReal} (h : x ≤ y) (hx : x ≠ ⊥) (hy : y 
   · simp [hy, ((bot_lt_iff_ne_bot.2 hx).trans_le h).ne']
   simpa using h
 #align ereal.to_real_le_to_real EReal.toReal_le_toReal
+-/
 
 #print EReal.coe_toReal /-
 theorem coe_toReal {x : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) : (x.toReal : EReal) = x :=
@@ -441,20 +503,25 @@ theorem coe_toReal {x : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) : (x.toReal :
 #align ereal.coe_to_real EReal.coe_toReal
 -/
 
+#print EReal.le_coe_toReal /-
 theorem le_coe_toReal {x : EReal} (h : x ≠ ⊤) : x ≤ x.toReal :=
   by
   by_cases h' : x = ⊥
   · simp only [h', bot_le]
   · simp only [le_refl, coe_to_real h h']
 #align ereal.le_coe_to_real EReal.le_coe_toReal
+-/
 
+#print EReal.coe_toReal_le /-
 theorem coe_toReal_le {x : EReal} (h : x ≠ ⊥) : ↑x.toReal ≤ x :=
   by
   by_cases h' : x = ⊤
   · simp only [h', le_top]
   · simp only [le_refl, coe_to_real h' h]
 #align ereal.coe_to_real_le EReal.coe_toReal_le
+-/
 
+#print EReal.eq_top_iff_forall_lt /-
 theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal) < x :=
   by
   constructor
@@ -463,7 +530,9 @@ theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal)
     intro h
     exact ⟨x.to_real, le_coe_to_real h⟩
 #align ereal.eq_top_iff_forall_lt EReal.eq_top_iff_forall_lt
+-/
 
+#print EReal.eq_bot_iff_forall_lt /-
 theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : EReal) :=
   by
   constructor
@@ -472,6 +541,7 @@ theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : ERe
     intro h
     exact ⟨x.to_real, coe_to_real_le h⟩
 #align ereal.eq_bot_iff_forall_lt EReal.eq_bot_iff_forall_lt
+-/
 
 /-! ### ennreal coercion -/
 
@@ -484,51 +554,67 @@ theorem toReal_coe_ennreal : ∀ {x : ℝ≥0∞}, toReal (x : EReal) = ENNReal.
 #align ereal.to_real_coe_ennreal EReal.toReal_coe_ennreal
 -/
 
+#print EReal.coe_ennreal_ofReal /-
 @[simp]
 theorem coe_ennreal_ofReal {x : ℝ} : (ENNReal.ofReal x : EReal) = max x 0 :=
   rfl
 #align ereal.coe_ennreal_of_real EReal.coe_ennreal_ofReal
+-/
 
+#print EReal.coe_nnreal_eq_coe_real /-
 theorem coe_nnreal_eq_coe_real (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) = (x : ℝ) :=
   rfl
 #align ereal.coe_nnreal_eq_coe_real EReal.coe_nnreal_eq_coe_real
+-/
 
+#print EReal.coe_ennreal_zero /-
 @[simp, norm_cast]
 theorem coe_ennreal_zero : ((0 : ℝ≥0∞) : EReal) = 0 :=
   rfl
 #align ereal.coe_ennreal_zero EReal.coe_ennreal_zero
+-/
 
+#print EReal.coe_ennreal_one /-
 @[simp, norm_cast]
 theorem coe_ennreal_one : ((1 : ℝ≥0∞) : EReal) = 1 :=
   rfl
 #align ereal.coe_ennreal_one EReal.coe_ennreal_one
+-/
 
+#print EReal.coe_ennreal_top /-
 @[simp, norm_cast]
 theorem coe_ennreal_top : ((⊤ : ℝ≥0∞) : EReal) = ⊤ :=
   rfl
 #align ereal.coe_ennreal_top EReal.coe_ennreal_top
+-/
 
+#print EReal.coe_ennreal_eq_top_iff /-
 @[simp]
 theorem coe_ennreal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : EReal) = ⊤ ↔ x = ⊤
   | ⊤ => by simp
   | some x => by simp only [ENNReal.coe_ne_top, iff_false_iff, ENNReal.some_eq_coe]; decide
 #align ereal.coe_ennreal_eq_top_iff EReal.coe_ennreal_eq_top_iff
+-/
 
 #print EReal.coe_nnreal_ne_top /-
 theorem coe_nnreal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) ≠ ⊤ := by decide
 #align ereal.coe_nnreal_ne_top EReal.coe_nnreal_ne_top
 -/
 
+#print EReal.coe_nnreal_lt_top /-
 @[simp]
 theorem coe_nnreal_lt_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) < ⊤ := by decide
 #align ereal.coe_nnreal_lt_top EReal.coe_nnreal_lt_top
+-/
 
+#print EReal.coe_ennreal_strictMono /-
 theorem coe_ennreal_strictMono : StrictMono (coe : ℝ≥0∞ → EReal)
   | ⊤, ⊤ => by simp
   | some x, ⊤ => by simp
   | ⊤, some y => by simp
   | some x, some y => by simp [coe_nnreal_eq_coe_real]
 #align ereal.coe_ennreal_strict_mono EReal.coe_ennreal_strictMono
+-/
 
 #print EReal.coe_ennreal_injective /-
 theorem coe_ennreal_injective : Injective (coe : ℝ≥0∞ → EReal) :=
@@ -536,15 +622,19 @@ theorem coe_ennreal_injective : Injective (coe : ℝ≥0∞ → EReal) :=
 #align ereal.coe_ennreal_injective EReal.coe_ennreal_injective
 -/
 
+#print EReal.coe_ennreal_le_coe_ennreal_iff /-
 @[simp, norm_cast]
 theorem coe_ennreal_le_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≤ (y : EReal) ↔ x ≤ y :=
   coe_ennreal_strictMono.le_iff_le
 #align ereal.coe_ennreal_le_coe_ennreal_iff EReal.coe_ennreal_le_coe_ennreal_iff
+-/
 
+#print EReal.coe_ennreal_lt_coe_ennreal_iff /-
 @[simp, norm_cast]
 theorem coe_ennreal_lt_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) < (y : EReal) ↔ x < y :=
   coe_ennreal_strictMono.lt_iff_lt
 #align ereal.coe_ennreal_lt_coe_ennreal_iff EReal.coe_ennreal_lt_coe_ennreal_iff
+-/
 
 #print EReal.coe_ennreal_eq_coe_ennreal_iff /-
 @[simp, norm_cast]
@@ -559,39 +649,53 @@ theorem coe_ennreal_ne_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≠ (y :
 #align ereal.coe_ennreal_ne_coe_ennreal_iff EReal.coe_ennreal_ne_coe_ennreal_iff
 -/
 
+#print EReal.coe_ennreal_eq_zero /-
 @[simp, norm_cast]
 theorem coe_ennreal_eq_zero {x : ℝ≥0∞} : (x : EReal) = 0 ↔ x = 0 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_zero]
 #align ereal.coe_ennreal_eq_zero EReal.coe_ennreal_eq_zero
+-/
 
+#print EReal.coe_ennreal_eq_one /-
 @[simp, norm_cast]
 theorem coe_ennreal_eq_one {x : ℝ≥0∞} : (x : EReal) = 1 ↔ x = 1 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_one]
 #align ereal.coe_ennreal_eq_one EReal.coe_ennreal_eq_one
+-/
 
+#print EReal.coe_ennreal_ne_zero /-
 @[norm_cast]
 theorem coe_ennreal_ne_zero {x : ℝ≥0∞} : (x : EReal) ≠ 0 ↔ x ≠ 0 :=
   coe_ennreal_eq_zero.Not
 #align ereal.coe_ennreal_ne_zero EReal.coe_ennreal_ne_zero
+-/
 
+#print EReal.coe_ennreal_ne_one /-
 @[norm_cast]
 theorem coe_ennreal_ne_one {x : ℝ≥0∞} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
   coe_ennreal_eq_one.Not
 #align ereal.coe_ennreal_ne_one EReal.coe_ennreal_ne_one
+-/
 
+#print EReal.coe_ennreal_nonneg /-
 theorem coe_ennreal_nonneg (x : ℝ≥0∞) : (0 : EReal) ≤ x :=
   coe_ennreal_le_coe_ennreal_iff.2 (zero_le x)
 #align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonneg
+-/
 
+#print EReal.coe_ennreal_pos /-
 @[simp, norm_cast]
 theorem coe_ennreal_pos {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
   rw [← coe_ennreal_zero, coe_ennreal_lt_coe_ennreal_iff]
 #align ereal.coe_ennreal_pos EReal.coe_ennreal_pos
+-/
 
+#print EReal.bot_lt_coe_ennreal /-
 @[simp]
 theorem bot_lt_coe_ennreal (x : ℝ≥0∞) : (⊥ : EReal) < x :=
   (bot_lt_coe 0).trans_le (coe_ennreal_nonneg _)
 #align ereal.bot_lt_coe_ennreal EReal.bot_lt_coe_ennreal
+-/
 
 #print EReal.coe_ennreal_ne_bot /-
 @[simp]
@@ -600,11 +704,14 @@ theorem coe_ennreal_ne_bot (x : ℝ≥0∞) : (x : EReal) ≠ ⊥ :=
 #align ereal.coe_ennreal_ne_bot EReal.coe_ennreal_ne_bot
 -/
 
+#print EReal.coe_ennreal_add /-
 @[simp, norm_cast]
 theorem coe_ennreal_add (x y : ENNReal) : ((x + y : ℝ≥0∞) : EReal) = x + y := by
   cases x <;> cases y <;> rfl
 #align ereal.coe_ennreal_add EReal.coe_ennreal_add
+-/
 
+#print EReal.coe_ennreal_mul /-
 @[simp, norm_cast]
 theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) = x * y
   | ⊤, ⊤ => rfl
@@ -625,11 +732,14 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) =
   | (x : ℝ≥0), (y : ℝ≥0) => by
     simp only [← ENNReal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, EReal.coe_mul]
 #align ereal.coe_ennreal_mul EReal.coe_ennreal_mul
+-/
 
+#print EReal.coe_ennreal_nsmul /-
 @[norm_cast]
 theorem coe_ennreal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_ennreal_zero, coe_ennreal_add⟩ : ℝ≥0∞ →+ EReal) _ _
 #align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmul
+-/
 
 @[simp, norm_cast]
 theorem coe_eNNReal_bit0 (x : ℝ≥0∞) : (↑(bit0 x) : EReal) = bit0 x :=
@@ -644,6 +754,7 @@ theorem coe_eNNReal_bit1 (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
 /-! ### Order -/
 
 
+#print EReal.exists_rat_btwn_of_lt /-
 theorem exists_rat_btwn_of_lt :
     ∀ {a b : EReal} (hab : a < b), ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b
   | ⊤, b, h => (not_top_lt h).elim
@@ -658,19 +769,25 @@ theorem exists_rat_btwn_of_lt :
     ⟨b, bot_lt_coe _, by simpa using hab⟩
   | ⊥, ⊤, h => ⟨0, bot_lt_coe _, coe_lt_top _⟩
 #align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_lt
+-/
 
+#print EReal.lt_iff_exists_rat_btwn /-
 theorem lt_iff_exists_rat_btwn {a b : EReal} :
     a < b ↔ ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b :=
   ⟨fun hab => exists_rat_btwn_of_lt hab, fun ⟨x, ax, xb⟩ => ax.trans xb⟩
 #align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwn
+-/
 
+#print EReal.lt_iff_exists_real_btwn /-
 theorem lt_iff_exists_real_btwn {a b : EReal} : a < b ↔ ∃ x : ℝ, a < x ∧ (x : EReal) < b :=
   ⟨fun hab =>
     let ⟨x, ax, xb⟩ := exists_rat_btwn_of_lt hab
     ⟨(x : ℝ), ax, xb⟩,
     fun ⟨x, ax, xb⟩ => ax.trans xb⟩
 #align ereal.lt_iff_exists_real_btwn EReal.lt_iff_exists_real_btwn
+-/
 
+#print EReal.neTopBotEquivReal /-
 /-- The set of numbers in `ereal` that are not equal to `±∞` is equivalent to `ℝ`. -/
 def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ
     where
@@ -683,35 +800,47 @@ def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ
       · simp
   right_inv x := by simp
 #align ereal.ne_top_bot_equiv_real EReal.neTopBotEquivReal
+-/
 
 /-! ### Addition -/
 
 
+#print EReal.add_bot /-
 @[simp]
 theorem add_bot (x : EReal) : x + ⊥ = ⊥ :=
   WithBot.add_bot _
 #align ereal.add_bot EReal.add_bot
+-/
 
+#print EReal.bot_add /-
 @[simp]
 theorem bot_add (x : EReal) : ⊥ + x = ⊥ :=
   WithBot.bot_add _
 #align ereal.bot_add EReal.bot_add
+-/
 
+#print EReal.top_add_top /-
 @[simp]
 theorem top_add_top : (⊤ : EReal) + ⊤ = ⊤ :=
   rfl
 #align ereal.top_add_top EReal.top_add_top
+-/
 
+#print EReal.top_add_coe /-
 @[simp]
 theorem top_add_coe (x : ℝ) : (⊤ : EReal) + x = ⊤ :=
   rfl
 #align ereal.top_add_coe EReal.top_add_coe
+-/
 
+#print EReal.coe_add_top /-
 @[simp]
 theorem coe_add_top (x : ℝ) : (x : EReal) + ⊤ = ⊤ :=
   rfl
 #align ereal.coe_add_top EReal.coe_add_top
+-/
 
+#print EReal.toReal_add /-
 theorem toReal_add :
     ∀ {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥),
       toReal (x + y) = toReal x + toReal y
@@ -721,7 +850,9 @@ theorem toReal_add :
   | x, ⊥, hx, h'x, hy, h'y => (h'y rfl).elim
   | (x : ℝ), (y : ℝ), hx, h'x, hy, h'y => by simp [← EReal.coe_add]
 #align ereal.to_real_add EReal.toReal_add
+-/
 
+#print EReal.add_lt_add_right_coe /-
 theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z :=
   by
   induction x using EReal.rec <;> induction y using EReal.rec
@@ -735,7 +866,9 @@ theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
 #align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coe
+-/
 
+#print EReal.add_lt_add_of_lt_of_le /-
 theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x + z < y + t := by
   induction z using EReal.rec
@@ -746,11 +879,15 @@ theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz
       _ ≤ y + t := add_le_add le_rfl h'
   · exact (ht (top_le_iff.1 h')).elim
 #align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_le
+-/
 
+#print EReal.add_lt_add_left_coe /-
 theorem add_lt_add_left_coe {x y : EReal} (h : x < y) (z : ℝ) : (z : EReal) + x < z + y := by
   simpa [add_comm] using add_lt_add_right_coe h z
 #align ereal.add_lt_add_left_coe EReal.add_lt_add_left_coe
+-/
 
+#print EReal.add_lt_add /-
 theorem add_lt_add {x y z t : EReal} (h1 : x < y) (h2 : z < t) : x + z < y + t :=
   by
   induction x using EReal.rec
@@ -761,20 +898,27 @@ theorem add_lt_add {x y z t : EReal} (h1 : x < y) (h2 : z < t) : x + z < y + t :
       _ ≤ y + t := add_le_add h1.le le_rfl
   · exact (lt_irrefl _ (h1.trans_le le_top)).elim
 #align ereal.add_lt_add EReal.add_lt_add
+-/
 
+#print EReal.add_eq_bot_iff /-
 @[simp]
 theorem add_eq_bot_iff {x y : EReal} : x + y = ⊥ ↔ x = ⊥ ∨ y = ⊥ := by
   induction x using EReal.rec <;> induction y using EReal.rec <;> simp [← EReal.coe_add]
 #align ereal.add_eq_bot_iff EReal.add_eq_bot_iff
+-/
 
+#print EReal.bot_lt_add_iff /-
 @[simp]
 theorem bot_lt_add_iff {x y : EReal} : ⊥ < x + y ↔ ⊥ < x ∧ ⊥ < y := by
   simp [bot_lt_iff_ne_bot, not_or]
 #align ereal.bot_lt_add_iff EReal.bot_lt_add_iff
+-/
 
+#print EReal.add_lt_top /-
 theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ := by
   rw [← EReal.top_add_top]; exact EReal.add_lt_add hx.lt_top hy.lt_top
 #align ereal.add_lt_top EReal.add_lt_top
+-/
 
 /-! ### Negation -/
 
@@ -796,10 +940,12 @@ instance : SubNegZeroMonoid EReal :=
 
 /- warning: ereal.neg_def clashes with ereal.coe_neg -> EReal.coe_neg
 Case conversion may be inaccurate. Consider using '#align ereal.neg_def EReal.coe_negₓ'. -/
+#print EReal.coe_neg /-
 @[norm_cast]
 protected theorem coe_neg (x : ℝ) : ((-x : ℝ) : EReal) = -x :=
   rfl
 #align ereal.neg_def EReal.coe_neg
+-/
 
 #print EReal.neg_top /-
 @[simp]
@@ -815,20 +961,26 @@ theorem neg_bot : -(⊥ : EReal) = ⊤ :=
 #align ereal.neg_bot EReal.neg_bot
 -/
 
+#print EReal.coe_neg /-
 @[simp, norm_cast]
 theorem coe_neg (x : ℝ) : (↑(-x) : EReal) = -x :=
   rfl
 #align ereal.coe_neg EReal.coe_neg
+-/
 
+#print EReal.coe_sub /-
 @[simp, norm_cast]
 theorem coe_sub (x y : ℝ) : (↑(x - y) : EReal) = x - y :=
   rfl
 #align ereal.coe_sub EReal.coe_sub
+-/
 
+#print EReal.coe_zsmul /-
 @[norm_cast]
 theorem coe_zsmul (n : ℤ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
   map_zsmul' (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) coe_neg _ _
 #align ereal.coe_zsmul EReal.coe_zsmul
+-/
 
 instance : InvolutiveNeg EReal where
   neg := Neg.neg
@@ -838,12 +990,14 @@ instance : InvolutiveNeg EReal where
     | ⊤ => rfl
     | (a : ℝ) => by norm_cast; simp [neg_neg a]
 
+#print EReal.toReal_neg /-
 @[simp]
 theorem toReal_neg : ∀ {a : EReal}, toReal (-a) = -toReal a
   | ⊤ => by simp
   | ⊥ => by simp
   | (x : ℝ) => rfl
 #align ereal.to_real_neg EReal.toReal_neg
+-/
 
 #print EReal.neg_eq_top_iff /-
 @[simp]
@@ -859,10 +1013,13 @@ theorem neg_eq_bot_iff {x : EReal} : -x = ⊥ ↔ x = ⊤ :=
 #align ereal.neg_eq_bot_iff EReal.neg_eq_bot_iff
 -/
 
+#print EReal.neg_eq_zero_iff /-
 @[simp]
 theorem neg_eq_zero_iff {x : EReal} : -x = 0 ↔ x = 0 := by rw [neg_eq_iff_eq_neg, neg_zero]
 #align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iff
+-/
 
+#print EReal.neg_le_of_neg_le /-
 /-- if `-a ≤ b` then `-b ≤ a` on `ereal`. -/
 protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   by
@@ -877,21 +1034,29 @@ protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   · exact le_top
   · exact le_top
 #align ereal.neg_le_of_neg_le EReal.neg_le_of_neg_le
+-/
 
+#print EReal.neg_le /-
 /-- `-a ≤ b ↔ -b ≤ a` on `ereal`. -/
 protected theorem neg_le {a b : EReal} : -a ≤ b ↔ -b ≤ a :=
   ⟨EReal.neg_le_of_neg_le, EReal.neg_le_of_neg_le⟩
 #align ereal.neg_le EReal.neg_le
+-/
 
+#print EReal.le_neg_of_le_neg /-
 /-- `a ≤ -b → b ≤ -a` on ereal -/
 theorem le_neg_of_le_neg {a b : EReal} (h : a ≤ -b) : b ≤ -a := by
   rwa [← neg_neg b, EReal.neg_le, neg_neg]
 #align ereal.le_neg_of_le_neg EReal.le_neg_of_le_neg
+-/
 
+#print EReal.neg_le_neg_iff /-
 @[simp]
 theorem neg_le_neg_iff {a b : EReal} : -a ≤ -b ↔ b ≤ a := by conv_lhs => rw [EReal.neg_le, neg_neg]
 #align ereal.neg_le_neg_iff EReal.neg_le_neg_iff
+-/
 
+#print EReal.negOrderIso /-
 /-- Negation as an order reversing isomorphism on `ereal`. -/
 def negOrderIso : EReal ≃o ERealᵒᵈ :=
   { Equiv.neg EReal with
@@ -899,7 +1064,9 @@ def negOrderIso : EReal ≃o ERealᵒᵈ :=
     invFun := fun x => -x.ofDual
     map_rel_iff' := fun x y => neg_le_neg_iff }
 #align ereal.neg_order_iso EReal.negOrderIso
+-/
 
+#print EReal.neg_lt_of_neg_lt /-
 theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   by
   apply lt_of_le_of_ne (EReal.neg_le_of_neg_le h.le)
@@ -907,10 +1074,13 @@ theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   rw [← H, neg_neg] at h 
   exact lt_irrefl _ h
 #align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_lt
+-/
 
+#print EReal.neg_lt_iff_neg_lt /-
 theorem neg_lt_iff_neg_lt {a b : EReal} : -a < b ↔ -b < a :=
   ⟨fun h => EReal.neg_lt_of_neg_lt h, fun h => EReal.neg_lt_of_neg_lt h⟩
 #align ereal.neg_lt_iff_neg_lt EReal.neg_lt_iff_neg_lt
+-/
 
 /-!
 ### Subtraction
@@ -921,40 +1091,55 @@ registered on `ereal`, beyond `sub_neg_zero_monoid`, because of this bad behavio
 -/
 
 
+#print EReal.bot_sub /-
 @[simp]
 theorem bot_sub (x : EReal) : ⊥ - x = ⊥ :=
   bot_add x
 #align ereal.bot_sub EReal.bot_sub
+-/
 
+#print EReal.sub_top /-
 @[simp]
 theorem sub_top (x : EReal) : x - ⊤ = ⊥ :=
   add_bot x
 #align ereal.sub_top EReal.sub_top
+-/
 
+#print EReal.top_sub_bot /-
 @[simp]
 theorem top_sub_bot : (⊤ : EReal) - ⊥ = ⊤ :=
   rfl
 #align ereal.top_sub_bot EReal.top_sub_bot
+-/
 
+#print EReal.top_sub_coe /-
 @[simp]
 theorem top_sub_coe (x : ℝ) : (⊤ : EReal) - x = ⊤ :=
   rfl
 #align ereal.top_sub_coe EReal.top_sub_coe
+-/
 
+#print EReal.coe_sub_bot /-
 @[simp]
 theorem coe_sub_bot (x : ℝ) : (x : EReal) - ⊥ = ⊤ :=
   rfl
 #align ereal.coe_sub_bot EReal.coe_sub_bot
+-/
 
+#print EReal.sub_le_sub /-
 theorem sub_le_sub {x y z t : EReal} (h : x ≤ y) (h' : t ≤ z) : x - z ≤ y - t :=
   add_le_add h (neg_le_neg_iff.2 h')
 #align ereal.sub_le_sub EReal.sub_le_sub
+-/
 
+#print EReal.sub_lt_sub_of_lt_of_le /-
 theorem sub_lt_sub_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x - t < y - z :=
   add_lt_add_of_lt_of_le h (neg_le_neg_iff.2 h') (by simp [ht]) (by simp [hz])
 #align ereal.sub_lt_sub_of_lt_of_le EReal.sub_lt_sub_of_lt_of_le
+-/
 
+#print EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal /-
 theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
     (x : EReal) = Real.toNNReal x - Real.toNNReal (-x) :=
   by
@@ -970,7 +1155,9 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
       coe_ennreal_zero, coe_coe]
     rfl
 #align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal
+-/
 
+#print EReal.toReal_sub /-
 theorem toReal_sub {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥) :
     toReal (x - y) = toReal x - toReal y :=
   by
@@ -979,6 +1166,7 @@ theorem toReal_sub {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠
   · simpa using hy
   · simpa using h'y
 #align ereal.to_real_sub EReal.toReal_sub
+-/
 
 /-! ### Multiplication -/
 
@@ -1020,6 +1208,7 @@ theorem bot_mul_bot : (⊥ : EReal) * ⊥ = ⊤ :=
 #align ereal.bot_mul_bot EReal.bot_mul_bot
 -/
 
+#print EReal.mul_top_of_pos /-
 theorem mul_top_of_pos {x : EReal} (h : 0 < x) : x * ⊤ = ⊤ :=
   by
   induction x using EReal.rec
@@ -1027,7 +1216,9 @@ theorem mul_top_of_pos {x : EReal} (h : 0 < x) : x * ⊤ = ⊤ :=
   · simp only [Mul.mul, EReal.mul, EReal.coe_pos.1 h, if_true]
   · rfl
 #align ereal.mul_top_of_pos EReal.mul_top_of_pos
+-/
 
+#print EReal.mul_top_of_neg /-
 theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
   by
   induction x using EReal.rec
@@ -1036,31 +1227,45 @@ theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
     simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
 #align ereal.mul_top_of_neg EReal.mul_top_of_neg
+-/
 
+#print EReal.top_mul_of_pos /-
 theorem top_mul_of_pos {x : EReal} (h : 0 < x) : ⊤ * x = ⊤ := by rw [EReal.mul_comm];
   exact mul_top_of_pos h
 #align ereal.top_mul_of_pos EReal.top_mul_of_pos
+-/
 
+#print EReal.top_mul_of_neg /-
 theorem top_mul_of_neg {x : EReal} (h : x < 0) : ⊤ * x = ⊥ := by rw [EReal.mul_comm];
   exact mul_top_of_neg h
 #align ereal.top_mul_of_neg EReal.top_mul_of_neg
+-/
 
+#print EReal.coe_mul_top_of_pos /-
 theorem coe_mul_top_of_pos {x : ℝ} (h : 0 < x) : (x : EReal) * ⊤ = ⊤ :=
   mul_top_of_pos (EReal.coe_pos.2 h)
 #align ereal.coe_mul_top_of_pos EReal.coe_mul_top_of_pos
+-/
 
+#print EReal.coe_mul_top_of_neg /-
 theorem coe_mul_top_of_neg {x : ℝ} (h : x < 0) : (x : EReal) * ⊤ = ⊥ :=
   mul_top_of_neg (EReal.coe_neg'.2 h)
 #align ereal.coe_mul_top_of_neg EReal.coe_mul_top_of_neg
+-/
 
+#print EReal.top_mul_coe_of_pos /-
 theorem top_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊤ : EReal) * x = ⊤ :=
   top_mul_of_pos (EReal.coe_pos.2 h)
 #align ereal.top_mul_coe_of_pos EReal.top_mul_coe_of_pos
+-/
 
+#print EReal.top_mul_coe_of_neg /-
 theorem top_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊤ : EReal) * x = ⊥ :=
   top_mul_of_neg (EReal.coe_neg'.2 h)
 #align ereal.top_mul_coe_of_neg EReal.top_mul_coe_of_neg
+-/
 
+#print EReal.mul_bot_of_pos /-
 theorem mul_bot_of_pos {x : EReal} (h : 0 < x) : x * ⊥ = ⊥ :=
   by
   induction x using EReal.rec
@@ -1068,7 +1273,9 @@ theorem mul_bot_of_pos {x : EReal} (h : 0 < x) : x * ⊥ = ⊥ :=
   · simp only [Mul.mul, EReal.mul, EReal.coe_pos.1 h, if_true]
   · rfl
 #align ereal.mul_bot_of_pos EReal.mul_bot_of_pos
+-/
 
+#print EReal.mul_bot_of_neg /-
 theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
   by
   induction x using EReal.rec
@@ -1077,32 +1284,46 @@ theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
     simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
 #align ereal.mul_bot_of_neg EReal.mul_bot_of_neg
+-/
 
+#print EReal.bot_mul_of_pos /-
 theorem bot_mul_of_pos {x : EReal} (h : 0 < x) : ⊥ * x = ⊥ := by rw [EReal.mul_comm];
   exact mul_bot_of_pos h
 #align ereal.bot_mul_of_pos EReal.bot_mul_of_pos
+-/
 
+#print EReal.bot_mul_of_neg /-
 theorem bot_mul_of_neg {x : EReal} (h : x < 0) : ⊥ * x = ⊤ := by rw [EReal.mul_comm];
   exact mul_bot_of_neg h
 #align ereal.bot_mul_of_neg EReal.bot_mul_of_neg
+-/
 
+#print EReal.coe_mul_bot_of_pos /-
 theorem coe_mul_bot_of_pos {x : ℝ} (h : 0 < x) : (x : EReal) * ⊥ = ⊥ :=
   mul_bot_of_pos (EReal.coe_pos.2 h)
 #align ereal.coe_mul_bot_of_pos EReal.coe_mul_bot_of_pos
+-/
 
+#print EReal.coe_mul_bot_of_neg /-
 theorem coe_mul_bot_of_neg {x : ℝ} (h : x < 0) : (x : EReal) * ⊥ = ⊤ :=
   mul_bot_of_neg (EReal.coe_neg'.2 h)
 #align ereal.coe_mul_bot_of_neg EReal.coe_mul_bot_of_neg
+-/
 
+#print EReal.bot_mul_coe_of_pos /-
 theorem bot_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊥ : EReal) * x = ⊥ :=
   bot_mul_of_pos (EReal.coe_pos.2 h)
 #align ereal.bot_mul_coe_of_pos EReal.bot_mul_coe_of_pos
+-/
 
+#print EReal.bot_mul_coe_of_neg /-
 theorem bot_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊥ : EReal) * x = ⊤ :=
   bot_mul_of_neg (EReal.coe_neg'.2 h)
 #align ereal.bot_mul_coe_of_neg EReal.bot_mul_coe_of_neg
+-/
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+#print EReal.toReal_mul /-
 theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
   by
   -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
@@ -1132,6 +1353,7 @@ theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
   case bot_neg y hy =>
     rw [to_real_bot, to_real_coe, bot_mul_coe_of_neg hy, to_real_top, MulZeroClass.zero_mul]
 #align ereal.to_real_mul EReal.toReal_mul
+-/
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 #print EReal.neg_mul /-
@@ -1177,24 +1399,33 @@ protected def abs : EReal → ℝ≥0∞
 #align ereal.abs EReal.abs
 -/
 
+#print EReal.abs_top /-
 @[simp]
 theorem abs_top : (⊤ : EReal).abs = ⊤ :=
   rfl
 #align ereal.abs_top EReal.abs_top
+-/
 
+#print EReal.abs_bot /-
 @[simp]
 theorem abs_bot : (⊥ : EReal).abs = ⊤ :=
   rfl
 #align ereal.abs_bot EReal.abs_bot
+-/
 
+#print EReal.abs_def /-
 theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal (|x|) :=
   rfl
 #align ereal.abs_def EReal.abs_def
+-/
 
+#print EReal.abs_coe_lt_top /-
 theorem abs_coe_lt_top (x : ℝ) : (x : EReal).abs < ⊤ :=
   ENNReal.ofReal_lt_top
 #align ereal.abs_coe_lt_top EReal.abs_coe_lt_top
+-/
 
+#print EReal.abs_eq_zero_iff /-
 @[simp]
 theorem abs_eq_zero_iff {x : EReal} : x.abs = 0 ↔ x = 0 :=
   by
@@ -1203,17 +1434,23 @@ theorem abs_eq_zero_iff {x : EReal} : x.abs = 0 ↔ x = 0 :=
   · simp only [EReal.abs, coe_eq_zero, ENNReal.ofReal_eq_zero, abs_nonpos_iff]
   · simp only [abs_top, ENNReal.top_ne_zero, top_ne_zero]
 #align ereal.abs_eq_zero_iff EReal.abs_eq_zero_iff
+-/
 
+#print EReal.abs_zero /-
 @[simp]
 theorem abs_zero : (0 : EReal).abs = 0 := by rw [abs_eq_zero_iff]
 #align ereal.abs_zero EReal.abs_zero
+-/
 
+#print EReal.coe_abs /-
 @[simp]
 theorem coe_abs (x : ℝ) : ((x : EReal).abs : EReal) = (|x| : ℝ) := by
   rcases lt_trichotomy 0 x with (hx | rfl | hx) <;> simp [abs_def]
 #align ereal.coe_abs EReal.coe_abs
+-/
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+#print EReal.abs_mul /-
 @[simp]
 theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
   by
@@ -1249,6 +1486,7 @@ theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
     simp only [bot_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
       coe_eq_zero, not_false_iff, abs_top]
 #align ereal.abs_mul EReal.abs_mul
+-/
 
 /-! ### Sign -/
 
@@ -1267,12 +1505,15 @@ theorem sign_bot : SignType.sign (⊥ : EReal) = -1 :=
 #align ereal.sign_bot EReal.sign_bot
 -/
 
+#print EReal.sign_coe /-
 @[simp]
 theorem sign_coe (x : ℝ) : SignType.sign (x : EReal) = SignType.sign x := by
   simp only [SignType.sign, OrderHom.coe_fun_mk, EReal.coe_pos, EReal.coe_neg']
 #align ereal.sign_coe EReal.sign_coe
+-/
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
+#print EReal.sign_mul /-
 @[simp]
 theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignType.sign y :=
   by
@@ -1296,7 +1537,9 @@ theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignT
   case bot_neg y hy =>
     simp_rw [bot_mul_coe_of_neg hy, sign_coe, sign_neg hy, sign_top, sign_bot, neg_one_mul, neg_neg]
 #align ereal.sign_mul EReal.sign_mul
+-/
 
+#print EReal.sign_mul_abs /-
 theorem sign_mul_abs (x : EReal) : (SignType.sign x * x.abs : EReal) = x :=
   by
   induction x using EReal.rec
@@ -1307,7 +1550,9 @@ theorem sign_mul_abs (x : EReal) : (SignType.sign x * x.abs : EReal) = x :=
     · simp [sign_neg hx, abs_of_neg hx]
   · simp
 #align ereal.sign_mul_abs EReal.sign_mul_abs
+-/
 
+#print EReal.sign_eq_and_abs_eq_iff_eq /-
 theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
     x.abs = y.abs ∧ SignType.sign x = SignType.sign y ↔ x = y :=
   by
@@ -1315,7 +1560,9 @@ theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
   · rintro ⟨habs, hsign⟩; rw [← x.sign_mul_abs, ← y.sign_mul_abs, habs, hsign]
   · rintro rfl; simp only [eq_self_iff_true, and_self_iff]
 #align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eq
+-/
 
+#print EReal.le_iff_sign /-
 theorem le_iff_sign {x y : EReal} :
     x ≤ y ↔
       SignType.sign x < SignType.sign y ∨
@@ -1335,6 +1582,7 @@ theorem le_iff_sign {x y : EReal} :
   · rintro (h | h | h | h); · exact (sign.monotone.reflect_lt h).le
     all_goals rw [← x.sign_mul_abs, ← y.sign_mul_abs]; simp [h]
 #align ereal.le_iff_sign EReal.le_iff_sign
+-/
 
 instance : CommMonoidWithZero EReal :=
   { EReal.hasMul, EReal.hasOne, EReal.hasZero,
@@ -1366,15 +1614,19 @@ instance : PosMulReflectLT EReal :=
 instance : MulPosReflectLT EReal :=
   MulPosMono.toMulPosReflectLT
 
+#print EReal.coe_pow /-
 @[simp, norm_cast]
 theorem coe_pow (x : ℝ) (n : ℕ) : (↑(x ^ n) : EReal) = x ^ n :=
   map_pow (⟨coe, coe_one, coe_mul⟩ : ℝ →* EReal) _ _
 #align ereal.coe_pow EReal.coe_pow
+-/
 
+#print EReal.coe_ennreal_pow /-
 @[simp, norm_cast]
 theorem coe_ennreal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : EReal) = x ^ n :=
   map_pow (⟨coe, coe_ennreal_one, coe_ennreal_mul⟩ : ℝ≥0∞ →* EReal) _ _
 #align ereal.coe_ennreal_pow EReal.coe_ennreal_pow
+-/
 
 end EReal
 
Diff
@@ -744,7 +744,6 @@ theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz
     calc
       x + z < y + z := add_lt_add_right_coe h _
       _ ≤ y + t := add_le_add le_rfl h'
-      
   · exact (ht (top_le_iff.1 h')).elim
 #align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_le
 
@@ -760,7 +759,6 @@ theorem add_lt_add {x y z t : EReal} (h1 : x < y) (h2 : z < t) : x + z < y + t :
     calc
       (x : EReal) + z < x + t := add_lt_add_left_coe h2 _
       _ ≤ y + t := add_le_add h1.le le_rfl
-      
   · exact (lt_irrefl _ (h1.trans_le le_top)).elim
 #align ereal.add_lt_add EReal.add_lt_add
 
Diff
@@ -729,7 +729,7 @@ theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z
   · simp only [← coe_add, bot_add, bot_lt_coe]
   · simp
   · exact (lt_irrefl _ (h.trans (bot_lt_coe x))).elim
-  · norm_cast  at h ⊢; exact add_lt_add_right h _
+  · norm_cast at h ⊢; exact add_lt_add_right h _
   · simp only [← coe_add, top_add_coe, coe_lt_top]
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
@@ -873,7 +873,7 @@ protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   · simpa only [coe_ne_top, neg_bot, top_le_iff] using h
   · exact bot_le
   · simpa only [coe_ne_top, le_bot_iff] using h
-  · norm_cast  at h ⊢; exact neg_le.1 h
+  · norm_cast at h ⊢; exact neg_le.1 h
   · exact bot_le
   · exact le_top
   · exact le_top
Diff
@@ -65,8 +65,9 @@ noncomputable section
 #print EReal /-
 /-- ereal : The type `[-∞, ∞]` -/
 def EReal :=
-  WithBot (WithTop ℝ)deriving Bot, Zero, One, Nontrivial, AddMonoid, SupSet, InfSet,
-  CompleteLinearOrder, LinearOrderedAddCommMonoid, ZeroLEOneClass
+  WithBot (WithTop ℝ)
+deriving Bot, Zero, One, Nontrivial, AddMonoid, SupSet, InfSet, CompleteLinearOrder,
+  LinearOrderedAddCommMonoid, ZeroLEOneClass
 #align ereal EReal
 -/
 
@@ -198,16 +199,16 @@ theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_p
     (bot_zero : P ⊥ 0) (bot_neg : ∀ x : ℝ, x < 0 → P ⊥ x) (bot_bot : P ⊥ ⊥) : ∀ x y, P x y
   | ⊥, ⊥ => bot_bot
   | ⊥, (y : ℝ) => by rcases lt_trichotomy 0 y with (hy | rfl | hy);
-    exacts[bot_pos y hy, bot_zero, bot_neg y hy]
+    exacts [bot_pos y hy, bot_zero, bot_neg y hy]
   | ⊥, ⊤ => bot_top
   | (x : ℝ), ⊥ => by rcases lt_trichotomy 0 x with (hx | rfl | hx);
-    exacts[pos_bot x hx, zero_bot, neg_bot x hx]
+    exacts [pos_bot x hx, zero_bot, neg_bot x hx]
   | (x : ℝ), (y : ℝ) => coe_coe _ _
   | (x : ℝ), ⊤ => by rcases lt_trichotomy 0 x with (hx | rfl | hx);
-    exacts[pos_top x hx, zero_top, neg_top x hx]
+    exacts [pos_top x hx, zero_top, neg_top x hx]
   | ⊤, ⊥ => top_bot
   | ⊤, (y : ℝ) => by rcases lt_trichotomy 0 y with (hy | rfl | hy);
-    exacts[top_pos y hy, top_zero, top_neg y hy]
+    exacts [top_pos y hy, top_zero, top_neg y hy]
   | ⊤, ⊤ => top_top
 #align ereal.induction₂ EReal.induction₂
 
@@ -611,14 +612,14 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) =
     rw [ENNReal.top_mul']; split_ifs
     · simp only [h, coe_ennreal_zero, MulZeroClass.mul_zero]
     · have A : (0 : ℝ) < y := by
-        simp only [ENNReal.coe_eq_zero] at h
+        simp only [ENNReal.coe_eq_zero] at h 
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), ⊤ => by
     rw [ENNReal.mul_top']; split_ifs
     · simp only [h, coe_ennreal_zero, MulZeroClass.zero_mul]
     · have A : (0 : ℝ) < x := by
-        simp only [ENNReal.coe_eq_zero] at h
+        simp only [ENNReal.coe_eq_zero] at h 
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), (y : ℝ≥0) => by
@@ -728,7 +729,7 @@ theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z
   · simp only [← coe_add, bot_add, bot_lt_coe]
   · simp
   · exact (lt_irrefl _ (h.trans (bot_lt_coe x))).elim
-  · norm_cast  at h⊢; exact add_lt_add_right h _
+  · norm_cast  at h ⊢; exact add_lt_add_right h _
   · simp only [← coe_add, top_add_coe, coe_lt_top]
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
@@ -872,7 +873,7 @@ protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   · simpa only [coe_ne_top, neg_bot, top_le_iff] using h
   · exact bot_le
   · simpa only [coe_ne_top, le_bot_iff] using h
-  · norm_cast  at h⊢; exact neg_le.1 h
+  · norm_cast  at h ⊢; exact neg_le.1 h
   · exact bot_le
   · exact le_top
   · exact le_top
@@ -905,7 +906,7 @@ theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   by
   apply lt_of_le_of_ne (EReal.neg_le_of_neg_le h.le)
   intro H
-  rw [← H, neg_neg] at h
+  rw [← H, neg_neg] at h 
   exact lt_irrefl _ h
 #align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_lt
 
@@ -1033,7 +1034,7 @@ theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
   by
   induction x using EReal.rec
   · rfl
-  · simp only [EReal.coe_neg'] at h
+  · simp only [EReal.coe_neg'] at h 
     simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
 #align ereal.mul_top_of_neg EReal.mul_top_of_neg
@@ -1074,7 +1075,7 @@ theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
   by
   induction x using EReal.rec
   · rfl
-  · simp only [EReal.coe_neg'] at h
+  · simp only [EReal.coe_neg'] at h 
     simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
 #align ereal.mul_bot_of_neg EReal.mul_bot_of_neg
@@ -1328,10 +1329,10 @@ theorem le_iff_sign {x y : EReal} :
   · intro h
     rcases(sign.monotone h).lt_or_eq with (hs | hs)
     · exact Or.inl hs
-    · rw [← x.sign_mul_abs, ← y.sign_mul_abs] at h
+    · rw [← x.sign_mul_abs, ← y.sign_mul_abs] at h 
       cases SignType.sign y <;> rw [hs] at *
       · simp
-      · simp at h⊢; exact Or.inl h
+      · simp at h ⊢; exact Or.inl h
       · simpa using h
   · rintro (h | h | h | h); · exact (sign.monotone.reflect_lt h).le
     all_goals rw [← x.sign_mul_abs, ← y.sign_mul_abs]; simp [h]
Diff
@@ -373,19 +373,15 @@ theorem coe_nsmul (n : ℕ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) _ _
 #align ereal.coe_nsmul EReal.coe_nsmul
 
-/- warning: ereal.coe_bit0 clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align ereal.coe_bit0 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem [anonymous] (x : ℝ) : (↑(bit0 x) : EReal) = bit0 x :=
+theorem coe_bit0 (x : ℝ) : (↑(bit0 x) : EReal) = bit0 x :=
   rfl
-#align ereal.coe_bit0 [anonymous]
+#align ereal.coe_bit0 EReal.coe_bit0
 
-/- warning: ereal.coe_bit1 clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align ereal.coe_bit1 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem [anonymous] (x : ℝ) : (↑(bit1 x) : EReal) = bit1 x :=
+theorem coe_bit1 (x : ℝ) : (↑(bit1 x) : EReal) = bit1 x :=
   rfl
-#align ereal.coe_bit1 [anonymous]
+#align ereal.coe_bit1 EReal.coe_bit1
 
 @[simp, norm_cast]
 theorem coe_eq_zero {x : ℝ} : (x : EReal) = 0 ↔ x = 0 :=
@@ -634,19 +630,15 @@ theorem coe_ennreal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : EReal) =
   map_nsmul (⟨coe, coe_ennreal_zero, coe_ennreal_add⟩ : ℝ≥0∞ →+ EReal) _ _
 #align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmul
 
-/- warning: ereal.coe_ennreal_bit0 clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_bit0 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem [anonymous] (x : ℝ≥0∞) : (↑(bit0 x) : EReal) = bit0 x :=
+theorem coe_eNNReal_bit0 (x : ℝ≥0∞) : (↑(bit0 x) : EReal) = bit0 x :=
   coe_ennreal_add _ _
-#align ereal.coe_ennreal_bit0 [anonymous]
+#align ereal.coe_ennreal_bit0 EReal.coe_eNNReal_bit0
 
-/- warning: ereal.coe_ennreal_bit1 clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_bit1 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem [anonymous] (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
+theorem coe_eNNReal_bit1 (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
   simp_rw [bit1, coe_ennreal_add, coe_ennreal_bit0, coe_ennreal_one]
-#align ereal.coe_ennreal_bit1 [anonymous]
+#align ereal.coe_ennreal_bit1 EReal.coe_eNNReal_bit1
 
 /-! ### Order -/
 
Diff
@@ -58,7 +58,7 @@ real, ereal, complete lattice
 
 open Function
 
-open ENNReal NNReal
+open scoped ENNReal NNReal
 
 noncomputable section
 
Diff
@@ -80,12 +80,6 @@ def Real.toEReal : ℝ → EReal :=
 
 namespace EReal
 
-/- warning: ereal.decidable_lt -> EReal.decidableLt is a dubious translation:
-lean 3 declaration is
-  DecidableRel.{1} EReal (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
-but is expected to have type
-  DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.238 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.240 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.238 x._@.Mathlib.Data.Real.EReal._hyg.240)
-Case conversion may be inaccurate. Consider using '#align ereal.decidable_lt EReal.decidableLtₓ'. -/
 -- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
 instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
   WithBot.decidableLT
@@ -98,12 +92,6 @@ instance : Top EReal :=
 instance : Coe ℝ EReal :=
   ⟨Real.toEReal⟩
 
-/- warning: ereal.coe_strict_mono -> EReal.coe_strictMono is a dubious translation:
-lean 3 declaration is
-  StrictMono.{0, 0} Real EReal Real.preorder (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))))
-but is expected to have type
-  StrictMono.{0, 0} Real EReal Real.instPreorderReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) Real.toEReal
-Case conversion may be inaccurate. Consider using '#align ereal.coe_strict_mono EReal.coe_strictMonoₓ'. -/
 theorem coe_strictMono : StrictMono (coe : ℝ → EReal) :=
   WithBot.coe_strictMono.comp WithTop.coe_strictMono
 #align ereal.coe_strict_mono EReal.coe_strictMono
@@ -114,23 +102,11 @@ theorem coe_injective : Injective (coe : ℝ → EReal) :=
 #align ereal.coe_injective EReal.coe_injective
 -/
 
-/- warning: ereal.coe_le_coe_iff -> EReal.coe_le_coe_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LE.le.{0} Real Real.hasLe x y)
-but is expected to have type
-  forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Real.toEReal y)) (LE.le.{0} Real Real.instLEReal x y)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_le_coe_iff EReal.coe_le_coe_iffₓ'. -/
 @[simp, norm_cast]
 protected theorem coe_le_coe_iff {x y : ℝ} : (x : EReal) ≤ (y : EReal) ↔ x ≤ y :=
   coe_strictMono.le_iff_le
 #align ereal.coe_le_coe_iff EReal.coe_le_coe_iff
 
-/- warning: ereal.coe_lt_coe_iff -> EReal.coe_lt_coe_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LT.lt.{0} Real Real.hasLt x y)
-but is expected to have type
-  forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Real.toEReal y)) (LT.lt.{0} Real Real.instLTReal x y)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_coe_iff EReal.coe_lt_coe_iffₓ'. -/
 @[simp, norm_cast]
 protected theorem coe_lt_coe_iff {x y : ℝ} : (x : EReal) < (y : EReal) ↔ x < y :=
   coe_strictMono.lt_iff_lt
@@ -166,23 +142,11 @@ instance hasCoeENNReal : Coe ℝ≥0∞ EReal :=
 instance : Inhabited EReal :=
   ⟨0⟩
 
-/- warning: ereal.coe_zero -> EReal.coe_zero is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
-but is expected to have type
-  Eq.{1} EReal (Real.toEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_zero EReal.coe_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_zero : ((0 : ℝ) : EReal) = 0 :=
   rfl
 #align ereal.coe_zero EReal.coe_zero
 
-/- warning: ereal.coe_one -> EReal.coe_one is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))
-but is expected to have type
-  Eq.{1} EReal (Real.toEReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_one EReal.coe_oneₓ'. -/
 @[simp, norm_cast]
 theorem coe_one : ((1 : ℝ) : EReal) = 1 :=
   rfl
@@ -223,12 +187,6 @@ protected def mul : EReal → EReal → EReal
 instance : Mul EReal :=
   ⟨EReal.mul⟩
 
-/- warning: ereal.induction₂ -> EReal.induction₂ is a dubious translation:
-lean 3 declaration is
-  forall {P : EReal -> EReal -> Prop}, (P (Top.top.{0} EReal EReal.hasTop) (Top.top.{0} EReal EReal.hasTop)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Top.top.{0} EReal EReal.hasTop) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Top.top.{0} EReal EReal.hasTop) (Bot.bot.{0} EReal EReal.hasBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot))) -> (P (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)) -> (forall (x : Real) (y : Real), P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) -> (P (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Bot.bot.{0} EReal EReal.hasBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot))) -> (P (Bot.bot.{0} EReal EReal.hasBot) (Top.top.{0} EReal EReal.hasTop)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Bot.bot.{0} EReal EReal.hasBot) (Bot.bot.{0} EReal EReal.hasBot)) -> (forall (x : EReal) (y : EReal), P x y)
-but is expected to have type
-  forall {P : EReal -> EReal -> Prop}, (P (Top.top.{0} EReal EReal.instTopEReal) (Top.top.{0} EReal EReal.instTopEReal)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x))) -> (P (Top.top.{0} EReal EReal.instTopEReal) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x))) -> (P (Top.top.{0} EReal EReal.instTopEReal) (Bot.bot.{0} EReal instERealBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Real.toEReal x) (Bot.bot.{0} EReal instERealBot))) -> (P (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)) -> (forall (x : Real) (y : Real), P (Real.toEReal x) (Real.toEReal y)) -> (P (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Bot.bot.{0} EReal instERealBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Real.toEReal x) (Bot.bot.{0} EReal instERealBot))) -> (P (Bot.bot.{0} EReal instERealBot) (Top.top.{0} EReal EReal.instTopEReal)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Bot.bot.{0} EReal instERealBot) (Real.toEReal x))) -> (P (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Bot.bot.{0} EReal instERealBot) (Real.toEReal x))) -> (P (Bot.bot.{0} EReal instERealBot) (Bot.bot.{0} EReal instERealBot)) -> (forall (x : EReal) (y : EReal), P x y)
-Case conversion may be inaccurate. Consider using '#align ereal.induction₂ EReal.induction₂ₓ'. -/
 /-- Induct on two ereals by performing case splits on the sign of one whenever the other is
 infinite. -/
 @[elab_as_elim]
@@ -305,45 +263,21 @@ def toReal : EReal → ℝ
 #align ereal.to_real EReal.toReal
 -/
 
-/- warning: ereal.to_real_top -> EReal.toReal_top is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (EReal.toReal (Top.top.{0} EReal EReal.hasTop)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
-but is expected to have type
-  Eq.{1} Real (EReal.toReal (Top.top.{0} EReal EReal.instTopEReal)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_top EReal.toReal_topₓ'. -/
 @[simp]
 theorem toReal_top : toReal ⊤ = 0 :=
   rfl
 #align ereal.to_real_top EReal.toReal_top
 
-/- warning: ereal.to_real_bot -> EReal.toReal_bot is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (EReal.toReal (Bot.bot.{0} EReal EReal.hasBot)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
-but is expected to have type
-  Eq.{1} Real (EReal.toReal (Bot.bot.{0} EReal instERealBot)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_bot EReal.toReal_botₓ'. -/
 @[simp]
 theorem toReal_bot : toReal ⊥ = 0 :=
   rfl
 #align ereal.to_real_bot EReal.toReal_bot
 
-/- warning: ereal.to_real_zero -> EReal.toReal_zero is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
-but is expected to have type
-  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_zero EReal.toReal_zeroₓ'. -/
 @[simp]
 theorem toReal_zero : toReal 0 = 0 :=
   rfl
 #align ereal.to_real_zero EReal.toReal_zero
 
-/- warning: ereal.to_real_one -> EReal.toReal_one is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
-  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_one EReal.toReal_oneₓ'. -/
 @[simp]
 theorem toReal_one : toReal 1 = 1 :=
   rfl
@@ -356,12 +290,6 @@ theorem toReal_coe (x : ℝ) : toReal (x : EReal) = x :=
 #align ereal.to_real_coe EReal.toReal_coe
 -/
 
-/- warning: ereal.bot_lt_coe -> EReal.bot_lt_coe is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)
-but is expected to have type
-  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)
-Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_coe EReal.bot_lt_coeₓ'. -/
 @[simp]
 theorem bot_lt_coe (x : ℝ) : (⊥ : EReal) < x :=
   WithBot.bot_lt_coe _
@@ -381,12 +309,6 @@ theorem bot_ne_coe (x : ℝ) : (⊥ : EReal) ≠ x :=
 #align ereal.bot_ne_coe EReal.bot_ne_coe
 -/
 
-/- warning: ereal.coe_lt_top -> EReal.coe_lt_top is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_top EReal.coe_lt_topₓ'. -/
 @[simp]
 theorem coe_lt_top (x : ℝ) : (x : EReal) < ⊤ := by apply WithBot.coe_lt_coe.2;
   exact WithTop.coe_lt_top _
@@ -406,111 +328,52 @@ theorem top_ne_coe (x : ℝ) : (⊤ : EReal) ≠ x :=
 #align ereal.top_ne_coe EReal.top_ne_coe
 -/
 
-/- warning: ereal.bot_lt_zero -> EReal.bot_lt_zero is a dubious translation:
-lean 3 declaration is
-  LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
-but is expected to have type
-  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_zero EReal.bot_lt_zeroₓ'. -/
 @[simp]
 theorem bot_lt_zero : (⊥ : EReal) < 0 :=
   bot_lt_coe 0
 #align ereal.bot_lt_zero EReal.bot_lt_zero
 
-/- warning: ereal.bot_ne_zero -> EReal.bot_ne_zero is a dubious translation:
-lean 3 declaration is
-  Ne.{1} EReal (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
-but is expected to have type
-  Ne.{1} EReal (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_ne_zero EReal.bot_ne_zeroₓ'. -/
 @[simp]
 theorem bot_ne_zero : (⊥ : EReal) ≠ 0 :=
   (coe_ne_bot 0).symm
 #align ereal.bot_ne_zero EReal.bot_ne_zero
 
-/- warning: ereal.zero_ne_bot -> EReal.zero_ne_bot is a dubious translation:
-lean 3 declaration is
-  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Bot.bot.{0} EReal EReal.hasBot)
-but is expected to have type
-  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Bot.bot.{0} EReal instERealBot)
-Case conversion may be inaccurate. Consider using '#align ereal.zero_ne_bot EReal.zero_ne_botₓ'. -/
 @[simp]
 theorem zero_ne_bot : (0 : EReal) ≠ ⊥ :=
   coe_ne_bot 0
 #align ereal.zero_ne_bot EReal.zero_ne_bot
 
-/- warning: ereal.zero_lt_top -> EReal.zero_lt_top is a dubious translation:
-lean 3 declaration is
-  LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.zero_lt_top EReal.zero_lt_topₓ'. -/
 @[simp]
 theorem zero_lt_top : (0 : EReal) < ⊤ :=
   coe_lt_top 0
 #align ereal.zero_lt_top EReal.zero_lt_top
 
-/- warning: ereal.zero_ne_top -> EReal.zero_ne_top is a dubious translation:
-lean 3 declaration is
-  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.zero_ne_top EReal.zero_ne_topₓ'. -/
 @[simp]
 theorem zero_ne_top : (0 : EReal) ≠ ⊤ :=
   coe_ne_top 0
 #align ereal.zero_ne_top EReal.zero_ne_top
 
-/- warning: ereal.top_ne_zero -> EReal.top_ne_zero is a dubious translation:
-lean 3 declaration is
-  Ne.{1} EReal (Top.top.{0} EReal EReal.hasTop) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
-but is expected to have type
-  Ne.{1} EReal (Top.top.{0} EReal EReal.instTopEReal) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
-Case conversion may be inaccurate. Consider using '#align ereal.top_ne_zero EReal.top_ne_zeroₓ'. -/
 @[simp]
 theorem top_ne_zero : (⊤ : EReal) ≠ 0 :=
   (coe_ne_top 0).symm
 #align ereal.top_ne_zero EReal.top_ne_zero
 
-/- warning: ereal.coe_add -> EReal.coe_add is a dubious translation:
-lean 3 declaration is
-  forall (x : Real) (y : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
-but is expected to have type
-  forall (x : Real) (y : Real), Eq.{1} EReal (Real.toEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal x) (Real.toEReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_add EReal.coe_addₓ'. -/
 @[simp, norm_cast]
 theorem coe_add (x y : ℝ) : (↑(x + y) : EReal) = x + y :=
   rfl
 #align ereal.coe_add EReal.coe_add
 
-/- warning: ereal.coe_mul -> EReal.coe_mul is a dubious translation:
-lean 3 declaration is
-  forall (x : Real) (y : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
-but is expected to have type
-  forall (x : Real) (y : Real), Eq.{1} EReal (Real.toEReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Real.toEReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_mul EReal.coe_mulₓ'. -/
 @[simp, norm_cast]
 theorem coe_mul (x y : ℝ) : (↑(x * y) : EReal) = x * y :=
   rfl
 #align ereal.coe_mul EReal.coe_mul
 
-/- warning: ereal.coe_nsmul -> EReal.coe_nsmul is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat) (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (SMul.smul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.addMonoid) n x)) (SMul.smul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal EReal.addMonoid) n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
-but is expected to have type
-  forall (n : Nat) (x : Real), Eq.{1} EReal (Real.toEReal (HSMul.hSMul.{0, 0, 0} Nat Real Real (instHSMul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.instAddMonoidReal)) n x)) (HSMul.hSMul.{0, 0, 0} Nat EReal EReal (instHSMul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal instERealAddMonoid)) n (Real.toEReal x))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_nsmul EReal.coe_nsmulₓ'. -/
 @[norm_cast]
 theorem coe_nsmul (n : ℕ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) _ _
 #align ereal.coe_nsmul EReal.coe_nsmul
 
 /- warning: ereal.coe_bit0 clashes with [anonymous] -> [anonymous]
-warning: ereal.coe_bit0 -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (bit0.{0} Real Real.hasAdd x)) (bit0.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
-but is expected to have type
-  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_bit0 [anonymous]ₓ'. -/
 @[simp, norm_cast]
 theorem [anonymous] (x : ℝ) : (↑(bit0 x) : EReal) = bit0 x :=
@@ -518,109 +381,50 @@ theorem [anonymous] (x : ℝ) : (↑(bit0 x) : EReal) = bit0 x :=
 #align ereal.coe_bit0 [anonymous]
 
 /- warning: ereal.coe_bit1 clashes with [anonymous] -> [anonymous]
-warning: ereal.coe_bit1 -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (bit1.{0} Real Real.hasOne Real.hasAdd x)) (bit1.{0} EReal EReal.hasOne (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
-but is expected to have type
-  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_bit1 [anonymous]ₓ'. -/
 @[simp, norm_cast]
 theorem [anonymous] (x : ℝ) : (↑(bit1 x) : EReal) = bit1 x :=
   rfl
 #align ereal.coe_bit1 [anonymous]
 
-/- warning: ereal.coe_eq_zero -> EReal.coe_eq_zero is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
-  forall {x : Real}, Iff (Eq.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_eq_zero EReal.coe_eq_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_eq_zero {x : ℝ} : (x : EReal) = 0 ↔ x = 0 :=
   EReal.coe_eq_coe_iff
 #align ereal.coe_eq_zero EReal.coe_eq_zero
 
-/- warning: ereal.coe_eq_one -> EReal.coe_eq_one is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall {x : Real}, Iff (Eq.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_eq_one EReal.coe_eq_oneₓ'. -/
 @[simp, norm_cast]
 theorem coe_eq_one {x : ℝ} : (x : EReal) = 1 ↔ x = 1 :=
   EReal.coe_eq_coe_iff
 #align ereal.coe_eq_one EReal.coe_eq_one
 
-/- warning: ereal.coe_ne_zero -> EReal.coe_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
-  forall {x : Real}, Iff (Ne.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ne_zero EReal.coe_ne_zeroₓ'. -/
 theorem coe_ne_zero {x : ℝ} : (x : EReal) ≠ 0 ↔ x ≠ 0 :=
   EReal.coe_ne_coe_iff
 #align ereal.coe_ne_zero EReal.coe_ne_zero
 
-/- warning: ereal.coe_ne_one -> EReal.coe_ne_one is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall {x : Real}, Iff (Ne.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ne_one EReal.coe_ne_oneₓ'. -/
 theorem coe_ne_one {x : ℝ} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
   EReal.coe_ne_coe_iff
 #align ereal.coe_ne_one EReal.coe_ne_one
 
-/- warning: ereal.coe_nonneg -> EReal.coe_nonneg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
-but is expected to have type
-  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Real.toEReal x)) (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_nonneg EReal.coe_nonnegₓ'. -/
 @[simp, norm_cast]
 protected theorem coe_nonneg {x : ℝ} : (0 : EReal) ≤ x ↔ 0 ≤ x :=
   EReal.coe_le_coe_iff
 #align ereal.coe_nonneg EReal.coe_nonneg
 
-/- warning: ereal.coe_nonpos -> EReal.coe_nonpos is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LE.le.{0} Real Real.hasLe x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
-  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (LE.le.{0} Real Real.instLEReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_nonpos EReal.coe_nonposₓ'. -/
 @[simp, norm_cast]
 protected theorem coe_nonpos {x : ℝ} : (x : EReal) ≤ 0 ↔ x ≤ 0 :=
   EReal.coe_le_coe_iff
 #align ereal.coe_nonpos EReal.coe_nonpos
 
-/- warning: ereal.coe_pos -> EReal.coe_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
-but is expected to have type
-  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Real.toEReal x)) (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_pos EReal.coe_posₓ'. -/
 @[simp, norm_cast]
 protected theorem coe_pos {x : ℝ} : (0 : EReal) < x ↔ 0 < x :=
   EReal.coe_lt_coe_iff
 #align ereal.coe_pos EReal.coe_pos
 
-/- warning: ereal.coe_neg' -> EReal.coe_neg' is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
-  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_neg' EReal.coe_neg'ₓ'. -/
 @[simp, norm_cast]
 protected theorem coe_neg' {x : ℝ} : (x : EReal) < 0 ↔ x < 0 :=
   EReal.coe_lt_coe_iff
 #align ereal.coe_neg' EReal.coe_neg'
 
-/- warning: ereal.to_real_le_to_real -> EReal.toReal_le_toReal is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} Real Real.hasLe (EReal.toReal x) (EReal.toReal y))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LE.le.{0} Real Real.instLEReal (EReal.toReal x) (EReal.toReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_le_to_real EReal.toReal_le_toRealₓ'. -/
 theorem toReal_le_toReal {x y : EReal} (h : x ≤ y) (hx : x ≠ ⊥) (hy : y ≠ ⊤) :
     x.toReal ≤ y.toReal := by
   lift x to ℝ
@@ -640,12 +444,6 @@ theorem coe_toReal {x : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) : (x.toReal :
 #align ereal.coe_to_real EReal.coe_toReal
 -/
 
-/- warning: ereal.le_coe_to_real -> EReal.le_coe_toReal is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)))
-but is expected to have type
-  forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (Real.toEReal (EReal.toReal x)))
-Case conversion may be inaccurate. Consider using '#align ereal.le_coe_to_real EReal.le_coe_toRealₓ'. -/
 theorem le_coe_toReal {x : EReal} (h : x ≠ ⊤) : x ≤ x.toReal :=
   by
   by_cases h' : x = ⊥
@@ -653,12 +451,6 @@ theorem le_coe_toReal {x : EReal} (h : x ≠ ⊤) : x ≤ x.toReal :=
   · simp only [le_refl, coe_to_real h h']
 #align ereal.le_coe_to_real EReal.le_coe_toReal
 
-/- warning: ereal.coe_to_real_le -> EReal.coe_toReal_le is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)) x)
-but is expected to have type
-  forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (EReal.toReal x)) x)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_to_real_le EReal.coe_toReal_leₓ'. -/
 theorem coe_toReal_le {x : EReal} (h : x ≠ ⊥) : ↑x.toReal ≤ x :=
   by
   by_cases h' : x = ⊤
@@ -666,12 +458,6 @@ theorem coe_toReal_le {x : EReal} (h : x ≠ ⊥) : ↑x.toReal ≤ x :=
   · simp only [le_refl, coe_to_real h' h]
 #align ereal.coe_to_real_le EReal.coe_toReal_le
 
-/- warning: ereal.eq_top_iff_forall_lt -> EReal.eq_top_iff_forall_lt is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y) x)
-but is expected to have type
-  forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal y) x)
-Case conversion may be inaccurate. Consider using '#align ereal.eq_top_iff_forall_lt EReal.eq_top_iff_forall_ltₓ'. -/
 theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal) < x :=
   by
   constructor
@@ -681,12 +467,6 @@ theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal)
     exact ⟨x.to_real, le_coe_to_real h⟩
 #align ereal.eq_top_iff_forall_lt EReal.eq_top_iff_forall_lt
 
-/- warning: ereal.eq_bot_iff_forall_lt -> EReal.eq_bot_iff_forall_lt is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
-but is expected to have type
-  forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal instERealBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (Real.toEReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.eq_bot_iff_forall_lt EReal.eq_bot_iff_forall_ltₓ'. -/
 theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : EReal) :=
   by
   constructor
@@ -707,66 +487,30 @@ theorem toReal_coe_ennreal : ∀ {x : ℝ≥0∞}, toReal (x : EReal) = ENNReal.
 #align ereal.to_real_coe_ennreal EReal.toReal_coe_ennreal
 -/
 
-/- warning: ereal.coe_ennreal_of_real -> EReal.coe_ennreal_ofReal is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (ENNReal.ofReal x)) (LinearOrder.max.{0} EReal (ConditionallyCompleteLinearOrder.toLinearOrder.{0} EReal (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{0} EReal (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{0} EReal EReal.completeLinearOrder))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))))
-but is expected to have type
-  forall {x : Real}, Eq.{1} EReal (ENNReal.toEReal (ENNReal.ofReal x)) (Real.toEReal (Max.max.{0} Real (LinearOrderedRing.toMax.{0} Real Real.instLinearOrderedRingReal) x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_of_real EReal.coe_ennreal_ofRealₓ'. -/
 @[simp]
 theorem coe_ennreal_ofReal {x : ℝ} : (ENNReal.ofReal x : EReal) = max x 0 :=
   rfl
 #align ereal.coe_ennreal_of_real EReal.coe_ennreal_ofReal
 
-/- warning: ereal.coe_nnreal_eq_coe_real -> EReal.coe_nnreal_eq_coe_real is a dubious translation:
-lean 3 declaration is
-  forall (x : NNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) x))
-but is expected to have type
-  forall (x : NNReal), Eq.{1} EReal (ENNReal.toEReal (ENNReal.some x)) (Real.toEReal (NNReal.toReal x))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_nnreal_eq_coe_real EReal.coe_nnreal_eq_coe_realₓ'. -/
 theorem coe_nnreal_eq_coe_real (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) = (x : ℝ) :=
   rfl
 #align ereal.coe_nnreal_eq_coe_real EReal.coe_nnreal_eq_coe_real
 
-/- warning: ereal.coe_ennreal_zero -> EReal.coe_ennreal_zero is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
-but is expected to have type
-  Eq.{1} EReal (ENNReal.toEReal (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_zero EReal.coe_ennreal_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_zero : ((0 : ℝ≥0∞) : EReal) = 0 :=
   rfl
 #align ereal.coe_ennreal_zero EReal.coe_ennreal_zero
 
-/- warning: ereal.coe_ennreal_one -> EReal.coe_ennreal_one is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (OfNat.ofNat.{0} ENNReal 1 (OfNat.mk.{0} ENNReal 1 (One.one.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne)))))) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))
-but is expected to have type
-  Eq.{1} EReal (ENNReal.toEReal (OfNat.ofNat.{0} ENNReal 1 (One.toOfNat1.{0} ENNReal (CanonicallyOrderedCommSemiring.toOne.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_one EReal.coe_ennreal_oneₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_one : ((1 : ℝ≥0∞) : EReal) = 1 :=
   rfl
 #align ereal.coe_ennreal_one EReal.coe_ennreal_one
 
-/- warning: ereal.coe_ennreal_top -> EReal.coe_ennreal_top is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  Eq.{1} EReal (ENNReal.toEReal (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_top EReal.coe_ennreal_topₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_top : ((⊤ : ℝ≥0∞) : EReal) = ⊤ :=
   rfl
 #align ereal.coe_ennreal_top EReal.coe_ennreal_top
 
-/- warning: ereal.coe_ennreal_eq_top_iff -> EReal.coe_ennreal_eq_top_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (Top.top.{0} EReal EReal.hasTop)) (Eq.{1} ENNReal x (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
-but is expected to have type
-  forall {x : ENNReal}, Iff (Eq.{1} EReal (ENNReal.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Eq.{1} ENNReal x (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_top_iff EReal.coe_ennreal_eq_top_iffₓ'. -/
 @[simp]
 theorem coe_ennreal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : EReal) = ⊤ ↔ x = ⊤
   | ⊤ => by simp
@@ -778,22 +522,10 @@ theorem coe_nnreal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) ≠ ⊤ :=
 #align ereal.coe_nnreal_ne_top EReal.coe_nnreal_ne_top
 -/
 
-/- warning: ereal.coe_nnreal_lt_top -> EReal.coe_nnreal_lt_top is a dubious translation:
-lean 3 declaration is
-  forall (x : NNReal), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  forall (x : NNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal (ENNReal.some x)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_nnreal_lt_top EReal.coe_nnreal_lt_topₓ'. -/
 @[simp]
 theorem coe_nnreal_lt_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) < ⊤ := by decide
 #align ereal.coe_nnreal_lt_top EReal.coe_nnreal_lt_top
 
-/- warning: ereal.coe_ennreal_strict_mono -> EReal.coe_ennreal_strictMono is a dubious translation:
-lean 3 declaration is
-  StrictMono.{0, 0} ENNReal EReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))))
-but is expected to have type
-  StrictMono.{0, 0} ENNReal EReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))) (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) ENNReal.toEReal
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_strict_mono EReal.coe_ennreal_strictMonoₓ'. -/
 theorem coe_ennreal_strictMono : StrictMono (coe : ℝ≥0∞ → EReal)
   | ⊤, ⊤ => by simp
   | some x, ⊤ => by simp
@@ -807,23 +539,11 @@ theorem coe_ennreal_injective : Injective (coe : ℝ≥0∞ → EReal) :=
 #align ereal.coe_ennreal_injective EReal.coe_ennreal_injective
 -/
 
-/- warning: ereal.coe_ennreal_le_coe_ennreal_iff -> EReal.coe_ennreal_le_coe_ennreal_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
-but is expected to have type
-  forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal x) (ENNReal.toEReal y)) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) x y)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_le_coe_ennreal_iff EReal.coe_ennreal_le_coe_ennreal_iffₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_le_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≤ (y : EReal) ↔ x ≤ y :=
   coe_ennreal_strictMono.le_iff_le
 #align ereal.coe_ennreal_le_coe_ennreal_iff EReal.coe_ennreal_le_coe_ennreal_iff
 
-/- warning: ereal.coe_ennreal_lt_coe_ennreal_iff -> EReal.coe_ennreal_lt_coe_ennreal_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
-but is expected to have type
-  forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal x) (ENNReal.toEReal y)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) x y)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_lt_coe_ennreal_iff EReal.coe_ennreal_lt_coe_ennreal_iffₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_lt_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) < (y : EReal) ↔ x < y :=
   coe_ennreal_strictMono.lt_iff_lt
@@ -842,77 +562,35 @@ theorem coe_ennreal_ne_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≠ (y :
 #align ereal.coe_ennreal_ne_coe_ennreal_iff EReal.coe_ennreal_ne_coe_ennreal_iff
 -/
 
-/- warning: ereal.coe_ennreal_eq_zero -> EReal.coe_ennreal_eq_zero is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))))
-but is expected to have type
-  forall {x : ENNReal}, Iff (Eq.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_zero EReal.coe_ennreal_eq_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_eq_zero {x : ℝ≥0∞} : (x : EReal) = 0 ↔ x = 0 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_zero]
 #align ereal.coe_ennreal_eq_zero EReal.coe_ennreal_eq_zero
 
-/- warning: ereal.coe_ennreal_eq_one -> EReal.coe_ennreal_eq_one is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (OfNat.mk.{0} ENNReal 1 (One.one.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne))))))
-but is expected to have type
-  forall {x : ENNReal}, Iff (Eq.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (One.toOfNat1.{0} ENNReal (CanonicallyOrderedCommSemiring.toOne.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_one EReal.coe_ennreal_eq_oneₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_eq_one {x : ℝ≥0∞} : (x : EReal) = 1 ↔ x = 1 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_one]
 #align ereal.coe_ennreal_eq_one EReal.coe_ennreal_eq_one
 
-/- warning: ereal.coe_ennreal_ne_zero -> EReal.coe_ennreal_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))))
-but is expected to have type
-  forall {x : ENNReal}, Iff (Ne.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_ne_zero EReal.coe_ennreal_ne_zeroₓ'. -/
 @[norm_cast]
 theorem coe_ennreal_ne_zero {x : ℝ≥0∞} : (x : EReal) ≠ 0 ↔ x ≠ 0 :=
   coe_ennreal_eq_zero.Not
 #align ereal.coe_ennreal_ne_zero EReal.coe_ennreal_ne_zero
 
-/- warning: ereal.coe_ennreal_ne_one -> EReal.coe_ennreal_ne_one is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (OfNat.mk.{0} ENNReal 1 (One.one.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne))))))
-but is expected to have type
-  forall {x : ENNReal}, Iff (Ne.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (One.toOfNat1.{0} ENNReal (CanonicallyOrderedCommSemiring.toOne.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_ne_one EReal.coe_ennreal_ne_oneₓ'. -/
 @[norm_cast]
 theorem coe_ennreal_ne_one {x : ℝ≥0∞} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
   coe_ennreal_eq_one.Not
 #align ereal.coe_ennreal_ne_one EReal.coe_ennreal_ne_one
 
-/- warning: ereal.coe_ennreal_nonneg -> EReal.coe_ennreal_nonneg is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal), LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
-but is expected to have type
-  forall (x : ENNReal), LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (ENNReal.toEReal x)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonnegₓ'. -/
 theorem coe_ennreal_nonneg (x : ℝ≥0∞) : (0 : EReal) ≤ x :=
   coe_ennreal_le_coe_ennreal_iff.2 (zero_le x)
 #align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonneg
 
-/- warning: ereal.coe_ennreal_pos -> EReal.coe_ennreal_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)) (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) x)
-but is expected to have type
-  forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (ENNReal.toEReal x)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) x)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_pos EReal.coe_ennreal_posₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_pos {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
   rw [← coe_ennreal_zero, coe_ennreal_lt_coe_ennreal_iff]
 #align ereal.coe_ennreal_pos EReal.coe_ennreal_pos
 
-/- warning: ereal.bot_lt_coe_ennreal -> EReal.bot_lt_coe_ennreal is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
-but is expected to have type
-  forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (ENNReal.toEReal x)
-Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_coe_ennreal EReal.bot_lt_coe_ennrealₓ'. -/
 @[simp]
 theorem bot_lt_coe_ennreal (x : ℝ≥0∞) : (⊥ : EReal) < x :=
   (bot_lt_coe 0).trans_le (coe_ennreal_nonneg _)
@@ -925,23 +603,11 @@ theorem coe_ennreal_ne_bot (x : ℝ≥0∞) : (x : EReal) ≠ ⊥ :=
 #align ereal.coe_ennreal_ne_bot EReal.coe_ennreal_ne_bot
 -/
 
-/- warning: ereal.coe_ennreal_add -> EReal.coe_ennreal_add is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y))
-but is expected to have type
-  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal (ENNReal.toEReal (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (ENNReal.toEReal x) (ENNReal.toEReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_add EReal.coe_ennreal_addₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_add (x y : ENNReal) : ((x + y : ℝ≥0∞) : EReal) = x + y := by
   cases x <;> cases y <;> rfl
 #align ereal.coe_ennreal_add EReal.coe_ennreal_add
 
-/- warning: ereal.coe_ennreal_mul -> EReal.coe_ennreal_mul is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y))
-but is expected to have type
-  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal (ENNReal.toEReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (ENNReal.toEReal x) (ENNReal.toEReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_mul EReal.coe_ennreal_mulₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) = x * y
   | ⊤, ⊤ => rfl
@@ -963,23 +629,12 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) =
     simp only [← ENNReal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, EReal.coe_mul]
 #align ereal.coe_ennreal_mul EReal.coe_ennreal_mul
 
-/- warning: ereal.coe_ennreal_nsmul -> EReal.coe_ennreal_nsmul is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat) (x : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (SMul.smul.{0, 0} Nat ENNReal (AddMonoid.SMul.{0} ENNReal (AddMonoidWithOne.toAddMonoid.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne))) n x)) (SMul.smul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal EReal.addMonoid) n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x))
-but is expected to have type
-  forall (n : Nat) (x : ENNReal), Eq.{1} EReal (ENNReal.toEReal (HSMul.hSMul.{0, 0, 0} Nat ENNReal ENNReal (instHSMul.{0, 0} Nat ENNReal (AddMonoid.SMul.{0} ENNReal (AddMonoidWithOne.toAddMonoid.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal instENNRealAddCommMonoidWithOne)))) n x)) (HSMul.hSMul.{0, 0, 0} Nat EReal EReal (instHSMul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal instERealAddMonoid)) n (ENNReal.toEReal x))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmulₓ'. -/
 @[norm_cast]
 theorem coe_ennreal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_ennreal_zero, coe_ennreal_add⟩ : ℝ≥0∞ →+ EReal) _ _
 #align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmul
 
 /- warning: ereal.coe_ennreal_bit0 clashes with [anonymous] -> [anonymous]
-warning: ereal.coe_ennreal_bit0 -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (bit0.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))))) x)) (bit0.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x))
-but is expected to have type
-  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_bit0 [anonymous]ₓ'. -/
 @[simp, norm_cast]
 theorem [anonymous] (x : ℝ≥0∞) : (↑(bit0 x) : EReal) = bit0 x :=
@@ -987,11 +642,6 @@ theorem [anonymous] (x : ℝ≥0∞) : (↑(bit0 x) : EReal) = bit0 x :=
 #align ereal.coe_ennreal_bit0 [anonymous]
 
 /- warning: ereal.coe_ennreal_bit1 clashes with [anonymous] -> [anonymous]
-warning: ereal.coe_ennreal_bit1 -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (bit1.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne)) (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))))) x)) (bit1.{0} EReal EReal.hasOne (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x))
-but is expected to have type
-  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_bit1 [anonymous]ₓ'. -/
 @[simp, norm_cast]
 theorem [anonymous] (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
@@ -1001,12 +651,6 @@ theorem [anonymous] (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
 /-! ### Order -/
 
 
-/- warning: ereal.exists_rat_btwn_of_lt -> EReal.exists_rat_btwn_of_lt is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
-but is expected to have type
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (Rat.cast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (Rat.cast.{0} Real Real.ratCast x)) b)))
-Case conversion may be inaccurate. Consider using '#align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_ltₓ'. -/
 theorem exists_rat_btwn_of_lt :
     ∀ {a b : EReal} (hab : a < b), ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b
   | ⊤, b, h => (not_top_lt h).elim
@@ -1022,23 +666,11 @@ theorem exists_rat_btwn_of_lt :
   | ⊥, ⊤, h => ⟨0, bot_lt_coe _, coe_lt_top _⟩
 #align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_lt
 
-/- warning: ereal.lt_iff_exists_rat_btwn -> EReal.lt_iff_exists_rat_btwn is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
-but is expected to have type
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (Rat.cast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (Rat.cast.{0} Real Real.ratCast x)) b)))
-Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwnₓ'. -/
 theorem lt_iff_exists_rat_btwn {a b : EReal} :
     a < b ↔ ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b :=
   ⟨fun hab => exists_rat_btwn_of_lt hab, fun ⟨x, ax, xb⟩ => ax.trans xb⟩
 #align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwn
 
-/- warning: ereal.lt_iff_exists_real_btwn -> EReal.lt_iff_exists_real_btwn is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) b)))
-but is expected to have type
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal x)) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) b)))
-Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_real_btwn EReal.lt_iff_exists_real_btwnₓ'. -/
 theorem lt_iff_exists_real_btwn {a b : EReal} : a < b ↔ ∃ x : ℝ, a < x ∧ (x : EReal) < b :=
   ⟨fun hab =>
     let ⟨x, ax, xb⟩ := exists_rat_btwn_of_lt hab
@@ -1046,12 +678,6 @@ theorem lt_iff_exists_real_btwn {a b : EReal} : a < b ↔ ∃ x : ℝ, a < x ∧
     fun ⟨x, ax, xb⟩ => ax.trans xb⟩
 #align ereal.lt_iff_exists_real_btwn EReal.lt_iff_exists_real_btwn
 
-/- warning: ereal.ne_top_bot_equiv_real -> EReal.neTopBotEquivReal is a dubious translation:
-lean 3 declaration is
-  Equiv.{1, 1} (coeSort.{1, 2} (Set.{0} EReal) Type (Set.hasCoeToSort.{0} EReal) (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.booleanAlgebra.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.hasInsert.{0} EReal) (Bot.bot.{0} EReal EReal.hasBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.hasSingleton.{0} EReal) (Top.top.{0} EReal EReal.hasTop))))) Real
-but is expected to have type
-  Equiv.{1, 1} (Set.Elem.{0} EReal (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.instBooleanAlgebraSet.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.instInsertSet.{0} EReal) (Bot.bot.{0} EReal instERealBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.instSingletonSet.{0} EReal) (Top.top.{0} EReal EReal.instTopEReal))))) Real
-Case conversion may be inaccurate. Consider using '#align ereal.ne_top_bot_equiv_real EReal.neTopBotEquivRealₓ'. -/
 /-- The set of numbers in `ereal` that are not equal to `±∞` is equivalent to `ℝ`. -/
 def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ
     where
@@ -1068,67 +694,31 @@ def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ
 /-! ### Addition -/
 
 
-/- warning: ereal.add_bot -> EReal.add_bot is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot)
-but is expected to have type
-  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot)
-Case conversion may be inaccurate. Consider using '#align ereal.add_bot EReal.add_botₓ'. -/
 @[simp]
 theorem add_bot (x : EReal) : x + ⊥ = ⊥ :=
   WithBot.add_bot _
 #align ereal.add_bot EReal.add_bot
 
-/- warning: ereal.bot_add -> EReal.bot_add is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot)
-but is expected to have type
-  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot)
-Case conversion may be inaccurate. Consider using '#align ereal.bot_add EReal.bot_addₓ'. -/
 @[simp]
 theorem bot_add (x : EReal) : ⊥ + x = ⊥ :=
   WithBot.bot_add _
 #align ereal.bot_add EReal.bot_add
 
-/- warning: ereal.top_add_top -> EReal.top_add_top is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) (Top.top.{0} EReal EReal.hasTop) (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Top.top.{0} EReal EReal.instTopEReal) (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.top_add_top EReal.top_add_topₓ'. -/
 @[simp]
 theorem top_add_top : (⊤ : EReal) + ⊤ = ⊤ :=
   rfl
 #align ereal.top_add_top EReal.top_add_top
 
-/- warning: ereal.top_add_coe -> EReal.top_add_coe is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.top_add_coe EReal.top_add_coeₓ'. -/
 @[simp]
 theorem top_add_coe (x : ℝ) : (⊤ : EReal) + x = ⊤ :=
   rfl
 #align ereal.top_add_coe EReal.top_add_coe
 
-/- warning: ereal.coe_add_top -> EReal.coe_add_top is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_add_top EReal.coe_add_topₓ'. -/
 @[simp]
 theorem coe_add_top (x : ℝ) : (x : EReal) + ⊤ = ⊤ :=
   rfl
 #align ereal.coe_add_top EReal.coe_add_top
 
-/- warning: ereal.to_real_add -> EReal.toReal_add is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal EReal.hasBot)) -> (Eq.{1} Real (EReal.toReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (EReal.toReal x) (EReal.toReal y)))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal instERealBot)) -> (Eq.{1} Real (EReal.toReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (EReal.toReal x) (EReal.toReal y)))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_add EReal.toReal_addₓ'. -/
 theorem toReal_add :
     ∀ {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥),
       toReal (x + y) = toReal x + toReal y
@@ -1139,12 +729,6 @@ theorem toReal_add :
   | (x : ℝ), (y : ℝ), hx, h'x, hy, h'y => by simp [← EReal.coe_add]
 #align ereal.to_real_add EReal.toReal_add
 
-/- warning: ereal.add_lt_add_right_coe -> EReal.add_lt_add_right_coe is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x (Real.toEReal z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y (Real.toEReal z)))
-Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coeₓ'. -/
 theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z :=
   by
   induction x using EReal.rec <;> induction y using EReal.rec
@@ -1159,12 +743,6 @@ theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
 #align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coe
 
-/- warning: ereal.add_lt_add_of_lt_of_le -> EReal.add_lt_add_of_lt_of_le is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
-but is expected to have type
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y t))
-Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_leₓ'. -/
 theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x + z < y + t := by
   induction z using EReal.rec
@@ -1177,22 +755,10 @@ theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz
   · exact (ht (top_le_iff.1 h')).elim
 #align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_le
 
-/- warning: ereal.add_lt_add_left_coe -> EReal.add_lt_add_left_coe is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) y))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal z) y))
-Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_left_coe EReal.add_lt_add_left_coeₓ'. -/
 theorem add_lt_add_left_coe {x y : EReal} (h : x < y) (z : ℝ) : (z : EReal) + x < z + y := by
   simpa [add_comm] using add_lt_add_right_coe h z
 #align ereal.add_lt_add_left_coe EReal.add_lt_add_left_coe
 
-/- warning: ereal.add_lt_add -> EReal.add_lt_add is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
-but is expected to have type
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y t))
-Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add EReal.add_lt_addₓ'. -/
 theorem add_lt_add {x y z t : EReal} (h1 : x < y) (h2 : z < t) : x + z < y + t :=
   by
   induction x using EReal.rec
@@ -1205,34 +771,16 @@ theorem add_lt_add {x y z t : EReal} (h1 : x < y) (h2 : z < t) : x + z < y + t :
   · exact (lt_irrefl _ (h1.trans_le le_top)).elim
 #align ereal.add_lt_add EReal.add_lt_add
 
-/- warning: ereal.add_eq_bot_iff -> EReal.add_eq_bot_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Iff (Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y) (Bot.bot.{0} EReal EReal.hasBot)) (Or (Eq.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) (Eq.{1} EReal y (Bot.bot.{0} EReal EReal.hasBot)))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, Iff (Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y) (Bot.bot.{0} EReal instERealBot)) (Or (Eq.{1} EReal x (Bot.bot.{0} EReal instERealBot)) (Eq.{1} EReal y (Bot.bot.{0} EReal instERealBot)))
-Case conversion may be inaccurate. Consider using '#align ereal.add_eq_bot_iff EReal.add_eq_bot_iffₓ'. -/
 @[simp]
 theorem add_eq_bot_iff {x y : EReal} : x + y = ⊥ ↔ x = ⊥ ∨ y = ⊥ := by
   induction x using EReal.rec <;> induction y using EReal.rec <;> simp [← EReal.coe_add]
 #align ereal.add_eq_bot_iff EReal.add_eq_bot_iff
 
-/- warning: ereal.bot_lt_add_iff -> EReal.bot_lt_add_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) x) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) y))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) x) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) y))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_add_iff EReal.bot_lt_add_iffₓ'. -/
 @[simp]
 theorem bot_lt_add_iff {x y : EReal} : ⊥ < x + y ↔ ⊥ < x ∧ ⊥ < y := by
   simp [bot_lt_iff_ne_bot, not_or]
 #align ereal.bot_lt_add_iff EReal.bot_lt_add_iff
 
-/- warning: ereal.add_lt_top -> EReal.add_lt_top is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.add_lt_top EReal.add_lt_topₓ'. -/
 theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ := by
   rw [← EReal.top_add_top]; exact EReal.add_lt_add hx.lt_top hy.lt_top
 #align ereal.add_lt_top EReal.add_lt_top
@@ -1256,11 +804,6 @@ instance : SubNegZeroMonoid EReal :=
   { EReal.addMonoid, EReal.hasNeg with neg_zero := by change ((-0 : ℝ) : EReal) = 0; simp }
 
 /- warning: ereal.neg_def clashes with ereal.coe_neg -> EReal.coe_neg
-warning: ereal.neg_def -> EReal.coe_neg is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (Neg.neg.{0} Real Real.hasNeg x)) (Neg.neg.{0} EReal EReal.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (Real.toEReal (Neg.neg.{0} Real Real.instNegReal x)) (Neg.neg.{0} EReal EReal.instNegEReal (Real.toEReal x))
 Case conversion may be inaccurate. Consider using '#align ereal.neg_def EReal.coe_negₓ'. -/
 @[norm_cast]
 protected theorem coe_neg (x : ℝ) : ((-x : ℝ) : EReal) = -x :=
@@ -1281,34 +824,16 @@ theorem neg_bot : -(⊥ : EReal) = ⊤ :=
 #align ereal.neg_bot EReal.neg_bot
 -/
 
-/- warning: ereal.coe_neg -> EReal.coe_neg is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (Neg.neg.{0} Real Real.hasNeg x)) (Neg.neg.{0} EReal EReal.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (Real.toEReal (Neg.neg.{0} Real Real.instNegReal x)) (Neg.neg.{0} EReal EReal.instNegEReal (Real.toEReal x))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_neg EReal.coe_negₓ'. -/
 @[simp, norm_cast]
 theorem coe_neg (x : ℝ) : (↑(-x) : EReal) = -x :=
   rfl
 #align ereal.coe_neg EReal.coe_neg
 
-/- warning: ereal.coe_sub -> EReal.coe_sub is a dubious translation:
-lean 3 declaration is
-  forall (x : Real) (y : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x y)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
-but is expected to have type
-  forall (x : Real) (y : Real), Eq.{1} EReal (Real.toEReal (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x y)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Real.toEReal x) (Real.toEReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_sub EReal.coe_subₓ'. -/
 @[simp, norm_cast]
 theorem coe_sub (x y : ℝ) : (↑(x - y) : EReal) = x - y :=
   rfl
 #align ereal.coe_sub EReal.coe_sub
 
-/- warning: ereal.coe_zsmul -> EReal.coe_zsmul is a dubious translation:
-lean 3 declaration is
-  forall (n : Int) (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (SMul.smul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.addGroup)) n x)) (SMul.smul.{0, 0} Int EReal (SubNegMonoid.SMulInt.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid)) n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
-but is expected to have type
-  forall (n : Int) (x : Real), Eq.{1} EReal (Real.toEReal (HSMul.hSMul.{0, 0, 0} Int Real Real (instHSMul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.instAddGroupReal))) n x)) (HSMul.hSMul.{0, 0, 0} Int EReal EReal (instHSMul.{0, 0} Int EReal (SubNegMonoid.SMulInt.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) n (Real.toEReal x))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_zsmul EReal.coe_zsmulₓ'. -/
 @[norm_cast]
 theorem coe_zsmul (n : ℤ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
   map_zsmul' (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) coe_neg _ _
@@ -1322,12 +847,6 @@ instance : InvolutiveNeg EReal where
     | ⊤ => rfl
     | (a : ℝ) => by norm_cast; simp [neg_neg a]
 
-/- warning: ereal.to_real_neg -> EReal.toReal_neg is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal}, Eq.{1} Real (EReal.toReal (Neg.neg.{0} EReal EReal.hasNeg a)) (Neg.neg.{0} Real Real.hasNeg (EReal.toReal a))
-but is expected to have type
-  forall {a : EReal}, Eq.{1} Real (EReal.toReal (Neg.neg.{0} EReal EReal.instNegEReal a)) (Neg.neg.{0} Real Real.instNegReal (EReal.toReal a))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_neg EReal.toReal_negₓ'. -/
 @[simp]
 theorem toReal_neg : ∀ {a : EReal}, toReal (-a) = -toReal a
   | ⊤ => by simp
@@ -1349,22 +868,10 @@ theorem neg_eq_bot_iff {x : EReal} : -x = ⊥ ↔ x = ⊤ :=
 #align ereal.neg_eq_bot_iff EReal.neg_eq_bot_iff
 -/
 
-/- warning: ereal.neg_eq_zero_iff -> EReal.neg_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, Iff (Eq.{1} EReal (Neg.neg.{0} EReal EReal.hasNeg x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))))
-but is expected to have type
-  forall {x : EReal}, Iff (Eq.{1} EReal (Neg.neg.{0} EReal EReal.instNegEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)))
-Case conversion may be inaccurate. Consider using '#align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iffₓ'. -/
 @[simp]
 theorem neg_eq_zero_iff {x : EReal} : -x = 0 ↔ x = 0 := by rw [neg_eq_iff_eq_neg, neg_zero]
 #align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iff
 
-/- warning: ereal.neg_le_of_neg_le -> EReal.neg_le_of_neg_le is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
-but is expected to have type
-  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
-Case conversion may be inaccurate. Consider using '#align ereal.neg_le_of_neg_le EReal.neg_le_of_neg_leₓ'. -/
 /-- if `-a ≤ b` then `-b ≤ a` on `ereal`. -/
 protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   by
@@ -1380,44 +887,20 @@ protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   · exact le_top
 #align ereal.neg_le_of_neg_le EReal.neg_le_of_neg_le
 
-/- warning: ereal.neg_le -> EReal.neg_le is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
-but is expected to have type
-  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
-Case conversion may be inaccurate. Consider using '#align ereal.neg_le EReal.neg_leₓ'. -/
 /-- `-a ≤ b ↔ -b ≤ a` on `ereal`. -/
 protected theorem neg_le {a b : EReal} : -a ≤ b ↔ -b ≤ a :=
   ⟨EReal.neg_le_of_neg_le, EReal.neg_le_of_neg_le⟩
 #align ereal.neg_le EReal.neg_le
 
-/- warning: ereal.le_neg_of_le_neg -> EReal.le_neg_of_le_neg is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a (Neg.neg.{0} EReal EReal.hasNeg b)) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b (Neg.neg.{0} EReal EReal.hasNeg a))
-but is expected to have type
-  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Neg.neg.{0} EReal EReal.instNegEReal b)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) b (Neg.neg.{0} EReal EReal.instNegEReal a))
-Case conversion may be inaccurate. Consider using '#align ereal.le_neg_of_le_neg EReal.le_neg_of_le_negₓ'. -/
 /-- `a ≤ -b → b ≤ -a` on ereal -/
 theorem le_neg_of_le_neg {a b : EReal} (h : a ≤ -b) : b ≤ -a := by
   rwa [← neg_neg b, EReal.neg_le, neg_neg]
 #align ereal.le_neg_of_le_neg EReal.le_neg_of_le_neg
 
-/- warning: ereal.neg_le_neg_iff -> EReal.neg_le_neg_iff is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) (Neg.neg.{0} EReal EReal.hasNeg b)) (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b a)
-but is expected to have type
-  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) (Neg.neg.{0} EReal EReal.instNegEReal b)) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) b a)
-Case conversion may be inaccurate. Consider using '#align ereal.neg_le_neg_iff EReal.neg_le_neg_iffₓ'. -/
 @[simp]
 theorem neg_le_neg_iff {a b : EReal} : -a ≤ -b ↔ b ≤ a := by conv_lhs => rw [EReal.neg_le, neg_neg]
 #align ereal.neg_le_neg_iff EReal.neg_le_neg_iff
 
-/- warning: ereal.neg_order_iso -> EReal.negOrderIso is a dubious translation:
-lean 3 declaration is
-  OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OrderDual.hasLe.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
-but is expected to have type
-  OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OrderDual.instLEOrderDual.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)))
-Case conversion may be inaccurate. Consider using '#align ereal.neg_order_iso EReal.negOrderIsoₓ'. -/
 /-- Negation as an order reversing isomorphism on `ereal`. -/
 def negOrderIso : EReal ≃o ERealᵒᵈ :=
   { Equiv.neg EReal with
@@ -1426,12 +909,6 @@ def negOrderIso : EReal ≃o ERealᵒᵈ :=
     map_rel_iff' := fun x y => neg_le_neg_iff }
 #align ereal.neg_order_iso EReal.negOrderIso
 
-/- warning: ereal.neg_lt_of_neg_lt -> EReal.neg_lt_of_neg_lt is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
-but is expected to have type
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
-Case conversion may be inaccurate. Consider using '#align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_ltₓ'. -/
 theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   by
   apply lt_of_le_of_ne (EReal.neg_le_of_neg_le h.le)
@@ -1440,12 +917,6 @@ theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   exact lt_irrefl _ h
 #align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_lt
 
-/- warning: ereal.neg_lt_iff_neg_lt -> EReal.neg_lt_iff_neg_lt is a dubious translation:
-lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
-but is expected to have type
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
-Case conversion may be inaccurate. Consider using '#align ereal.neg_lt_iff_neg_lt EReal.neg_lt_iff_neg_ltₓ'. -/
 theorem neg_lt_iff_neg_lt {a b : EReal} : -a < b ↔ -b < a :=
   ⟨fun h => EReal.neg_lt_of_neg_lt h, fun h => EReal.neg_lt_of_neg_lt h⟩
 #align ereal.neg_lt_iff_neg_lt EReal.neg_lt_iff_neg_lt
@@ -1459,88 +930,40 @@ registered on `ereal`, beyond `sub_neg_zero_monoid`, because of this bad behavio
 -/
 
 
-/- warning: ereal.bot_sub -> EReal.bot_sub is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot)
-but is expected to have type
-  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot)
-Case conversion may be inaccurate. Consider using '#align ereal.bot_sub EReal.bot_subₓ'. -/
 @[simp]
 theorem bot_sub (x : EReal) : ⊥ - x = ⊥ :=
   bot_add x
 #align ereal.bot_sub EReal.bot_sub
 
-/- warning: ereal.sub_top -> EReal.sub_top is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot)
-but is expected to have type
-  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot)
-Case conversion may be inaccurate. Consider using '#align ereal.sub_top EReal.sub_topₓ'. -/
 @[simp]
 theorem sub_top (x : EReal) : x - ⊤ = ⊥ :=
   add_bot x
 #align ereal.sub_top EReal.sub_top
 
-/- warning: ereal.top_sub_bot -> EReal.top_sub_bot is a dubious translation:
-lean 3 declaration is
-  Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) (Top.top.{0} EReal EReal.hasTop) (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Top.top.{0} EReal EReal.instTopEReal) (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.top_sub_bot EReal.top_sub_botₓ'. -/
 @[simp]
 theorem top_sub_bot : (⊤ : EReal) - ⊥ = ⊤ :=
   rfl
 #align ereal.top_sub_bot EReal.top_sub_bot
 
-/- warning: ereal.top_sub_coe -> EReal.top_sub_coe is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.top_sub_coe EReal.top_sub_coeₓ'. -/
 @[simp]
 theorem top_sub_coe (x : ℝ) : (⊤ : EReal) - x = ⊤ :=
   rfl
 #align ereal.top_sub_coe EReal.top_sub_coe
 
-/- warning: ereal.coe_sub_bot -> EReal.coe_sub_bot is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop)
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Real.toEReal x) (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_sub_bot EReal.coe_sub_botₓ'. -/
 @[simp]
 theorem coe_sub_bot (x : ℝ) : (x : EReal) - ⊥ = ⊤ :=
   rfl
 #align ereal.coe_sub_bot EReal.coe_sub_bot
 
-/- warning: ereal.sub_le_sub -> EReal.sub_le_sub is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) t z) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y t))
-but is expected to have type
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) t z) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) y t))
-Case conversion may be inaccurate. Consider using '#align ereal.sub_le_sub EReal.sub_le_subₓ'. -/
 theorem sub_le_sub {x y z t : EReal} (h : x ≤ y) (h' : t ≤ z) : x - z ≤ y - t :=
   add_le_add h (neg_le_neg_iff.2 h')
 #align ereal.sub_le_sub EReal.sub_le_sub
 
-/- warning: ereal.sub_lt_sub_of_lt_of_le -> EReal.sub_lt_sub_of_lt_of_le is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y z))
-but is expected to have type
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) y z))
-Case conversion may be inaccurate. Consider using '#align ereal.sub_lt_sub_of_lt_of_le EReal.sub_lt_sub_of_lt_of_leₓ'. -/
 theorem sub_lt_sub_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x - t < y - z :=
   add_lt_add_of_lt_of_le h (neg_le_neg_iff.2 h') (by simp [ht]) (by simp [hz])
 #align ereal.sub_lt_sub_of_lt_of_le EReal.sub_lt_sub_of_lt_of_le
 
-/- warning: ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal -> EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal EReal (HasLiftT.mk.{1, 1} NNReal EReal (CoeTCₓ.coe.{1, 1} NNReal EReal (coeTrans.{1, 1, 1} NNReal ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal) ENNReal.hasCoe))) (Real.toNNReal x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal EReal (HasLiftT.mk.{1, 1} NNReal EReal (CoeTCₓ.coe.{1, 1} NNReal EReal (coeTrans.{1, 1, 1} NNReal ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal) ENNReal.hasCoe))) (Real.toNNReal (Neg.neg.{0} Real Real.hasNeg x))))
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (Real.toEReal x) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (ENNReal.toEReal (ENNReal.some (Real.toNNReal x))) (ENNReal.toEReal (ENNReal.some (Real.toNNReal (Neg.neg.{0} Real Real.instNegReal x)))))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNRealₓ'. -/
 theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
     (x : EReal) = Real.toNNReal x - Real.toNNReal (-x) :=
   by
@@ -1557,12 +980,6 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
     rfl
 #align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal
 
-/- warning: ereal.to_real_sub -> EReal.toReal_sub is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal EReal.hasBot)) -> (Eq.{1} Real (EReal.toReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x y)) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (EReal.toReal x) (EReal.toReal y)))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal instERealBot)) -> (Eq.{1} Real (EReal.toReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x y)) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (EReal.toReal x) (EReal.toReal y)))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_sub EReal.toReal_subₓ'. -/
 theorem toReal_sub {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥) :
     toReal (x - y) = toReal x - toReal y :=
   by
@@ -1612,12 +1029,6 @@ theorem bot_mul_bot : (⊥ : EReal) * ⊥ = ⊤ :=
 #align ereal.bot_mul_bot EReal.bot_mul_bot
 -/
 
-/- warning: ereal.mul_top_of_pos -> EReal.mul_top_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.mul_top_of_pos EReal.mul_top_of_posₓ'. -/
 theorem mul_top_of_pos {x : EReal} (h : 0 < x) : x * ⊤ = ⊤ :=
   by
   induction x using EReal.rec
@@ -1626,12 +1037,6 @@ theorem mul_top_of_pos {x : EReal} (h : 0 < x) : x * ⊤ = ⊤ :=
   · rfl
 #align ereal.mul_top_of_pos EReal.mul_top_of_pos
 
-/- warning: ereal.mul_top_of_neg -> EReal.mul_top_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.mul_top_of_neg EReal.mul_top_of_negₓ'. -/
 theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
   by
   induction x using EReal.rec
@@ -1641,72 +1046,30 @@ theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
   · simpa only [not_top_lt] using h
 #align ereal.mul_top_of_neg EReal.mul_top_of_neg
 
-/- warning: ereal.top_mul_of_pos -> EReal.top_mul_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_pos EReal.top_mul_of_posₓ'. -/
 theorem top_mul_of_pos {x : EReal} (h : 0 < x) : ⊤ * x = ⊤ := by rw [EReal.mul_comm];
   exact mul_top_of_pos h
 #align ereal.top_mul_of_pos EReal.top_mul_of_pos
 
-/- warning: ereal.top_mul_of_neg -> EReal.top_mul_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_neg EReal.top_mul_of_negₓ'. -/
 theorem top_mul_of_neg {x : EReal} (h : x < 0) : ⊤ * x = ⊥ := by rw [EReal.mul_comm];
   exact mul_top_of_neg h
 #align ereal.top_mul_of_neg EReal.top_mul_of_neg
 
-/- warning: ereal.coe_mul_top_of_pos -> EReal.coe_mul_top_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_top_of_pos EReal.coe_mul_top_of_posₓ'. -/
 theorem coe_mul_top_of_pos {x : ℝ} (h : 0 < x) : (x : EReal) * ⊤ = ⊤ :=
   mul_top_of_pos (EReal.coe_pos.2 h)
 #align ereal.coe_mul_top_of_pos EReal.coe_mul_top_of_pos
 
-/- warning: ereal.coe_mul_top_of_neg -> EReal.coe_mul_top_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_top_of_neg EReal.coe_mul_top_of_negₓ'. -/
 theorem coe_mul_top_of_neg {x : ℝ} (h : x < 0) : (x : EReal) * ⊤ = ⊥ :=
   mul_top_of_neg (EReal.coe_neg'.2 h)
 #align ereal.coe_mul_top_of_neg EReal.coe_mul_top_of_neg
 
-/- warning: ereal.top_mul_coe_of_pos -> EReal.top_mul_coe_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.top_mul_coe_of_pos EReal.top_mul_coe_of_posₓ'. -/
 theorem top_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊤ : EReal) * x = ⊤ :=
   top_mul_of_pos (EReal.coe_pos.2 h)
 #align ereal.top_mul_coe_of_pos EReal.top_mul_coe_of_pos
 
-/- warning: ereal.top_mul_coe_of_neg -> EReal.top_mul_coe_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.top_mul_coe_of_neg EReal.top_mul_coe_of_negₓ'. -/
 theorem top_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊤ : EReal) * x = ⊥ :=
   top_mul_of_neg (EReal.coe_neg'.2 h)
 #align ereal.top_mul_coe_of_neg EReal.top_mul_coe_of_neg
 
-/- warning: ereal.mul_bot_of_pos -> EReal.mul_bot_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.mul_bot_of_pos EReal.mul_bot_of_posₓ'. -/
 theorem mul_bot_of_pos {x : EReal} (h : 0 < x) : x * ⊥ = ⊥ :=
   by
   induction x using EReal.rec
@@ -1715,12 +1078,6 @@ theorem mul_bot_of_pos {x : EReal} (h : 0 < x) : x * ⊥ = ⊥ :=
   · rfl
 #align ereal.mul_bot_of_pos EReal.mul_bot_of_pos
 
-/- warning: ereal.mul_bot_of_neg -> EReal.mul_bot_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.mul_bot_of_neg EReal.mul_bot_of_negₓ'. -/
 theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
   by
   induction x using EReal.rec
@@ -1730,72 +1087,30 @@ theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
   · simpa only [not_top_lt] using h
 #align ereal.mul_bot_of_neg EReal.mul_bot_of_neg
 
-/- warning: ereal.bot_mul_of_pos -> EReal.bot_mul_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_pos EReal.bot_mul_of_posₓ'. -/
 theorem bot_mul_of_pos {x : EReal} (h : 0 < x) : ⊥ * x = ⊥ := by rw [EReal.mul_comm];
   exact mul_bot_of_pos h
 #align ereal.bot_mul_of_pos EReal.bot_mul_of_pos
 
-/- warning: ereal.bot_mul_of_neg -> EReal.bot_mul_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_neg EReal.bot_mul_of_negₓ'. -/
 theorem bot_mul_of_neg {x : EReal} (h : x < 0) : ⊥ * x = ⊤ := by rw [EReal.mul_comm];
   exact mul_bot_of_neg h
 #align ereal.bot_mul_of_neg EReal.bot_mul_of_neg
 
-/- warning: ereal.coe_mul_bot_of_pos -> EReal.coe_mul_bot_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_bot_of_pos EReal.coe_mul_bot_of_posₓ'. -/
 theorem coe_mul_bot_of_pos {x : ℝ} (h : 0 < x) : (x : EReal) * ⊥ = ⊥ :=
   mul_bot_of_pos (EReal.coe_pos.2 h)
 #align ereal.coe_mul_bot_of_pos EReal.coe_mul_bot_of_pos
 
-/- warning: ereal.coe_mul_bot_of_neg -> EReal.coe_mul_bot_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_bot_of_neg EReal.coe_mul_bot_of_negₓ'. -/
 theorem coe_mul_bot_of_neg {x : ℝ} (h : x < 0) : (x : EReal) * ⊥ = ⊤ :=
   mul_bot_of_neg (EReal.coe_neg'.2 h)
 #align ereal.coe_mul_bot_of_neg EReal.coe_mul_bot_of_neg
 
-/- warning: ereal.bot_mul_coe_of_pos -> EReal.bot_mul_coe_of_pos is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Bot.bot.{0} EReal EReal.hasBot))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)) (Bot.bot.{0} EReal instERealBot))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_coe_of_pos EReal.bot_mul_coe_of_posₓ'. -/
 theorem bot_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊥ : EReal) * x = ⊥ :=
   bot_mul_of_pos (EReal.coe_pos.2 h)
 #align ereal.bot_mul_coe_of_pos EReal.bot_mul_coe_of_pos
 
-/- warning: ereal.bot_mul_coe_of_neg -> EReal.bot_mul_coe_of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop))
-but is expected to have type
-  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal))
-Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_coe_of_neg EReal.bot_mul_coe_of_negₓ'. -/
 theorem bot_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊥ : EReal) * x = ⊤ :=
   bot_mul_of_neg (EReal.coe_neg'.2 h)
 #align ereal.bot_mul_coe_of_neg EReal.bot_mul_coe_of_neg
 
-/- warning: ereal.to_real_mul -> EReal.toReal_mul is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Eq.{1} Real (EReal.toReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (EReal.toReal x) (EReal.toReal y))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, Eq.{1} Real (EReal.toReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (EReal.toReal x) (EReal.toReal y))
-Case conversion may be inaccurate. Consider using '#align ereal.to_real_mul EReal.toReal_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
   by
@@ -1871,54 +1186,24 @@ protected def abs : EReal → ℝ≥0∞
 #align ereal.abs EReal.abs
 -/
 
-/- warning: ereal.abs_top -> EReal.abs_top is a dubious translation:
-lean 3 declaration is
-  Eq.{1} ENNReal (EReal.abs (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
-but is expected to have type
-  Eq.{1} ENNReal (EReal.abs (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_top EReal.abs_topₓ'. -/
 @[simp]
 theorem abs_top : (⊤ : EReal).abs = ⊤ :=
   rfl
 #align ereal.abs_top EReal.abs_top
 
-/- warning: ereal.abs_bot -> EReal.abs_bot is a dubious translation:
-lean 3 declaration is
-  Eq.{1} ENNReal (EReal.abs (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
-but is expected to have type
-  Eq.{1} ENNReal (EReal.abs (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_bot EReal.abs_botₓ'. -/
 @[simp]
 theorem abs_bot : (⊥ : EReal).abs = ⊤ :=
   rfl
 #align ereal.abs_bot EReal.abs_bot
 
-/- warning: ereal.abs_def -> EReal.abs_def is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} ENNReal (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (ENNReal.ofReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x))
-but is expected to have type
-  forall (x : Real), Eq.{1} ENNReal (EReal.abs (Real.toEReal x)) (ENNReal.ofReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_def EReal.abs_defₓ'. -/
 theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal (|x|) :=
   rfl
 #align ereal.abs_def EReal.abs_def
 
-/- warning: ereal.abs_coe_lt_top -> EReal.abs_coe_lt_top is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
-but is expected to have type
-  forall (x : Real), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs (Real.toEReal x)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_coe_lt_top EReal.abs_coe_lt_topₓ'. -/
 theorem abs_coe_lt_top (x : ℝ) : (x : EReal).abs < ⊤ :=
   ENNReal.ofReal_lt_top
 #align ereal.abs_coe_lt_top EReal.abs_coe_lt_top
 
-/- warning: ereal.abs_eq_zero_iff -> EReal.abs_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal}, Iff (Eq.{1} ENNReal (EReal.abs x) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))))
-but is expected to have type
-  forall {x : EReal}, Iff (Eq.{1} ENNReal (EReal.abs x) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_eq_zero_iff EReal.abs_eq_zero_iffₓ'. -/
 @[simp]
 theorem abs_eq_zero_iff {x : EReal} : x.abs = 0 ↔ x = 0 :=
   by
@@ -1928,33 +1213,15 @@ theorem abs_eq_zero_iff {x : EReal} : x.abs = 0 ↔ x = 0 :=
   · simp only [abs_top, ENNReal.top_ne_zero, top_ne_zero]
 #align ereal.abs_eq_zero_iff EReal.abs_eq_zero_iff
 
-/- warning: ereal.abs_zero -> EReal.abs_zero is a dubious translation:
-lean 3 declaration is
-  Eq.{1} ENNReal (EReal.abs (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))
-but is expected to have type
-  Eq.{1} ENNReal (EReal.abs (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_zero EReal.abs_zeroₓ'. -/
 @[simp]
 theorem abs_zero : (0 : EReal).abs = 0 := by rw [abs_eq_zero_iff]
 #align ereal.abs_zero EReal.abs_zero
 
-/- warning: ereal.coe_abs -> EReal.coe_abs is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x))
-but is expected to have type
-  forall (x : Real), Eq.{1} EReal (ENNReal.toEReal (EReal.abs (Real.toEReal x))) (Real.toEReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x))
-Case conversion may be inaccurate. Consider using '#align ereal.coe_abs EReal.coe_absₓ'. -/
 @[simp]
 theorem coe_abs (x : ℝ) : ((x : EReal).abs : EReal) = (|x| : ℝ) := by
   rcases lt_trichotomy 0 x with (hx | rfl | hx) <;> simp [abs_def]
 #align ereal.coe_abs EReal.coe_abs
 
-/- warning: ereal.abs_mul -> EReal.abs_mul is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal) (y : EReal), Eq.{1} ENNReal (EReal.abs (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x y)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (EReal.abs x) (EReal.abs y))
-but is expected to have type
-  forall (x : EReal) (y : EReal), Eq.{1} ENNReal (EReal.abs (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x y)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (EReal.abs x) (EReal.abs y))
-Case conversion may be inaccurate. Consider using '#align ereal.abs_mul EReal.abs_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 @[simp]
 theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
@@ -2009,23 +1276,11 @@ theorem sign_bot : SignType.sign (⊥ : EReal) = -1 :=
 #align ereal.sign_bot EReal.sign_bot
 -/
 
-/- warning: ereal.sign_coe -> EReal.sign_coe is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (coeFn.{1, 1} (OrderHom.{0, 0} Real SignType Real.preorder (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} Real SignType Real.preorder (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => Real -> SignType) (OrderHom.hasCoeToFun.{0, 0} Real SignType Real.preorder (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} Real Real.hasZero Real.preorder (fun (a : Real) (b : Real) => Real.decidableLT a b)) x)
-but is expected to have type
-  forall (x : Real), Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) (Real.toEReal x)) (OrderHom.toFun.{0, 0} Real SignType Real.instPreorderReal (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} Real Real.instZeroReal Real.instPreorderReal (fun (a : Real) (b : Real) => Real.decidableLT a b)) x)
-Case conversion may be inaccurate. Consider using '#align ereal.sign_coe EReal.sign_coeₓ'. -/
 @[simp]
 theorem sign_coe (x : ℝ) : SignType.sign (x : EReal) = SignType.sign x := by
   simp only [SignType.sign, OrderHom.coe_fun_mk, EReal.coe_pos, EReal.coe_neg']
 #align ereal.sign_coe EReal.sign_coe
 
-/- warning: ereal.sign_mul -> EReal.sign_mul is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal) (y : EReal), Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x y)) (HMul.hMul.{0, 0, 0} SignType SignType SignType (instHMul.{0} SignType SignType.hasMul) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))
-but is expected to have type
-  forall (x : EReal) (y : EReal), Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x y)) (HMul.hMul.{0, 0, 0} SignType SignType SignType (instHMul.{0} SignType SignType.instMulSignType) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))
-Case conversion may be inaccurate. Consider using '#align ereal.sign_mul EReal.sign_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 @[simp]
 theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignType.sign y :=
@@ -2051,12 +1306,6 @@ theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignT
     simp_rw [bot_mul_coe_of_neg hy, sign_coe, sign_neg hy, sign_top, sign_bot, neg_one_mul, neg_neg]
 #align ereal.sign_mul EReal.sign_mul
 
-/- warning: ereal.sign_mul_abs -> EReal.sign_mul_abs is a dubious translation:
-lean 3 declaration is
-  forall (x : EReal), Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) SignType EReal (HasLiftT.mk.{1, 1} SignType EReal (CoeTCₓ.coe.{1, 1} SignType EReal (SignType.hasCoeT.{0} EReal EReal.hasZero EReal.hasOne EReal.hasNeg))) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (EReal.abs x))) x
-but is expected to have type
-  forall (x : EReal), Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (SignType.cast.{0} EReal instERealZero instERealOne EReal.instNegEReal (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x)) (ENNReal.toEReal (EReal.abs x))) x
-Case conversion may be inaccurate. Consider using '#align ereal.sign_mul_abs EReal.sign_mul_absₓ'. -/
 theorem sign_mul_abs (x : EReal) : (SignType.sign x * x.abs : EReal) = x :=
   by
   induction x using EReal.rec
@@ -2068,12 +1317,6 @@ theorem sign_mul_abs (x : EReal) : (SignType.sign x * x.abs : EReal) = x :=
   · simp
 #align ereal.sign_mul_abs EReal.sign_mul_abs
 
-/- warning: ereal.sign_eq_and_abs_eq_iff_eq -> EReal.sign_eq_and_abs_eq_iff_eq is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Iff (And (Eq.{1} ENNReal (EReal.abs x) (EReal.abs y)) (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))) (Eq.{1} EReal x y)
-but is expected to have type
-  forall {x : EReal} {y : EReal}, Iff (And (Eq.{1} ENNReal (EReal.abs x) (EReal.abs y)) (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))) (Eq.{1} EReal x y)
-Case conversion may be inaccurate. Consider using '#align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eqₓ'. -/
 theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
     x.abs = y.abs ∧ SignType.sign x = SignType.sign y ↔ x = y :=
   by
@@ -2082,9 +1325,6 @@ theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
   · rintro rfl; simp only [eq_self_iff_true, and_self_iff]
 #align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eq
 
-/- warning: ereal.le_iff_sign -> EReal.le_iff_sign is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ereal.le_iff_sign EReal.le_iff_signₓ'. -/
 theorem le_iff_sign {x y : EReal} :
     x ≤ y ↔
       SignType.sign x < SignType.sign y ∨
@@ -2135,23 +1375,11 @@ instance : PosMulReflectLT EReal :=
 instance : MulPosReflectLT EReal :=
   MulPosMono.toMulPosReflectLT
 
-/- warning: ereal.coe_pow -> EReal.coe_pow is a dubious translation:
-lean 3 declaration is
-  forall (x : Real) (n : Nat), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.commMonoidWithZero)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) n)
-but is expected to have type
-  forall (x : Real) (n : Nat), Eq.{1} EReal (Real.toEReal (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.instCommMonoidWithZeroEReal)))) (Real.toEReal x) n)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_pow EReal.coe_powₓ'. -/
 @[simp, norm_cast]
 theorem coe_pow (x : ℝ) (n : ℕ) : (↑(x ^ n) : EReal) = x ^ n :=
   map_pow (⟨coe, coe_one, coe_mul⟩ : ℝ →* EReal) _ _
 #align ereal.coe_pow EReal.coe_pow
 
-/- warning: ereal.coe_ennreal_pow -> EReal.coe_ennreal_pow is a dubious translation:
-lean 3 declaration is
-  forall (x : ENNReal) (n : Nat), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (HPow.hPow.{0, 0, 0} ENNReal Nat ENNReal (instHPow.{0, 0} ENNReal Nat (Monoid.Pow.{0} ENNReal (MonoidWithZero.toMonoid.{0} ENNReal (Semiring.toMonoidWithZero.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))))) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.commMonoidWithZero)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) n)
-but is expected to have type
-  forall (x : ENNReal) (n : Nat), Eq.{1} EReal (ENNReal.toEReal (HPow.hPow.{0, 0, 0} ENNReal Nat ENNReal (instHPow.{0, 0} ENNReal Nat (Monoid.Pow.{0} ENNReal (MonoidWithZero.toMonoid.{0} ENNReal (Semiring.toMonoidWithZero.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))))) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.instCommMonoidWithZeroEReal)))) (ENNReal.toEReal x) n)
-Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_pow EReal.coe_ennreal_powₓ'. -/
 @[simp, norm_cast]
 theorem coe_ennreal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : EReal) = x ^ n :=
   map_pow (⟨coe, coe_ennreal_one, coe_ennreal_mul⟩ : ℝ≥0∞ →* EReal) _ _
Diff
@@ -239,20 +239,16 @@ theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_p
     (neg_bot : ∀ x : ℝ, x < 0 → P x ⊥) (bot_top : P ⊥ ⊤) (bot_pos : ∀ x : ℝ, 0 < x → P ⊥ x)
     (bot_zero : P ⊥ 0) (bot_neg : ∀ x : ℝ, x < 0 → P ⊥ x) (bot_bot : P ⊥ ⊥) : ∀ x y, P x y
   | ⊥, ⊥ => bot_bot
-  | ⊥, (y : ℝ) => by
-    rcases lt_trichotomy 0 y with (hy | rfl | hy)
+  | ⊥, (y : ℝ) => by rcases lt_trichotomy 0 y with (hy | rfl | hy);
     exacts[bot_pos y hy, bot_zero, bot_neg y hy]
   | ⊥, ⊤ => bot_top
-  | (x : ℝ), ⊥ => by
-    rcases lt_trichotomy 0 x with (hx | rfl | hx)
+  | (x : ℝ), ⊥ => by rcases lt_trichotomy 0 x with (hx | rfl | hx);
     exacts[pos_bot x hx, zero_bot, neg_bot x hx]
   | (x : ℝ), (y : ℝ) => coe_coe _ _
-  | (x : ℝ), ⊤ => by
-    rcases lt_trichotomy 0 x with (hx | rfl | hx)
+  | (x : ℝ), ⊤ => by rcases lt_trichotomy 0 x with (hx | rfl | hx);
     exacts[pos_top x hx, zero_top, neg_top x hx]
   | ⊤, ⊥ => top_bot
-  | ⊤, (y : ℝ) => by
-    rcases lt_trichotomy 0 y with (hy | rfl | hy)
+  | ⊤, (y : ℝ) => by rcases lt_trichotomy 0 y with (hy | rfl | hy);
     exacts[top_pos y hy, top_zero, top_neg y hy]
   | ⊤, ⊤ => top_top
 #align ereal.induction₂ EReal.induction₂
@@ -270,20 +266,20 @@ instance : MulZeroOneClass EReal :=
     EReal.hasZero with
     one_mul := fun x => by
       induction x using EReal.rec <;>
-        · dsimp only [(· * ·)]
+        · dsimp only [(· * ·)];
           simp only [EReal.mul, ← EReal.coe_one, zero_lt_one, if_true, one_mul]
     mul_one := fun x => by
       induction x using EReal.rec <;>
-        · dsimp only [(· * ·)]
+        · dsimp only [(· * ·)];
           simp only [EReal.mul, ← EReal.coe_one, zero_lt_one, if_true, mul_one]
     zero_mul := fun x => by
       induction x using EReal.rec <;>
-        · simp only [(· * ·)]
+        · simp only [(· * ·)];
           simp only [EReal.mul, ← EReal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
             eq_self_iff_true, MulZeroClass.zero_mul]
     mul_zero := fun x => by
       induction x using EReal.rec <;>
-        · simp only [(· * ·)]
+        · simp only [(· * ·)];
           simp only [EReal.mul, ← EReal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
             eq_self_iff_true, MulZeroClass.mul_zero] }
 
@@ -392,9 +388,7 @@ but is expected to have type
   forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_top EReal.coe_lt_topₓ'. -/
 @[simp]
-theorem coe_lt_top (x : ℝ) : (x : EReal) < ⊤ :=
-  by
-  apply WithBot.coe_lt_coe.2
+theorem coe_lt_top (x : ℝ) : (x : EReal) < ⊤ := by apply WithBot.coe_lt_coe.2;
   exact WithTop.coe_lt_top _
 #align ereal.coe_lt_top EReal.coe_lt_top
 
@@ -681,8 +675,7 @@ Case conversion may be inaccurate. Consider using '#align ereal.eq_top_iff_foral
 theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal) < x :=
   by
   constructor
-  · rintro rfl
-    exact EReal.coe_lt_top
+  · rintro rfl; exact EReal.coe_lt_top
   · contrapose!
     intro h
     exact ⟨x.to_real, le_coe_to_real h⟩
@@ -697,8 +690,7 @@ Case conversion may be inaccurate. Consider using '#align ereal.eq_bot_iff_foral
 theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : EReal) :=
   by
   constructor
-  · rintro rfl
-    exact bot_lt_coe
+  · rintro rfl; exact bot_lt_coe
   · contrapose!
     intro h
     exact ⟨x.to_real, coe_to_real_le h⟩
@@ -778,9 +770,7 @@ Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_t
 @[simp]
 theorem coe_ennreal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : EReal) = ⊤ ↔ x = ⊤
   | ⊤ => by simp
-  | some x => by
-    simp only [ENNReal.coe_ne_top, iff_false_iff, ENNReal.some_eq_coe]
-    decide
+  | some x => by simp only [ENNReal.coe_ne_top, iff_false_iff, ENNReal.some_eq_coe]; decide
 #align ereal.coe_ennreal_eq_top_iff EReal.coe_ennreal_eq_top_iff
 
 #print EReal.coe_nnreal_ne_top /-
@@ -1162,8 +1152,7 @@ theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z
   · simp only [← coe_add, bot_add, bot_lt_coe]
   · simp
   · exact (lt_irrefl _ (h.trans (bot_lt_coe x))).elim
-  · norm_cast  at h⊢
-    exact add_lt_add_right h _
+  · norm_cast  at h⊢; exact add_lt_add_right h _
   · simp only [← coe_add, top_add_coe, coe_lt_top]
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
@@ -1244,10 +1233,8 @@ lean 3 declaration is
 but is expected to have type
   forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.add_lt_top EReal.add_lt_topₓ'. -/
-theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ :=
-  by
-  rw [← EReal.top_add_top]
-  exact EReal.add_lt_add hx.lt_top hy.lt_top
+theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ := by
+  rw [← EReal.top_add_top]; exact EReal.add_lt_add hx.lt_top hy.lt_top
 #align ereal.add_lt_top EReal.add_lt_top
 
 /-! ### Negation -/
@@ -1266,10 +1253,7 @@ instance : Neg EReal :=
   ⟨EReal.neg⟩
 
 instance : SubNegZeroMonoid EReal :=
-  { EReal.addMonoid, EReal.hasNeg with
-    neg_zero := by
-      change ((-0 : ℝ) : EReal) = 0
-      simp }
+  { EReal.addMonoid, EReal.hasNeg with neg_zero := by change ((-0 : ℝ) : EReal) = 0; simp }
 
 /- warning: ereal.neg_def clashes with ereal.coe_neg -> EReal.coe_neg
 warning: ereal.neg_def -> EReal.coe_neg is a dubious translation:
@@ -1336,9 +1320,7 @@ instance : InvolutiveNeg EReal where
     match a with
     | ⊥ => rfl
     | ⊤ => rfl
-    | (a : ℝ) => by
-      norm_cast
-      simp [neg_neg a]
+    | (a : ℝ) => by norm_cast; simp [neg_neg a]
 
 /- warning: ereal.to_real_neg -> EReal.toReal_neg is a dubious translation:
 lean 3 declaration is
@@ -1391,8 +1373,7 @@ protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   · simpa only [coe_ne_top, neg_bot, top_le_iff] using h
   · exact bot_le
   · simpa only [coe_ne_top, le_bot_iff] using h
-  · norm_cast  at h⊢
-    exact neg_le.1 h
+  · norm_cast  at h⊢; exact neg_le.1 h
   · exact bot_le
   · exact le_top
   · exact le_top
@@ -1564,18 +1545,13 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
     (x : EReal) = Real.toNNReal x - Real.toNNReal (-x) :=
   by
   rcases le_or_lt 0 x with (h | h)
-  · have : Real.toNNReal x = ⟨x, h⟩ := by
-      ext
-      simp [h]
+  · have : Real.toNNReal x = ⟨x, h⟩ := by ext; simp [h]
     simp only [Real.toNNReal_of_nonpos (neg_nonpos.mpr h), this, sub_zero, ENNReal.coe_zero,
       coe_ennreal_zero, coe_coe]
     rfl
   · have : (x : EReal) = -(-x : ℝ) := by simp
     conv_lhs => rw [this]
-    have : Real.toNNReal (-x) = ⟨-x, neg_nonneg.mpr h.le⟩ :=
-      by
-      ext
-      simp [neg_nonneg.mpr h.le]
+    have : Real.toNNReal (-x) = ⟨-x, neg_nonneg.mpr h.le⟩ := by ext; simp [neg_nonneg.mpr h.le]
     simp only [Real.toNNReal_of_nonpos h.le, this, zero_sub, neg_inj, coe_neg, ENNReal.coe_zero,
       coe_ennreal_zero, coe_coe]
     rfl
@@ -1671,9 +1647,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_pos EReal.top_mul_of_posₓ'. -/
-theorem top_mul_of_pos {x : EReal} (h : 0 < x) : ⊤ * x = ⊤ :=
-  by
-  rw [EReal.mul_comm]
+theorem top_mul_of_pos {x : EReal} (h : 0 < x) : ⊤ * x = ⊤ := by rw [EReal.mul_comm];
   exact mul_top_of_pos h
 #align ereal.top_mul_of_pos EReal.top_mul_of_pos
 
@@ -1683,9 +1657,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Bot.bot.{0} EReal instERealBot))
 Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_neg EReal.top_mul_of_negₓ'. -/
-theorem top_mul_of_neg {x : EReal} (h : x < 0) : ⊤ * x = ⊥ :=
-  by
-  rw [EReal.mul_comm]
+theorem top_mul_of_neg {x : EReal} (h : x < 0) : ⊤ * x = ⊥ := by rw [EReal.mul_comm];
   exact mul_top_of_neg h
 #align ereal.top_mul_of_neg EReal.top_mul_of_neg
 
@@ -1764,9 +1736,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot))
 Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_pos EReal.bot_mul_of_posₓ'. -/
-theorem bot_mul_of_pos {x : EReal} (h : 0 < x) : ⊥ * x = ⊥ :=
-  by
-  rw [EReal.mul_comm]
+theorem bot_mul_of_pos {x : EReal} (h : 0 < x) : ⊥ * x = ⊥ := by rw [EReal.mul_comm];
   exact mul_bot_of_pos h
 #align ereal.bot_mul_of_pos EReal.bot_mul_of_pos
 
@@ -1776,9 +1746,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_neg EReal.bot_mul_of_negₓ'. -/
-theorem bot_mul_of_neg {x : EReal} (h : x < 0) : ⊥ * x = ⊤ :=
-  by
-  rw [EReal.mul_comm]
+theorem bot_mul_of_neg {x : EReal} (h : x < 0) : ⊥ * x = ⊤ := by rw [EReal.mul_comm];
   exact mul_bot_of_neg h
 #align ereal.bot_mul_of_neg EReal.bot_mul_of_neg
 
@@ -1888,9 +1856,7 @@ protected theorem neg_mul (x y : EReal) : -x * y = -(x * y) :=
 instance : HasDistribNeg EReal :=
   { EReal.hasInvolutiveNeg with
     neg_mul := EReal.neg_mul
-    mul_neg := fun x y => by
-      rw [x.mul_comm, x.mul_comm]
-      exact y.neg_mul x }
+    mul_neg := fun x y => by rw [x.mul_comm, x.mul_comm]; exact y.neg_mul x }
 
 /-! ### Absolute value -/
 
@@ -2112,10 +2078,8 @@ theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
     x.abs = y.abs ∧ SignType.sign x = SignType.sign y ↔ x = y :=
   by
   constructor
-  · rintro ⟨habs, hsign⟩
-    rw [← x.sign_mul_abs, ← y.sign_mul_abs, habs, hsign]
-  · rintro rfl
-    simp only [eq_self_iff_true, and_self_iff]
+  · rintro ⟨habs, hsign⟩; rw [← x.sign_mul_abs, ← y.sign_mul_abs, habs, hsign]
+  · rintro rfl; simp only [eq_self_iff_true, and_self_iff]
 #align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eq
 
 /- warning: ereal.le_iff_sign -> EReal.le_iff_sign is a dubious translation:
@@ -2135,11 +2099,9 @@ theorem le_iff_sign {x y : EReal} :
     · rw [← x.sign_mul_abs, ← y.sign_mul_abs] at h
       cases SignType.sign y <;> rw [hs] at *
       · simp
-      · simp at h⊢
-        exact Or.inl h
+      · simp at h⊢; exact Or.inl h
       · simpa using h
-  · rintro (h | h | h | h)
-    · exact (sign.monotone.reflect_lt h).le
+  · rintro (h | h | h | h); · exact (sign.monotone.reflect_lt h).le
     all_goals rw [← x.sign_mul_abs, ← y.sign_mul_abs]; simp [h]
 #align ereal.le_iff_sign EReal.le_iff_sign
 
@@ -2156,9 +2118,7 @@ instance : PosMulMono EReal :=
     ⟨by
       rintro ⟨x, x0⟩ a b h; dsimp
       rcases le_iff_sign.mp h with (h | h | h | h)
-      · rw [le_iff_sign]
-        left
-        simp [sign_pos x0, h]
+      · rw [le_iff_sign]; left; simp [sign_pos x0, h]
       all_goals
         rw [← x.sign_mul_abs, ← a.sign_mul_abs, ← b.sign_mul_abs, sign_pos x0]
         simp only [h]; dsimp
Diff
@@ -2119,10 +2119,7 @@ theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
 #align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eq
 
 /- warning: ereal.le_iff_sign -> EReal.le_iff_sign is a dubious translation:
-lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) (Or (LT.lt.{0} SignType (Preorder.toHasLt.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs x) (EReal.abs y)))))))
-but is expected to have type
-  forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) (Or (LT.lt.{0} SignType (Preorder.toLT.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType)))))) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs x) (EReal.abs y)))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align ereal.le_iff_sign EReal.le_iff_signₓ'. -/
 theorem le_iff_sign {x y : EReal} :
     x ≤ y ↔
@@ -2208,19 +2205,15 @@ open Positivity
 
 private theorem ereal_coe_ne_zero {r : ℝ} : r ≠ 0 → (r : EReal) ≠ 0 :=
   EReal.coe_ne_zero.2
-#align tactic.ereal_coe_ne_zero tactic.ereal_coe_ne_zero
 
 private theorem ereal_coe_nonneg {r : ℝ} : 0 ≤ r → 0 ≤ (r : EReal) :=
   EReal.coe_nonneg.2
-#align tactic.ereal_coe_nonneg tactic.ereal_coe_nonneg
 
 private theorem ereal_coe_pos {r : ℝ} : 0 < r → 0 < (r : EReal) :=
   EReal.coe_pos.2
-#align tactic.ereal_coe_pos tactic.ereal_coe_pos
 
 private theorem ereal_coe_ennreal_pos {r : ℝ≥0∞} : 0 < r → 0 < (r : EReal) :=
   EReal.coe_ennreal_pos.2
-#align tactic.ereal_coe_ennreal_pos tactic.ereal_coe_ennreal_pos
 
 /-- Extension for the `positivity` tactic: cast from `ℝ` to `ereal`. -/
 @[positivity]
Diff
@@ -82,7 +82,7 @@ namespace EReal
 
 /- warning: ereal.decidable_lt -> EReal.decidableLt is a dubious translation:
 lean 3 declaration is
-  DecidableRel.{1} EReal (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
+  DecidableRel.{1} EReal (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
 but is expected to have type
   DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.238 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.240 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.238 x._@.Mathlib.Data.Real.EReal._hyg.240)
 Case conversion may be inaccurate. Consider using '#align ereal.decidable_lt EReal.decidableLtₓ'. -/
@@ -116,7 +116,7 @@ theorem coe_injective : Injective (coe : ℝ → EReal) :=
 
 /- warning: ereal.coe_le_coe_iff -> EReal.coe_le_coe_iff is a dubious translation:
 lean 3 declaration is
-  forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LE.le.{0} Real Real.hasLe x y)
+  forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LE.le.{0} Real Real.hasLe x y)
 but is expected to have type
   forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Real.toEReal y)) (LE.le.{0} Real Real.instLEReal x y)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_le_coe_iff EReal.coe_le_coe_iffₓ'. -/
@@ -127,7 +127,7 @@ protected theorem coe_le_coe_iff {x y : ℝ} : (x : EReal) ≤ (y : EReal) ↔ x
 
 /- warning: ereal.coe_lt_coe_iff -> EReal.coe_lt_coe_iff is a dubious translation:
 lean 3 declaration is
-  forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LT.lt.{0} Real Real.hasLt x y)
+  forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LT.lt.{0} Real Real.hasLt x y)
 but is expected to have type
   forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Real.toEReal y)) (LT.lt.{0} Real Real.instLTReal x y)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_coe_iff EReal.coe_lt_coe_iffₓ'. -/
@@ -362,7 +362,7 @@ theorem toReal_coe (x : ℝ) : toReal (x : EReal) = x :=
 
 /- warning: ereal.bot_lt_coe -> EReal.bot_lt_coe is a dubious translation:
 lean 3 declaration is
-  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)
+  forall (x : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)
 but is expected to have type
   forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)
 Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_coe EReal.bot_lt_coeₓ'. -/
@@ -387,7 +387,7 @@ theorem bot_ne_coe (x : ℝ) : (⊥ : EReal) ≠ x :=
 
 /- warning: ereal.coe_lt_top -> EReal.coe_lt_top is a dubious translation:
 lean 3 declaration is
-  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)
+  forall (x : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)
 but is expected to have type
   forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_top EReal.coe_lt_topₓ'. -/
@@ -414,7 +414,7 @@ theorem top_ne_coe (x : ℝ) : (⊤ : EReal) ≠ x :=
 
 /- warning: ereal.bot_lt_zero -> EReal.bot_lt_zero is a dubious translation:
 lean 3 declaration is
-  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
+  LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
 but is expected to have type
   LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
 Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_zero EReal.bot_lt_zeroₓ'. -/
@@ -447,7 +447,7 @@ theorem zero_ne_bot : (0 : EReal) ≠ ⊥ :=
 
 /- warning: ereal.zero_lt_top -> EReal.zero_lt_top is a dubious translation:
 lean 3 declaration is
-  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)
+  LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)
 but is expected to have type
   LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)
 Case conversion may be inaccurate. Consider using '#align ereal.zero_lt_top EReal.zero_lt_topₓ'. -/
@@ -579,7 +579,7 @@ theorem coe_ne_one {x : ℝ} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
 
 /- warning: ereal.coe_nonneg -> EReal.coe_nonneg is a dubious translation:
 lean 3 declaration is
-  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
+  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
 but is expected to have type
   forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Real.toEReal x)) (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_nonneg EReal.coe_nonnegₓ'. -/
@@ -590,7 +590,7 @@ protected theorem coe_nonneg {x : ℝ} : (0 : EReal) ≤ x ↔ 0 ≤ x :=
 
 /- warning: ereal.coe_nonpos -> EReal.coe_nonpos is a dubious translation:
 lean 3 declaration is
-  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LE.le.{0} Real Real.hasLe x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LE.le.{0} Real Real.hasLe x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
 but is expected to have type
   forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (LE.le.{0} Real Real.instLEReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
 Case conversion may be inaccurate. Consider using '#align ereal.coe_nonpos EReal.coe_nonposₓ'. -/
@@ -601,7 +601,7 @@ protected theorem coe_nonpos {x : ℝ} : (x : EReal) ≤ 0 ↔ x ≤ 0 :=
 
 /- warning: ereal.coe_pos -> EReal.coe_pos is a dubious translation:
 lean 3 declaration is
-  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
+  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
 but is expected to have type
   forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Real.toEReal x)) (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_pos EReal.coe_posₓ'. -/
@@ -612,7 +612,7 @@ protected theorem coe_pos {x : ℝ} : (0 : EReal) < x ↔ 0 < x :=
 
 /- warning: ereal.coe_neg' -> EReal.coe_neg' is a dubious translation:
 lean 3 declaration is
-  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
 but is expected to have type
   forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
 Case conversion may be inaccurate. Consider using '#align ereal.coe_neg' EReal.coe_neg'ₓ'. -/
@@ -623,7 +623,7 @@ protected theorem coe_neg' {x : ℝ} : (x : EReal) < 0 ↔ x < 0 :=
 
 /- warning: ereal.to_real_le_to_real -> EReal.toReal_le_toReal is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} Real Real.hasLe (EReal.toReal x) (EReal.toReal y))
+  forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} Real Real.hasLe (EReal.toReal x) (EReal.toReal y))
 but is expected to have type
   forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LE.le.{0} Real Real.instLEReal (EReal.toReal x) (EReal.toReal y))
 Case conversion may be inaccurate. Consider using '#align ereal.to_real_le_to_real EReal.toReal_le_toRealₓ'. -/
@@ -648,7 +648,7 @@ theorem coe_toReal {x : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) : (x.toReal :
 
 /- warning: ereal.le_coe_to_real -> EReal.le_coe_toReal is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)))
+  forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)))
 but is expected to have type
   forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (Real.toEReal (EReal.toReal x)))
 Case conversion may be inaccurate. Consider using '#align ereal.le_coe_to_real EReal.le_coe_toRealₓ'. -/
@@ -661,7 +661,7 @@ theorem le_coe_toReal {x : EReal} (h : x ≠ ⊤) : x ≤ x.toReal :=
 
 /- warning: ereal.coe_to_real_le -> EReal.coe_toReal_le is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)) x)
+  forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)) x)
 but is expected to have type
   forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (EReal.toReal x)) x)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_to_real_le EReal.coe_toReal_leₓ'. -/
@@ -674,7 +674,7 @@ theorem coe_toReal_le {x : EReal} (h : x ≠ ⊥) : ↑x.toReal ≤ x :=
 
 /- warning: ereal.eq_top_iff_forall_lt -> EReal.eq_top_iff_forall_lt is a dubious translation:
 lean 3 declaration is
-  forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y) x)
+  forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y) x)
 but is expected to have type
   forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal y) x)
 Case conversion may be inaccurate. Consider using '#align ereal.eq_top_iff_forall_lt EReal.eq_top_iff_forall_ltₓ'. -/
@@ -690,7 +690,7 @@ theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal)
 
 /- warning: ereal.eq_bot_iff_forall_lt -> EReal.eq_bot_iff_forall_lt is a dubious translation:
 lean 3 declaration is
-  forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
+  forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
 but is expected to have type
   forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal instERealBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (Real.toEReal y))
 Case conversion may be inaccurate. Consider using '#align ereal.eq_bot_iff_forall_lt EReal.eq_bot_iff_forall_ltₓ'. -/
@@ -790,7 +790,7 @@ theorem coe_nnreal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) ≠ ⊤ :=
 
 /- warning: ereal.coe_nnreal_lt_top -> EReal.coe_nnreal_lt_top is a dubious translation:
 lean 3 declaration is
-  forall (x : NNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
+  forall (x : NNReal), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
 but is expected to have type
   forall (x : NNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal (ENNReal.some x)) (Top.top.{0} EReal EReal.instTopEReal)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_nnreal_lt_top EReal.coe_nnreal_lt_topₓ'. -/
@@ -819,7 +819,7 @@ theorem coe_ennreal_injective : Injective (coe : ℝ≥0∞ → EReal) :=
 
 /- warning: ereal.coe_ennreal_le_coe_ennreal_iff -> EReal.coe_ennreal_le_coe_ennreal_iff is a dubious translation:
 lean 3 declaration is
-  forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
+  forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
 but is expected to have type
   forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal x) (ENNReal.toEReal y)) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) x y)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_le_coe_ennreal_iff EReal.coe_ennreal_le_coe_ennreal_iffₓ'. -/
@@ -830,7 +830,7 @@ theorem coe_ennreal_le_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≤ (y :
 
 /- warning: ereal.coe_ennreal_lt_coe_ennreal_iff -> EReal.coe_ennreal_lt_coe_ennreal_iff is a dubious translation:
 lean 3 declaration is
-  forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
+  forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
 but is expected to have type
   forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal x) (ENNReal.toEReal y)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) x y)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_lt_coe_ennreal_iff EReal.coe_ennreal_lt_coe_ennreal_iffₓ'. -/
@@ -898,7 +898,7 @@ theorem coe_ennreal_ne_one {x : ℝ≥0∞} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
 
 /- warning: ereal.coe_ennreal_nonneg -> EReal.coe_ennreal_nonneg is a dubious translation:
 lean 3 declaration is
-  forall (x : ENNReal), LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
+  forall (x : ENNReal), LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
 but is expected to have type
   forall (x : ENNReal), LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (ENNReal.toEReal x)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonnegₓ'. -/
@@ -908,7 +908,7 @@ theorem coe_ennreal_nonneg (x : ℝ≥0∞) : (0 : EReal) ≤ x :=
 
 /- warning: ereal.coe_ennreal_pos -> EReal.coe_ennreal_pos is a dubious translation:
 lean 3 declaration is
-  forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) x)
+  forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)) (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) x)
 but is expected to have type
   forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (ENNReal.toEReal x)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) x)
 Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_pos EReal.coe_ennreal_posₓ'. -/
@@ -919,7 +919,7 @@ theorem coe_ennreal_pos {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
 
 /- warning: ereal.bot_lt_coe_ennreal -> EReal.bot_lt_coe_ennreal is a dubious translation:
 lean 3 declaration is
-  forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
+  forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
 but is expected to have type
   forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (ENNReal.toEReal x)
 Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_coe_ennreal EReal.bot_lt_coe_ennrealₓ'. -/
@@ -1013,7 +1013,7 @@ theorem [anonymous] (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
 
 /- warning: ereal.exists_rat_btwn_of_lt -> EReal.exists_rat_btwn_of_lt is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
 but is expected to have type
   forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (Rat.cast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (Rat.cast.{0} Real Real.ratCast x)) b)))
 Case conversion may be inaccurate. Consider using '#align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_ltₓ'. -/
@@ -1034,7 +1034,7 @@ theorem exists_rat_btwn_of_lt :
 
 /- warning: ereal.lt_iff_exists_rat_btwn -> EReal.lt_iff_exists_rat_btwn is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
 but is expected to have type
   forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (Rat.cast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (Rat.cast.{0} Real Real.ratCast x)) b)))
 Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwnₓ'. -/
@@ -1045,7 +1045,7 @@ theorem lt_iff_exists_rat_btwn {a b : EReal} :
 
 /- warning: ereal.lt_iff_exists_real_btwn -> EReal.lt_iff_exists_real_btwn is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) b)))
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) b)))
 but is expected to have type
   forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal x)) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) b)))
 Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_real_btwn EReal.lt_iff_exists_real_btwnₓ'. -/
@@ -1151,7 +1151,7 @@ theorem toReal_add :
 
 /- warning: ereal.add_lt_add_right_coe -> EReal.add_lt_add_right_coe is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)))
+  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)))
 but is expected to have type
   forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x (Real.toEReal z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y (Real.toEReal z)))
 Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coeₓ'. -/
@@ -1172,7 +1172,7 @@ theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z
 
 /- warning: ereal.add_lt_add_of_lt_of_le -> EReal.add_lt_add_of_lt_of_le is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
 but is expected to have type
   forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y t))
 Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_leₓ'. -/
@@ -1190,7 +1190,7 @@ theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz
 
 /- warning: ereal.add_lt_add_left_coe -> EReal.add_lt_add_left_coe is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) y))
+  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) y))
 but is expected to have type
   forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal z) y))
 Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_left_coe EReal.add_lt_add_left_coeₓ'. -/
@@ -1200,7 +1200,7 @@ theorem add_lt_add_left_coe {x y : EReal} (h : x < y) (z : ℝ) : (z : EReal) +
 
 /- warning: ereal.add_lt_add -> EReal.add_lt_add is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
 but is expected to have type
   forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y t))
 Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add EReal.add_lt_addₓ'. -/
@@ -1229,7 +1229,7 @@ theorem add_eq_bot_iff {x y : EReal} : x + y = ⊥ ↔ x = ⊥ ∨ y = ⊥ := by
 
 /- warning: ereal.bot_lt_add_iff -> EReal.bot_lt_add_iff is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) x) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) y))
+  forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) x) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) y))
 but is expected to have type
   forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) x) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) y))
 Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_add_iff EReal.bot_lt_add_iffₓ'. -/
@@ -1240,7 +1240,7 @@ theorem bot_lt_add_iff {x y : EReal} : ⊥ < x + y ↔ ⊥ < x ∧ ⊥ < y := by
 
 /- warning: ereal.add_lt_top -> EReal.add_lt_top is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y) (Top.top.{0} EReal EReal.hasTop))
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y) (Top.top.{0} EReal EReal.hasTop))
 but is expected to have type
   forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.add_lt_top EReal.add_lt_topₓ'. -/
@@ -1379,7 +1379,7 @@ theorem neg_eq_zero_iff {x : EReal} : -x = 0 ↔ x = 0 := by rw [neg_eq_iff_eq_n
 
 /- warning: ereal.neg_le_of_neg_le -> EReal.neg_le_of_neg_le is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
 but is expected to have type
   forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
 Case conversion may be inaccurate. Consider using '#align ereal.neg_le_of_neg_le EReal.neg_le_of_neg_leₓ'. -/
@@ -1401,7 +1401,7 @@ protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
 
 /- warning: ereal.neg_le -> EReal.neg_le is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
 but is expected to have type
   forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
 Case conversion may be inaccurate. Consider using '#align ereal.neg_le EReal.neg_leₓ'. -/
@@ -1412,7 +1412,7 @@ protected theorem neg_le {a b : EReal} : -a ≤ b ↔ -b ≤ a :=
 
 /- warning: ereal.le_neg_of_le_neg -> EReal.le_neg_of_le_neg is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a (Neg.neg.{0} EReal EReal.hasNeg b)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b (Neg.neg.{0} EReal EReal.hasNeg a))
+  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a (Neg.neg.{0} EReal EReal.hasNeg b)) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b (Neg.neg.{0} EReal EReal.hasNeg a))
 but is expected to have type
   forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Neg.neg.{0} EReal EReal.instNegEReal b)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) b (Neg.neg.{0} EReal EReal.instNegEReal a))
 Case conversion may be inaccurate. Consider using '#align ereal.le_neg_of_le_neg EReal.le_neg_of_le_negₓ'. -/
@@ -1423,7 +1423,7 @@ theorem le_neg_of_le_neg {a b : EReal} (h : a ≤ -b) : b ≤ -a := by
 
 /- warning: ereal.neg_le_neg_iff -> EReal.neg_le_neg_iff is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) (Neg.neg.{0} EReal EReal.hasNeg b)) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b a)
+  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) (Neg.neg.{0} EReal EReal.hasNeg b)) (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b a)
 but is expected to have type
   forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) (Neg.neg.{0} EReal EReal.instNegEReal b)) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) b a)
 Case conversion may be inaccurate. Consider using '#align ereal.neg_le_neg_iff EReal.neg_le_neg_iffₓ'. -/
@@ -1433,7 +1433,7 @@ theorem neg_le_neg_iff {a b : EReal} : -a ≤ -b ↔ b ≤ a := by conv_lhs => r
 
 /- warning: ereal.neg_order_iso -> EReal.negOrderIso is a dubious translation:
 lean 3 declaration is
-  OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OrderDual.hasLe.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
+  OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OrderDual.hasLe.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
 but is expected to have type
   OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OrderDual.instLEOrderDual.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)))
 Case conversion may be inaccurate. Consider using '#align ereal.neg_order_iso EReal.negOrderIsoₓ'. -/
@@ -1447,7 +1447,7 @@ def negOrderIso : EReal ≃o ERealᵒᵈ :=
 
 /- warning: ereal.neg_lt_of_neg_lt -> EReal.neg_lt_of_neg_lt is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
 but is expected to have type
   forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
 Case conversion may be inaccurate. Consider using '#align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_ltₓ'. -/
@@ -1461,7 +1461,7 @@ theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
 
 /- warning: ereal.neg_lt_iff_neg_lt -> EReal.neg_lt_iff_neg_lt is a dubious translation:
 lean 3 declaration is
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
 but is expected to have type
   forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
 Case conversion may be inaccurate. Consider using '#align ereal.neg_lt_iff_neg_lt EReal.neg_lt_iff_neg_ltₓ'. -/
@@ -1535,7 +1535,7 @@ theorem coe_sub_bot (x : ℝ) : (x : EReal) - ⊥ = ⊤ :=
 
 /- warning: ereal.sub_le_sub -> EReal.sub_le_sub is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) t z) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y t))
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) t z) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y t))
 but is expected to have type
   forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) t z) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) y t))
 Case conversion may be inaccurate. Consider using '#align ereal.sub_le_sub EReal.sub_le_subₓ'. -/
@@ -1545,7 +1545,7 @@ theorem sub_le_sub {x y z t : EReal} (h : x ≤ y) (h' : t ≤ z) : x - z ≤ y
 
 /- warning: ereal.sub_lt_sub_of_lt_of_le -> EReal.sub_lt_sub_of_lt_of_le is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y z))
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y z))
 but is expected to have type
   forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) y z))
 Case conversion may be inaccurate. Consider using '#align ereal.sub_lt_sub_of_lt_of_le EReal.sub_lt_sub_of_lt_of_leₓ'. -/
@@ -1638,7 +1638,7 @@ theorem bot_mul_bot : (⊥ : EReal) * ⊥ = ⊤ :=
 
 /- warning: ereal.mul_top_of_pos -> EReal.mul_top_of_pos is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.mul_top_of_pos EReal.mul_top_of_posₓ'. -/
@@ -1652,7 +1652,7 @@ theorem mul_top_of_pos {x : EReal} (h : 0 < x) : x * ⊤ = ⊤ :=
 
 /- warning: ereal.mul_top_of_neg -> EReal.mul_top_of_neg is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot))
 Case conversion may be inaccurate. Consider using '#align ereal.mul_top_of_neg EReal.mul_top_of_negₓ'. -/
@@ -1667,7 +1667,7 @@ theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
 
 /- warning: ereal.top_mul_of_pos -> EReal.top_mul_of_pos is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Top.top.{0} EReal EReal.hasTop))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Top.top.{0} EReal EReal.hasTop))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_pos EReal.top_mul_of_posₓ'. -/
@@ -1679,7 +1679,7 @@ theorem top_mul_of_pos {x : EReal} (h : 0 < x) : ⊤ * x = ⊤ :=
 
 /- warning: ereal.top_mul_of_neg -> EReal.top_mul_of_neg is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Bot.bot.{0} EReal EReal.hasBot))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Bot.bot.{0} EReal EReal.hasBot))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Bot.bot.{0} EReal instERealBot))
 Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_neg EReal.top_mul_of_negₓ'. -/
@@ -1731,7 +1731,7 @@ theorem top_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊤ : EReal) * x = ⊥ :=
 
 /- warning: ereal.mul_bot_of_pos -> EReal.mul_bot_of_pos is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot))
 Case conversion may be inaccurate. Consider using '#align ereal.mul_bot_of_pos EReal.mul_bot_of_posₓ'. -/
@@ -1745,7 +1745,7 @@ theorem mul_bot_of_pos {x : EReal} (h : 0 < x) : x * ⊥ = ⊥ :=
 
 /- warning: ereal.mul_bot_of_neg -> EReal.mul_bot_of_neg is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.mul_bot_of_neg EReal.mul_bot_of_negₓ'. -/
@@ -1760,7 +1760,7 @@ theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
 
 /- warning: ereal.bot_mul_of_pos -> EReal.bot_mul_of_pos is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot))
 Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_pos EReal.bot_mul_of_posₓ'. -/
@@ -1772,7 +1772,7 @@ theorem bot_mul_of_pos {x : EReal} (h : 0 < x) : ⊥ * x = ⊥ :=
 
 /- warning: ereal.bot_mul_of_neg -> EReal.bot_mul_of_neg is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Top.top.{0} EReal EReal.hasTop))
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toHasLt.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Top.top.{0} EReal EReal.hasTop))
 but is expected to have type
   forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Top.top.{0} EReal EReal.instTopEReal))
 Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_neg EReal.bot_mul_of_negₓ'. -/
@@ -1939,7 +1939,7 @@ theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal (|x|) :=
 
 /- warning: ereal.abs_coe_lt_top -> EReal.abs_coe_lt_top is a dubious translation:
 lean 3 declaration is
-  forall (x : Real), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
+  forall (x : Real), LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
 but is expected to have type
   forall (x : Real), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs (Real.toEReal x)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
 Case conversion may be inaccurate. Consider using '#align ereal.abs_coe_lt_top EReal.abs_coe_lt_topₓ'. -/
@@ -2120,7 +2120,7 @@ theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
 
 /- warning: ereal.le_iff_sign -> EReal.le_iff_sign is a dubious translation:
 lean 3 declaration is
-  forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) (Or (LT.lt.{0} SignType (Preorder.toLT.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs x) (EReal.abs y)))))))
+  forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toHasLe.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) (Or (LT.lt.{0} SignType (Preorder.toHasLt.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs x) (EReal.abs y)))))))
 but is expected to have type
   forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) (Or (LT.lt.{0} SignType (Preorder.toLT.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType)))))) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs x) (EReal.abs y)))))))
 Case conversion may be inaccurate. Consider using '#align ereal.le_iff_sign EReal.le_iff_signₓ'. -/
Diff
@@ -500,12 +500,16 @@ theorem coe_mul (x y : ℝ) : (↑(x * y) : EReal) = x * y :=
   rfl
 #align ereal.coe_mul EReal.coe_mul
 
-#print EReal.coe_nsmul /-
+/- warning: ereal.coe_nsmul -> EReal.coe_nsmul is a dubious translation:
+lean 3 declaration is
+  forall (n : Nat) (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (SMul.smul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.addMonoid) n x)) (SMul.smul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal EReal.addMonoid) n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
+but is expected to have type
+  forall (n : Nat) (x : Real), Eq.{1} EReal (Real.toEReal (HSMul.hSMul.{0, 0, 0} Nat Real Real (instHSMul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.instAddMonoidReal)) n x)) (HSMul.hSMul.{0, 0, 0} Nat EReal EReal (instHSMul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal instERealAddMonoid)) n (Real.toEReal x))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_nsmul EReal.coe_nsmulₓ'. -/
 @[norm_cast]
 theorem coe_nsmul (n : ℕ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) _ _
 #align ereal.coe_nsmul EReal.coe_nsmul
--/
 
 /- warning: ereal.coe_bit0 clashes with [anonymous] -> [anonymous]
 warning: ereal.coe_bit0 -> [anonymous] is a dubious translation:
@@ -969,12 +973,16 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) =
     simp only [← ENNReal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, EReal.coe_mul]
 #align ereal.coe_ennreal_mul EReal.coe_ennreal_mul
 
-#print EReal.coe_ennreal_nsmul /-
+/- warning: ereal.coe_ennreal_nsmul -> EReal.coe_ennreal_nsmul is a dubious translation:
+lean 3 declaration is
+  forall (n : Nat) (x : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (SMul.smul.{0, 0} Nat ENNReal (AddMonoid.SMul.{0} ENNReal (AddMonoidWithOne.toAddMonoid.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne))) n x)) (SMul.smul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal EReal.addMonoid) n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x))
+but is expected to have type
+  forall (n : Nat) (x : ENNReal), Eq.{1} EReal (ENNReal.toEReal (HSMul.hSMul.{0, 0, 0} Nat ENNReal ENNReal (instHSMul.{0, 0} Nat ENNReal (AddMonoid.SMul.{0} ENNReal (AddMonoidWithOne.toAddMonoid.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal instENNRealAddCommMonoidWithOne)))) n x)) (HSMul.hSMul.{0, 0, 0} Nat EReal EReal (instHSMul.{0, 0} Nat EReal (AddMonoid.SMul.{0} EReal instERealAddMonoid)) n (ENNReal.toEReal x))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmulₓ'. -/
 @[norm_cast]
 theorem coe_ennreal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : EReal) = n • x :=
   map_nsmul (⟨coe, coe_ennreal_zero, coe_ennreal_add⟩ : ℝ≥0∞ →+ EReal) _ _
 #align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmul
--/
 
 /- warning: ereal.coe_ennreal_bit0 clashes with [anonymous] -> [anonymous]
 warning: ereal.coe_ennreal_bit0 -> [anonymous] is a dubious translation:
Diff
@@ -84,7 +84,7 @@ namespace EReal
 lean 3 declaration is
   DecidableRel.{1} EReal (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
 but is expected to have type
-  DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.222 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.224 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.222 x._@.Mathlib.Data.Real.EReal._hyg.224)
+  DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.238 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.240 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.238 x._@.Mathlib.Data.Real.EReal._hyg.240)
 Case conversion may be inaccurate. Consider using '#align ereal.decidable_lt EReal.decidableLtₓ'. -/
 -- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
 instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 
 ! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
+! leanprover-community/mathlib commit 2196ab363eb097c008d4497125e0dde23fb36db2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1348,18 +1348,14 @@ theorem toReal_neg : ∀ {a : EReal}, toReal (-a) = -toReal a
 #print EReal.neg_eq_top_iff /-
 @[simp]
 theorem neg_eq_top_iff {x : EReal} : -x = ⊤ ↔ x = ⊥ :=
-  by
-  rw [neg_eq_iff_neg_eq]
-  simp [eq_comm]
+  neg_eq_iff_eq_neg
 #align ereal.neg_eq_top_iff EReal.neg_eq_top_iff
 -/
 
 #print EReal.neg_eq_bot_iff /-
 @[simp]
 theorem neg_eq_bot_iff {x : EReal} : -x = ⊥ ↔ x = ⊤ :=
-  by
-  rw [neg_eq_iff_neg_eq]
-  simp [eq_comm]
+  neg_eq_iff_eq_neg
 #align ereal.neg_eq_bot_iff EReal.neg_eq_bot_iff
 -/
 
@@ -1370,10 +1366,7 @@ but is expected to have type
   forall {x : EReal}, Iff (Eq.{1} EReal (Neg.neg.{0} EReal EReal.instNegEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)))
 Case conversion may be inaccurate. Consider using '#align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iffₓ'. -/
 @[simp]
-theorem neg_eq_zero_iff {x : EReal} : -x = 0 ↔ x = 0 :=
-  by
-  rw [neg_eq_iff_neg_eq]
-  simp [eq_comm]
+theorem neg_eq_zero_iff {x : EReal} : -x = 0 ↔ x = 0 := by rw [neg_eq_iff_eq_neg, neg_zero]
 #align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iff
 
 /- warning: ereal.neg_le_of_neg_le -> EReal.neg_le_of_neg_le is a dubious translation:
Diff
@@ -84,7 +84,7 @@ namespace EReal
 lean 3 declaration is
   DecidableRel.{1} EReal (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
 but is expected to have type
-  DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.219 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.221 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.219 x._@.Mathlib.Data.Real.EReal._hyg.221)
+  DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.222 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.224 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.222 x._@.Mathlib.Data.Real.EReal._hyg.224)
 Case conversion may be inaccurate. Consider using '#align ereal.decidable_lt EReal.decidableLtₓ'. -/
 -- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
 instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
@@ -1007,7 +1007,7 @@ theorem [anonymous] (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
 lean 3 declaration is
   forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
 but is expected to have type
-  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x)) b)))
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (Rat.cast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (Rat.cast.{0} Real Real.ratCast x)) b)))
 Case conversion may be inaccurate. Consider using '#align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_ltₓ'. -/
 theorem exists_rat_btwn_of_lt :
     ∀ {a b : EReal} (hab : a < b), ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b
@@ -1028,7 +1028,7 @@ theorem exists_rat_btwn_of_lt :
 lean 3 declaration is
   forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
 but is expected to have type
-  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x)) b)))
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (Rat.cast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (Rat.cast.{0} Real Real.ratCast x)) b)))
 Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwnₓ'. -/
 theorem lt_iff_exists_rat_btwn {a b : EReal} :
     a < b ↔ ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b :=
Diff
@@ -280,12 +280,12 @@ instance : MulZeroOneClass EReal :=
       induction x using EReal.rec <;>
         · simp only [(· * ·)]
           simp only [EReal.mul, ← EReal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
-            eq_self_iff_true, zero_mul]
+            eq_self_iff_true, MulZeroClass.zero_mul]
     mul_zero := fun x => by
       induction x using EReal.rec <;>
         · simp only [(· * ·)]
           simp only [EReal.mul, ← EReal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
-            eq_self_iff_true, mul_zero] }
+            eq_self_iff_true, MulZeroClass.mul_zero] }
 
 /-! ### Real coercion -/
 
@@ -953,14 +953,14 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) =
   | ⊤, ⊤ => rfl
   | ⊤, (y : ℝ≥0) => by
     rw [ENNReal.top_mul']; split_ifs
-    · simp only [h, coe_ennreal_zero, mul_zero]
+    · simp only [h, coe_ennreal_zero, MulZeroClass.mul_zero]
     · have A : (0 : ℝ) < y := by
         simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), ⊤ => by
     rw [ENNReal.mul_top']; split_ifs
-    · simp only [h, coe_ennreal_zero, zero_mul]
+    · simp only [h, coe_ennreal_zero, MulZeroClass.zero_mul]
     · have A : (0 : ℝ) < x := by
         simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
@@ -1834,20 +1834,28 @@ theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
     apply @induction₂ fun x y => to_real (x * y) = to_real x * to_real y <;>
     propagate_tags try dsimp only
   case top_zero | bot_zero | zero_top | zero_bot =>
-    all_goals simp only [zero_mul, mul_zero, to_real_zero]
+    all_goals simp only [MulZeroClass.zero_mul, MulZeroClass.mul_zero, to_real_zero]
   case coe_coe x y => norm_cast
-  case top_top => rw [top_mul_top, to_real_top, mul_zero]
-  case top_bot => rw [top_mul_bot, to_real_top, to_real_bot, zero_mul]
-  case bot_top => rw [bot_mul_top, to_real_bot, zero_mul]
-  case bot_bot => rw [bot_mul_bot, to_real_top, to_real_bot, zero_mul]
-  case pos_bot x hx => rw [to_real_bot, to_real_coe, coe_mul_bot_of_pos hx, to_real_bot, mul_zero]
-  case neg_bot x hx => rw [to_real_bot, to_real_coe, coe_mul_bot_of_neg hx, to_real_top, mul_zero]
-  case pos_top x hx => rw [to_real_top, to_real_coe, coe_mul_top_of_pos hx, to_real_top, mul_zero]
-  case neg_top x hx => rw [to_real_top, to_real_coe, coe_mul_top_of_neg hx, to_real_bot, mul_zero]
-  case top_pos y hy => rw [to_real_top, to_real_coe, top_mul_coe_of_pos hy, to_real_top, zero_mul]
-  case top_neg y hy => rw [to_real_top, to_real_coe, top_mul_coe_of_neg hy, to_real_bot, zero_mul]
-  case bot_pos y hy => rw [to_real_bot, to_real_coe, bot_mul_coe_of_pos hy, to_real_bot, zero_mul]
-  case bot_neg y hy => rw [to_real_bot, to_real_coe, bot_mul_coe_of_neg hy, to_real_top, zero_mul]
+  case top_top => rw [top_mul_top, to_real_top, MulZeroClass.mul_zero]
+  case top_bot => rw [top_mul_bot, to_real_top, to_real_bot, MulZeroClass.zero_mul]
+  case bot_top => rw [bot_mul_top, to_real_bot, MulZeroClass.zero_mul]
+  case bot_bot => rw [bot_mul_bot, to_real_top, to_real_bot, MulZeroClass.zero_mul]
+  case pos_bot x hx =>
+    rw [to_real_bot, to_real_coe, coe_mul_bot_of_pos hx, to_real_bot, MulZeroClass.mul_zero]
+  case neg_bot x hx =>
+    rw [to_real_bot, to_real_coe, coe_mul_bot_of_neg hx, to_real_top, MulZeroClass.mul_zero]
+  case pos_top x hx =>
+    rw [to_real_top, to_real_coe, coe_mul_top_of_pos hx, to_real_top, MulZeroClass.mul_zero]
+  case neg_top x hx =>
+    rw [to_real_top, to_real_coe, coe_mul_top_of_neg hx, to_real_bot, MulZeroClass.mul_zero]
+  case top_pos y hy =>
+    rw [to_real_top, to_real_coe, top_mul_coe_of_pos hy, to_real_top, MulZeroClass.zero_mul]
+  case top_neg y hy =>
+    rw [to_real_top, to_real_coe, top_mul_coe_of_neg hy, to_real_bot, MulZeroClass.zero_mul]
+  case bot_pos y hy =>
+    rw [to_real_bot, to_real_coe, bot_mul_coe_of_pos hy, to_real_bot, MulZeroClass.zero_mul]
+  case bot_neg y hy =>
+    rw [to_real_bot, to_real_coe, bot_mul_coe_of_neg hy, to_real_top, MulZeroClass.zero_mul]
 #align ereal.to_real_mul EReal.toReal_mul
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
@@ -1859,7 +1867,7 @@ protected theorem neg_mul (x y : EReal) : -x * y = -(x * y) :=
     propagate_tags try dsimp only
   case top_top | bot_top | top_bot | bot_bot => all_goals rfl
   case top_zero | bot_zero | zero_top | zero_bot =>
-    all_goals simp only [zero_mul, mul_zero, neg_zero]
+    all_goals simp only [MulZeroClass.zero_mul, MulZeroClass.mul_zero, neg_zero]
   case coe_coe x y => norm_cast; exact neg_mul _ _
   case pos_bot x hx =>
     rw [coe_mul_bot_of_pos hx, neg_bot, ← coe_neg, coe_mul_bot_of_neg (neg_neg_of_pos hx)]
@@ -1989,7 +1997,7 @@ theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
     propagate_tags try dsimp only
   case top_top | bot_top | top_bot | bot_bot => all_goals rfl
   case top_zero | bot_zero | zero_top | zero_bot =>
-    all_goals simp only [zero_mul, mul_zero, abs_zero]
+    all_goals simp only [MulZeroClass.zero_mul, MulZeroClass.mul_zero, abs_zero]
   case coe_coe x y => simp only [← coe_mul, EReal.abs, abs_mul, ENNReal.ofReal_mul (abs_nonneg _)]
   case pos_bot x hx =>
     simp only [coe_mul_bot_of_pos hx, hx.ne', abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
@@ -2060,7 +2068,7 @@ theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignT
     propagate_tags try dsimp only
   case top_top | bot_top | top_bot | bot_bot => all_goals rfl
   case top_zero | bot_zero | zero_top | zero_bot =>
-    all_goals simp only [zero_mul, mul_zero, sign_zero]
+    all_goals simp only [MulZeroClass.zero_mul, MulZeroClass.mul_zero, sign_zero]
   case coe_coe x y => simp only [← coe_mul, sign_coe, sign_mul]
   case pos_bot x hx => simp_rw [coe_mul_bot_of_pos hx, sign_coe, sign_pos hx, one_mul]
   case neg_bot x hx =>
@@ -2156,7 +2164,8 @@ instance : PosMulMono EReal :=
       all_goals
         rw [← x.sign_mul_abs, ← a.sign_mul_abs, ← b.sign_mul_abs, sign_pos x0]
         simp only [h]; dsimp
-        simp only [neg_mul, mul_neg, EReal.neg_le_neg_iff, one_mul, le_refl, zero_mul, mul_zero]
+        simp only [neg_mul, mul_neg, EReal.neg_le_neg_iff, one_mul, le_refl, MulZeroClass.zero_mul,
+          MulZeroClass.mul_zero]
       all_goals norm_cast; exact mul_le_mul_left' h.2.2 _⟩
 
 instance : MulPosMono EReal :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 
 ! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit afdb4fa3b32d41106a4a09b371ce549ad7958abd
+! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Data.Sign
 /-!
 # The extended reals [-∞, ∞].
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines `ereal`, the real numbers together with a top and bottom element,
 referred to as ⊤ and ⊥. It is implemented as `with_bot (with_top ℝ)`
 
Diff
@@ -59,82 +59,133 @@ open ENNReal NNReal
 
 noncomputable section
 
+#print EReal /-
 /-- ereal : The type `[-∞, ∞]` -/
-def Ereal :=
+def EReal :=
   WithBot (WithTop ℝ)deriving Bot, Zero, One, Nontrivial, AddMonoid, SupSet, InfSet,
   CompleteLinearOrder, LinearOrderedAddCommMonoid, ZeroLEOneClass
-#align ereal Ereal
+#align ereal EReal
+-/
 
+#print Real.toEReal /-
 /-- The canonical inclusion froms reals to ereals. Do not use directly: as this is registered as
 a coercion, use the coercion instead. -/
-def Real.toEreal : ℝ → Ereal :=
+def Real.toEReal : ℝ → EReal :=
   some ∘ some
-#align real.to_ereal Real.toEreal
+#align real.to_ereal Real.toEReal
+-/
 
-namespace Ereal
+namespace EReal
 
+/- warning: ereal.decidable_lt -> EReal.decidableLt is a dubious translation:
+lean 3 declaration is
+  DecidableRel.{1} EReal (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
+but is expected to have type
+  DecidableRel.{1} EReal (fun (x._@.Mathlib.Data.Real.EReal._hyg.219 : EReal) (x._@.Mathlib.Data.Real.EReal._hyg.221 : EReal) => LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x._@.Mathlib.Data.Real.EReal._hyg.219 x._@.Mathlib.Data.Real.EReal._hyg.221)
+Case conversion may be inaccurate. Consider using '#align ereal.decidable_lt EReal.decidableLtₓ'. -/
 -- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
-instance decidableLt : DecidableRel ((· < ·) : Ereal → Ereal → Prop) :=
+instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
   WithBot.decidableLT
-#align ereal.decidable_lt Ereal.decidableLt
+#align ereal.decidable_lt EReal.decidableLt
 
 -- TODO: Provide explicitly, otherwise it is inferred noncomputably from `complete_linear_order`
-instance : Top Ereal :=
+instance : Top EReal :=
   ⟨some ⊤⟩
 
-instance : Coe ℝ Ereal :=
-  ⟨Real.toEreal⟩
+instance : Coe ℝ EReal :=
+  ⟨Real.toEReal⟩
 
-theorem coe_strictMono : StrictMono (coe : ℝ → Ereal) :=
+/- warning: ereal.coe_strict_mono -> EReal.coe_strictMono is a dubious translation:
+lean 3 declaration is
+  StrictMono.{0, 0} Real EReal Real.preorder (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))))
+but is expected to have type
+  StrictMono.{0, 0} Real EReal Real.instPreorderReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) Real.toEReal
+Case conversion may be inaccurate. Consider using '#align ereal.coe_strict_mono EReal.coe_strictMonoₓ'. -/
+theorem coe_strictMono : StrictMono (coe : ℝ → EReal) :=
   WithBot.coe_strictMono.comp WithTop.coe_strictMono
-#align ereal.coe_strict_mono Ereal.coe_strictMono
+#align ereal.coe_strict_mono EReal.coe_strictMono
 
-theorem coe_injective : Injective (coe : ℝ → Ereal) :=
+#print EReal.coe_injective /-
+theorem coe_injective : Injective (coe : ℝ → EReal) :=
   coe_strictMono.Injective
-#align ereal.coe_injective Ereal.coe_injective
+#align ereal.coe_injective EReal.coe_injective
+-/
 
+/- warning: ereal.coe_le_coe_iff -> EReal.coe_le_coe_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LE.le.{0} Real Real.hasLe x y)
+but is expected to have type
+  forall {x : Real} {y : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Real.toEReal y)) (LE.le.{0} Real Real.instLEReal x y)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_le_coe_iff EReal.coe_le_coe_iffₓ'. -/
 @[simp, norm_cast]
-protected theorem coe_le_coe_iff {x y : ℝ} : (x : Ereal) ≤ (y : Ereal) ↔ x ≤ y :=
+protected theorem coe_le_coe_iff {x y : ℝ} : (x : EReal) ≤ (y : EReal) ↔ x ≤ y :=
   coe_strictMono.le_iff_le
-#align ereal.coe_le_coe_iff Ereal.coe_le_coe_iff
-
+#align ereal.coe_le_coe_iff EReal.coe_le_coe_iff
+
+/- warning: ereal.coe_lt_coe_iff -> EReal.coe_lt_coe_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) (LT.lt.{0} Real Real.hasLt x y)
+but is expected to have type
+  forall {x : Real} {y : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Real.toEReal y)) (LT.lt.{0} Real Real.instLTReal x y)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_coe_iff EReal.coe_lt_coe_iffₓ'. -/
 @[simp, norm_cast]
-protected theorem coe_lt_coe_iff {x y : ℝ} : (x : Ereal) < (y : Ereal) ↔ x < y :=
+protected theorem coe_lt_coe_iff {x y : ℝ} : (x : EReal) < (y : EReal) ↔ x < y :=
   coe_strictMono.lt_iff_lt
-#align ereal.coe_lt_coe_iff Ereal.coe_lt_coe_iff
+#align ereal.coe_lt_coe_iff EReal.coe_lt_coe_iff
 
+#print EReal.coe_eq_coe_iff /-
 @[simp, norm_cast]
-protected theorem coe_eq_coe_iff {x y : ℝ} : (x : Ereal) = (y : Ereal) ↔ x = y :=
+protected theorem coe_eq_coe_iff {x y : ℝ} : (x : EReal) = (y : EReal) ↔ x = y :=
   coe_injective.eq_iff
-#align ereal.coe_eq_coe_iff Ereal.coe_eq_coe_iff
+#align ereal.coe_eq_coe_iff EReal.coe_eq_coe_iff
+-/
 
-protected theorem coe_ne_coe_iff {x y : ℝ} : (x : Ereal) ≠ (y : Ereal) ↔ x ≠ y :=
+#print EReal.coe_ne_coe_iff /-
+protected theorem coe_ne_coe_iff {x y : ℝ} : (x : EReal) ≠ (y : EReal) ↔ x ≠ y :=
   coe_injective.ne_iff
-#align ereal.coe_ne_coe_iff Ereal.coe_ne_coe_iff
+#align ereal.coe_ne_coe_iff EReal.coe_ne_coe_iff
+-/
 
+#print ENNReal.toEReal /-
 /-- The canonical map from nonnegative extended reals to extended reals -/
-def ENNReal.toEreal : ℝ≥0∞ → Ereal
+def ENNReal.toEReal : ℝ≥0∞ → EReal
   | ⊤ => ⊤
   | some x => x.1
-#align ennreal.to_ereal ENNReal.toEreal
+#align ennreal.to_ereal ENNReal.toEReal
+-/
 
-instance hasCoeEnnreal : Coe ℝ≥0∞ Ereal :=
-  ⟨ENNReal.toEreal⟩
-#align ereal.has_coe_ennreal Ereal.hasCoeEnnreal
+#print EReal.hasCoeENNReal /-
+instance hasCoeENNReal : Coe ℝ≥0∞ EReal :=
+  ⟨ENNReal.toEReal⟩
+#align ereal.has_coe_ennreal EReal.hasCoeENNReal
+-/
 
-instance : Inhabited Ereal :=
+instance : Inhabited EReal :=
   ⟨0⟩
 
+/- warning: ereal.coe_zero -> EReal.coe_zero is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
+but is expected to have type
+  Eq.{1} EReal (Real.toEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_zero EReal.coe_zeroₓ'. -/
 @[simp, norm_cast]
-theorem coe_zero : ((0 : ℝ) : Ereal) = 0 :=
+theorem coe_zero : ((0 : ℝ) : EReal) = 0 :=
   rfl
-#align ereal.coe_zero Ereal.coe_zero
-
+#align ereal.coe_zero EReal.coe_zero
+
+/- warning: ereal.coe_one -> EReal.coe_one is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))
+but is expected to have type
+  Eq.{1} EReal (Real.toEReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_one EReal.coe_oneₓ'. -/
 @[simp, norm_cast]
-theorem coe_one : ((1 : ℝ) : Ereal) = 1 :=
+theorem coe_one : ((1 : ℝ) : EReal) = 1 :=
   rfl
-#align ereal.coe_one Ereal.coe_one
+#align ereal.coe_one EReal.coe_one
 
+#print EReal.rec /-
 /-- A recursor for `ereal` in terms of the coercion.
 
 A typical invocation looks like `induction x using ereal.rec`. Note that using `induction`
@@ -142,16 +193,18 @@ directly will unfold `ereal` to `option` which is undesirable.
 
 When working in term mode, note that pattern matching can be used directly. -/
 @[elab_as_elim]
-protected def rec {C : Ereal → Sort _} (h_bot : C ⊥) (h_real : ∀ a : ℝ, C a) (h_top : C ⊤) :
-    ∀ a : Ereal, C a
+protected def rec {C : EReal → Sort _} (h_bot : C ⊥) (h_real : ∀ a : ℝ, C a) (h_top : C ⊤) :
+    ∀ a : EReal, C a
   | ⊥ => h_bot
   | (a : ℝ) => h_real a
   | ⊤ => h_top
-#align ereal.rec Ereal.rec
+#align ereal.rec EReal.rec
+-/
 
+#print EReal.mul /-
 /-- The multiplication on `ereal`. Our definition satisfies `0 * x = x * 0 = 0` for any `x`, and
 picks the only sensible value elsewhere. -/
-protected def mul : Ereal → Ereal → Ereal
+protected def mul : EReal → EReal → EReal
   | ⊥, ⊥ => ⊤
   | ⊥, ⊤ => ⊥
   | ⊥, (y : ℝ) => if 0 < y then ⊥ else if y = 0 then 0 else ⊤
@@ -161,15 +214,22 @@ protected def mul : Ereal → Ereal → Ereal
   | (x : ℝ), ⊤ => if 0 < x then ⊤ else if x = 0 then 0 else ⊥
   | (x : ℝ), ⊥ => if 0 < x then ⊥ else if x = 0 then 0 else ⊤
   | (x : ℝ), (y : ℝ) => (x * y : ℝ)
-#align ereal.mul Ereal.mul
+#align ereal.mul EReal.mul
+-/
 
-instance : Mul Ereal :=
-  ⟨Ereal.mul⟩
+instance : Mul EReal :=
+  ⟨EReal.mul⟩
 
+/- warning: ereal.induction₂ -> EReal.induction₂ is a dubious translation:
+lean 3 declaration is
+  forall {P : EReal -> EReal -> Prop}, (P (Top.top.{0} EReal EReal.hasTop) (Top.top.{0} EReal EReal.hasTop)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Top.top.{0} EReal EReal.hasTop) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Top.top.{0} EReal EReal.hasTop) (Bot.bot.{0} EReal EReal.hasBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot))) -> (P (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)) -> (forall (x : Real) (y : Real), P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y)) -> (P (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Bot.bot.{0} EReal EReal.hasBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot))) -> (P (Bot.bot.{0} EReal EReal.hasBot) (Top.top.{0} EReal EReal.hasTop)) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (P (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (forall (x : Real), (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (P (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) -> (P (Bot.bot.{0} EReal EReal.hasBot) (Bot.bot.{0} EReal EReal.hasBot)) -> (forall (x : EReal) (y : EReal), P x y)
+but is expected to have type
+  forall {P : EReal -> EReal -> Prop}, (P (Top.top.{0} EReal EReal.instTopEReal) (Top.top.{0} EReal EReal.instTopEReal)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x))) -> (P (Top.top.{0} EReal EReal.instTopEReal) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x))) -> (P (Top.top.{0} EReal EReal.instTopEReal) (Bot.bot.{0} EReal instERealBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Real.toEReal x) (Bot.bot.{0} EReal instERealBot))) -> (P (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)) -> (forall (x : Real) (y : Real), P (Real.toEReal x) (Real.toEReal y)) -> (P (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Bot.bot.{0} EReal instERealBot)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Real.toEReal x) (Bot.bot.{0} EReal instERealBot))) -> (P (Bot.bot.{0} EReal instERealBot) (Top.top.{0} EReal EReal.instTopEReal)) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (P (Bot.bot.{0} EReal instERealBot) (Real.toEReal x))) -> (P (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (forall (x : Real), (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (P (Bot.bot.{0} EReal instERealBot) (Real.toEReal x))) -> (P (Bot.bot.{0} EReal instERealBot) (Bot.bot.{0} EReal instERealBot)) -> (forall (x : EReal) (y : EReal), P x y)
+Case conversion may be inaccurate. Consider using '#align ereal.induction₂ EReal.induction₂ₓ'. -/
 /-- Induct on two ereals by performing case splits on the sign of one whenever the other is
 infinite. -/
 @[elab_as_elim]
-theorem induction₂ {P : Ereal → Ereal → Prop} (top_top : P ⊤ ⊤) (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x)
+theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x)
     (top_zero : P ⊤ 0) (top_neg : ∀ x : ℝ, x < 0 → P ⊤ x) (top_bot : P ⊤ ⊥)
     (pos_top : ∀ x : ℝ, 0 < x → P x ⊤) (pos_bot : ∀ x : ℝ, 0 < x → P x ⊥) (zero_top : P 0 ⊤)
     (coe_coe : ∀ x y : ℝ, P x y) (zero_bot : P 0 ⊥) (neg_top : ∀ x : ℝ, x < 0 → P x ⊤)
@@ -192,7 +252,7 @@ theorem induction₂ {P : Ereal → Ereal → Prop} (top_top : P ⊤ ⊤) (top_p
     rcases lt_trichotomy 0 y with (hy | rfl | hy)
     exacts[top_pos y hy, top_zero, top_neg y hy]
   | ⊤, ⊤ => top_top
-#align ereal.induction₂ Ereal.induction₂
+#align ereal.induction₂ EReal.induction₂
 
 /-! `ereal` with its multiplication is a `comm_monoid_with_zero`. However, the proof of
 associativity by hand is extremely painful (with 125 cases...). Instead, we will deduce it later
@@ -202,238 +262,432 @@ record more basic properties of multiplication.
 -/
 
 
-instance : MulZeroOneClass Ereal :=
-  { Ereal.hasMul, Ereal.hasOne,
-    Ereal.hasZero with
+instance : MulZeroOneClass EReal :=
+  { EReal.hasMul, EReal.hasOne,
+    EReal.hasZero with
     one_mul := fun x => by
-      induction x using Ereal.rec <;>
+      induction x using EReal.rec <;>
         · dsimp only [(· * ·)]
-          simp only [Ereal.mul, ← Ereal.coe_one, zero_lt_one, if_true, one_mul]
+          simp only [EReal.mul, ← EReal.coe_one, zero_lt_one, if_true, one_mul]
     mul_one := fun x => by
-      induction x using Ereal.rec <;>
+      induction x using EReal.rec <;>
         · dsimp only [(· * ·)]
-          simp only [Ereal.mul, ← Ereal.coe_one, zero_lt_one, if_true, mul_one]
+          simp only [EReal.mul, ← EReal.coe_one, zero_lt_one, if_true, mul_one]
     zero_mul := fun x => by
-      induction x using Ereal.rec <;>
+      induction x using EReal.rec <;>
         · simp only [(· * ·)]
-          simp only [Ereal.mul, ← Ereal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
+          simp only [EReal.mul, ← EReal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
             eq_self_iff_true, zero_mul]
     mul_zero := fun x => by
-      induction x using Ereal.rec <;>
+      induction x using EReal.rec <;>
         · simp only [(· * ·)]
-          simp only [Ereal.mul, ← Ereal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
+          simp only [EReal.mul, ← EReal.coe_zero, zero_lt_one, if_true, if_false, lt_irrefl (0 : ℝ),
             eq_self_iff_true, mul_zero] }
 
 /-! ### Real coercion -/
 
 
-instance canLift : CanLift Ereal ℝ coe fun r => r ≠ ⊤ ∧ r ≠ ⊥
+#print EReal.canLift /-
+instance canLift : CanLift EReal ℝ coe fun r => r ≠ ⊤ ∧ r ≠ ⊥
     where prf x hx := by
-    induction x using Ereal.rec
+    induction x using EReal.rec
     · simpa using hx
     · simp
     · simpa using hx
-#align ereal.can_lift Ereal.canLift
+#align ereal.can_lift EReal.canLift
+-/
 
+#print EReal.toReal /-
 /-- The map from extended reals to reals sending infinities to zero. -/
-def toReal : Ereal → ℝ
+def toReal : EReal → ℝ
   | ⊥ => 0
   | ⊤ => 0
   | (x : ℝ) => x
-#align ereal.to_real Ereal.toReal
+#align ereal.to_real EReal.toReal
+-/
 
+/- warning: ereal.to_real_top -> EReal.toReal_top is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (EReal.toReal (Top.top.{0} EReal EReal.hasTop)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
+but is expected to have type
+  Eq.{1} Real (EReal.toReal (Top.top.{0} EReal EReal.instTopEReal)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_top EReal.toReal_topₓ'. -/
 @[simp]
 theorem toReal_top : toReal ⊤ = 0 :=
   rfl
-#align ereal.to_real_top Ereal.toReal_top
-
+#align ereal.to_real_top EReal.toReal_top
+
+/- warning: ereal.to_real_bot -> EReal.toReal_bot is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (EReal.toReal (Bot.bot.{0} EReal EReal.hasBot)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
+but is expected to have type
+  Eq.{1} Real (EReal.toReal (Bot.bot.{0} EReal instERealBot)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_bot EReal.toReal_botₓ'. -/
 @[simp]
 theorem toReal_bot : toReal ⊥ = 0 :=
   rfl
-#align ereal.to_real_bot Ereal.toReal_bot
-
+#align ereal.to_real_bot EReal.toReal_bot
+
+/- warning: ereal.to_real_zero -> EReal.toReal_zero is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
+but is expected to have type
+  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_zero EReal.toReal_zeroₓ'. -/
 @[simp]
 theorem toReal_zero : toReal 0 = 0 :=
   rfl
-#align ereal.to_real_zero Ereal.toReal_zero
-
+#align ereal.to_real_zero EReal.toReal_zero
+
+/- warning: ereal.to_real_one -> EReal.toReal_one is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+  Eq.{1} Real (EReal.toReal (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_one EReal.toReal_oneₓ'. -/
 @[simp]
 theorem toReal_one : toReal 1 = 1 :=
   rfl
-#align ereal.to_real_one Ereal.toReal_one
+#align ereal.to_real_one EReal.toReal_one
 
+#print EReal.toReal_coe /-
 @[simp]
-theorem toReal_coe (x : ℝ) : toReal (x : Ereal) = x :=
+theorem toReal_coe (x : ℝ) : toReal (x : EReal) = x :=
   rfl
-#align ereal.to_real_coe Ereal.toReal_coe
+#align ereal.to_real_coe EReal.toReal_coe
+-/
 
+/- warning: ereal.bot_lt_coe -> EReal.bot_lt_coe is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)
+but is expected to have type
+  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)
+Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_coe EReal.bot_lt_coeₓ'. -/
 @[simp]
-theorem bot_lt_coe (x : ℝ) : (⊥ : Ereal) < x :=
+theorem bot_lt_coe (x : ℝ) : (⊥ : EReal) < x :=
   WithBot.bot_lt_coe _
-#align ereal.bot_lt_coe Ereal.bot_lt_coe
+#align ereal.bot_lt_coe EReal.bot_lt_coe
 
+#print EReal.coe_ne_bot /-
 @[simp]
-theorem coe_ne_bot (x : ℝ) : (x : Ereal) ≠ ⊥ :=
+theorem coe_ne_bot (x : ℝ) : (x : EReal) ≠ ⊥ :=
   (bot_lt_coe x).ne'
-#align ereal.coe_ne_bot Ereal.coe_ne_bot
+#align ereal.coe_ne_bot EReal.coe_ne_bot
+-/
 
+#print EReal.bot_ne_coe /-
 @[simp]
-theorem bot_ne_coe (x : ℝ) : (⊥ : Ereal) ≠ x :=
+theorem bot_ne_coe (x : ℝ) : (⊥ : EReal) ≠ x :=
   (bot_lt_coe x).Ne
-#align ereal.bot_ne_coe Ereal.bot_ne_coe
+#align ereal.bot_ne_coe EReal.bot_ne_coe
+-/
 
+/- warning: ereal.coe_lt_top -> EReal.coe_lt_top is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  forall (x : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_lt_top EReal.coe_lt_topₓ'. -/
 @[simp]
-theorem coe_lt_top (x : ℝ) : (x : Ereal) < ⊤ :=
+theorem coe_lt_top (x : ℝ) : (x : EReal) < ⊤ :=
   by
   apply WithBot.coe_lt_coe.2
   exact WithTop.coe_lt_top _
-#align ereal.coe_lt_top Ereal.coe_lt_top
+#align ereal.coe_lt_top EReal.coe_lt_top
 
+#print EReal.coe_ne_top /-
 @[simp]
-theorem coe_ne_top (x : ℝ) : (x : Ereal) ≠ ⊤ :=
+theorem coe_ne_top (x : ℝ) : (x : EReal) ≠ ⊤ :=
   (coe_lt_top x).Ne
-#align ereal.coe_ne_top Ereal.coe_ne_top
+#align ereal.coe_ne_top EReal.coe_ne_top
+-/
 
+#print EReal.top_ne_coe /-
 @[simp]
-theorem top_ne_coe (x : ℝ) : (⊤ : Ereal) ≠ x :=
+theorem top_ne_coe (x : ℝ) : (⊤ : EReal) ≠ x :=
   (coe_lt_top x).ne'
-#align ereal.top_ne_coe Ereal.top_ne_coe
+#align ereal.top_ne_coe EReal.top_ne_coe
+-/
 
+/- warning: ereal.bot_lt_zero -> EReal.bot_lt_zero is a dubious translation:
+lean 3 declaration is
+  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
+but is expected to have type
+  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_zero EReal.bot_lt_zeroₓ'. -/
 @[simp]
-theorem bot_lt_zero : (⊥ : Ereal) < 0 :=
+theorem bot_lt_zero : (⊥ : EReal) < 0 :=
   bot_lt_coe 0
-#align ereal.bot_lt_zero Ereal.bot_lt_zero
-
+#align ereal.bot_lt_zero EReal.bot_lt_zero
+
+/- warning: ereal.bot_ne_zero -> EReal.bot_ne_zero is a dubious translation:
+lean 3 declaration is
+  Ne.{1} EReal (Bot.bot.{0} EReal EReal.hasBot) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
+but is expected to have type
+  Ne.{1} EReal (Bot.bot.{0} EReal instERealBot) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_ne_zero EReal.bot_ne_zeroₓ'. -/
 @[simp]
-theorem bot_ne_zero : (⊥ : Ereal) ≠ 0 :=
+theorem bot_ne_zero : (⊥ : EReal) ≠ 0 :=
   (coe_ne_bot 0).symm
-#align ereal.bot_ne_zero Ereal.bot_ne_zero
-
+#align ereal.bot_ne_zero EReal.bot_ne_zero
+
+/- warning: ereal.zero_ne_bot -> EReal.zero_ne_bot is a dubious translation:
+lean 3 declaration is
+  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Bot.bot.{0} EReal EReal.hasBot)
+but is expected to have type
+  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Bot.bot.{0} EReal instERealBot)
+Case conversion may be inaccurate. Consider using '#align ereal.zero_ne_bot EReal.zero_ne_botₓ'. -/
 @[simp]
-theorem zero_ne_bot : (0 : Ereal) ≠ ⊥ :=
+theorem zero_ne_bot : (0 : EReal) ≠ ⊥ :=
   coe_ne_bot 0
-#align ereal.zero_ne_bot Ereal.zero_ne_bot
-
+#align ereal.zero_ne_bot EReal.zero_ne_bot
+
+/- warning: ereal.zero_lt_top -> EReal.zero_lt_top is a dubious translation:
+lean 3 declaration is
+  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.zero_lt_top EReal.zero_lt_topₓ'. -/
 @[simp]
-theorem zero_lt_top : (0 : Ereal) < ⊤ :=
+theorem zero_lt_top : (0 : EReal) < ⊤ :=
   coe_lt_top 0
-#align ereal.zero_lt_top Ereal.zero_lt_top
-
+#align ereal.zero_lt_top EReal.zero_lt_top
+
+/- warning: ereal.zero_ne_top -> EReal.zero_ne_top is a dubious translation:
+lean 3 declaration is
+  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  Ne.{1} EReal (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.zero_ne_top EReal.zero_ne_topₓ'. -/
 @[simp]
-theorem zero_ne_top : (0 : Ereal) ≠ ⊤ :=
+theorem zero_ne_top : (0 : EReal) ≠ ⊤ :=
   coe_ne_top 0
-#align ereal.zero_ne_top Ereal.zero_ne_top
-
+#align ereal.zero_ne_top EReal.zero_ne_top
+
+/- warning: ereal.top_ne_zero -> EReal.top_ne_zero is a dubious translation:
+lean 3 declaration is
+  Ne.{1} EReal (Top.top.{0} EReal EReal.hasTop) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
+but is expected to have type
+  Ne.{1} EReal (Top.top.{0} EReal EReal.instTopEReal) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
+Case conversion may be inaccurate. Consider using '#align ereal.top_ne_zero EReal.top_ne_zeroₓ'. -/
 @[simp]
-theorem top_ne_zero : (⊤ : Ereal) ≠ 0 :=
+theorem top_ne_zero : (⊤ : EReal) ≠ 0 :=
   (coe_ne_top 0).symm
-#align ereal.top_ne_zero Ereal.top_ne_zero
-
+#align ereal.top_ne_zero EReal.top_ne_zero
+
+/- warning: ereal.coe_add -> EReal.coe_add is a dubious translation:
+lean 3 declaration is
+  forall (x : Real) (y : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
+but is expected to have type
+  forall (x : Real) (y : Real), Eq.{1} EReal (Real.toEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal x) (Real.toEReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_add EReal.coe_addₓ'. -/
 @[simp, norm_cast]
-theorem coe_add (x y : ℝ) : (↑(x + y) : Ereal) = x + y :=
+theorem coe_add (x y : ℝ) : (↑(x + y) : EReal) = x + y :=
   rfl
-#align ereal.coe_add Ereal.coe_add
-
+#align ereal.coe_add EReal.coe_add
+
+/- warning: ereal.coe_mul -> EReal.coe_mul is a dubious translation:
+lean 3 declaration is
+  forall (x : Real) (y : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
+but is expected to have type
+  forall (x : Real) (y : Real), Eq.{1} EReal (Real.toEReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Real.toEReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_mul EReal.coe_mulₓ'. -/
 @[simp, norm_cast]
-theorem coe_mul (x y : ℝ) : (↑(x * y) : Ereal) = x * y :=
+theorem coe_mul (x y : ℝ) : (↑(x * y) : EReal) = x * y :=
   rfl
-#align ereal.coe_mul Ereal.coe_mul
+#align ereal.coe_mul EReal.coe_mul
 
+#print EReal.coe_nsmul /-
 @[norm_cast]
-theorem coe_nsmul (n : ℕ) (x : ℝ) : (↑(n • x) : Ereal) = n • x :=
-  map_nsmul (⟨coe, coe_zero, coe_add⟩ : ℝ →+ Ereal) _ _
-#align ereal.coe_nsmul Ereal.coe_nsmul
+theorem coe_nsmul (n : ℕ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
+  map_nsmul (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) _ _
+#align ereal.coe_nsmul EReal.coe_nsmul
+-/
 
+/- warning: ereal.coe_bit0 clashes with [anonymous] -> [anonymous]
+warning: ereal.coe_bit0 -> [anonymous] is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (bit0.{0} Real Real.hasAdd x)) (bit0.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
+but is expected to have type
+  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_bit0 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem coe_bit0 (x : ℝ) : (↑(bit0 x) : Ereal) = bit0 x :=
+theorem [anonymous] (x : ℝ) : (↑(bit0 x) : EReal) = bit0 x :=
   rfl
-#align ereal.coe_bit0 Ereal.coe_bit0
-
+#align ereal.coe_bit0 [anonymous]
+
+/- warning: ereal.coe_bit1 clashes with [anonymous] -> [anonymous]
+warning: ereal.coe_bit1 -> [anonymous] is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (bit1.{0} Real Real.hasOne Real.hasAdd x)) (bit1.{0} EReal EReal.hasOne (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
+but is expected to have type
+  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_bit1 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem coe_bit1 (x : ℝ) : (↑(bit1 x) : Ereal) = bit1 x :=
+theorem [anonymous] (x : ℝ) : (↑(bit1 x) : EReal) = bit1 x :=
   rfl
-#align ereal.coe_bit1 Ereal.coe_bit1
-
+#align ereal.coe_bit1 [anonymous]
+
+/- warning: ereal.coe_eq_zero -> EReal.coe_eq_zero is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+  forall {x : Real}, Iff (Eq.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_eq_zero EReal.coe_eq_zeroₓ'. -/
 @[simp, norm_cast]
-theorem coe_eq_zero {x : ℝ} : (x : Ereal) = 0 ↔ x = 0 :=
-  Ereal.coe_eq_coe_iff
-#align ereal.coe_eq_zero Ereal.coe_eq_zero
-
+theorem coe_eq_zero {x : ℝ} : (x : EReal) = 0 ↔ x = 0 :=
+  EReal.coe_eq_coe_iff
+#align ereal.coe_eq_zero EReal.coe_eq_zero
+
+/- warning: ereal.coe_eq_one -> EReal.coe_eq_one is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall {x : Real}, Iff (Eq.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Eq.{1} Real x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_eq_one EReal.coe_eq_oneₓ'. -/
 @[simp, norm_cast]
-theorem coe_eq_one {x : ℝ} : (x : Ereal) = 1 ↔ x = 1 :=
-  Ereal.coe_eq_coe_iff
-#align ereal.coe_eq_one Ereal.coe_eq_one
-
-theorem coe_ne_zero {x : ℝ} : (x : Ereal) ≠ 0 ↔ x ≠ 0 :=
-  Ereal.coe_ne_coe_iff
-#align ereal.coe_ne_zero Ereal.coe_ne_zero
-
-theorem coe_ne_one {x : ℝ} : (x : Ereal) ≠ 1 ↔ x ≠ 1 :=
-  Ereal.coe_ne_coe_iff
-#align ereal.coe_ne_one Ereal.coe_ne_one
-
+theorem coe_eq_one {x : ℝ} : (x : EReal) = 1 ↔ x = 1 :=
+  EReal.coe_eq_coe_iff
+#align ereal.coe_eq_one EReal.coe_eq_one
+
+/- warning: ereal.coe_ne_zero -> EReal.coe_ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+  forall {x : Real}, Iff (Ne.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ne_zero EReal.coe_ne_zeroₓ'. -/
+theorem coe_ne_zero {x : ℝ} : (x : EReal) ≠ 0 ↔ x ≠ 0 :=
+  EReal.coe_ne_coe_iff
+#align ereal.coe_ne_zero EReal.coe_ne_zero
+
+/- warning: ereal.coe_ne_one -> EReal.coe_ne_one is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall {x : Real}, Iff (Ne.{1} EReal (Real.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ne_one EReal.coe_ne_oneₓ'. -/
+theorem coe_ne_one {x : ℝ} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
+  EReal.coe_ne_coe_iff
+#align ereal.coe_ne_one EReal.coe_ne_one
+
+/- warning: ereal.coe_nonneg -> EReal.coe_nonneg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
+but is expected to have type
+  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Real.toEReal x)) (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_nonneg EReal.coe_nonnegₓ'. -/
 @[simp, norm_cast]
-protected theorem coe_nonneg {x : ℝ} : (0 : Ereal) ≤ x ↔ 0 ≤ x :=
-  Ereal.coe_le_coe_iff
-#align ereal.coe_nonneg Ereal.coe_nonneg
-
+protected theorem coe_nonneg {x : ℝ} : (0 : EReal) ≤ x ↔ 0 ≤ x :=
+  EReal.coe_le_coe_iff
+#align ereal.coe_nonneg EReal.coe_nonneg
+
+/- warning: ereal.coe_nonpos -> EReal.coe_nonpos is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LE.le.{0} Real Real.hasLe x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+  forall {x : Real}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (LE.le.{0} Real Real.instLEReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_nonpos EReal.coe_nonposₓ'. -/
 @[simp, norm_cast]
-protected theorem coe_nonpos {x : ℝ} : (x : Ereal) ≤ 0 ↔ x ≤ 0 :=
-  Ereal.coe_le_coe_iff
-#align ereal.coe_nonpos Ereal.coe_nonpos
-
+protected theorem coe_nonpos {x : ℝ} : (x : EReal) ≤ 0 ↔ x ≤ 0 :=
+  EReal.coe_le_coe_iff
+#align ereal.coe_nonpos EReal.coe_nonpos
+
+/- warning: ereal.coe_pos -> EReal.coe_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x)
+but is expected to have type
+  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (Real.toEReal x)) (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_pos EReal.coe_posₓ'. -/
 @[simp, norm_cast]
-protected theorem coe_pos {x : ℝ} : (0 : Ereal) < x ↔ 0 < x :=
-  Ereal.coe_lt_coe_iff
-#align ereal.coe_pos Ereal.coe_pos
-
+protected theorem coe_pos {x : ℝ} : (0 : EReal) < x ↔ 0 < x :=
+  EReal.coe_lt_coe_iff
+#align ereal.coe_pos EReal.coe_pos
+
+/- warning: ereal.coe_neg' -> EReal.coe_neg' is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+  forall {x : Real}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_neg' EReal.coe_neg'ₓ'. -/
 @[simp, norm_cast]
-protected theorem coe_neg' {x : ℝ} : (x : Ereal) < 0 ↔ x < 0 :=
-  Ereal.coe_lt_coe_iff
-#align ereal.coe_neg' Ereal.coe_neg'
-
-theorem toReal_le_toReal {x y : Ereal} (h : x ≤ y) (hx : x ≠ ⊥) (hy : y ≠ ⊤) :
+protected theorem coe_neg' {x : ℝ} : (x : EReal) < 0 ↔ x < 0 :=
+  EReal.coe_lt_coe_iff
+#align ereal.coe_neg' EReal.coe_neg'
+
+/- warning: ereal.to_real_le_to_real -> EReal.toReal_le_toReal is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} Real Real.hasLe (EReal.toReal x) (EReal.toReal y))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LE.le.{0} Real Real.instLEReal (EReal.toReal x) (EReal.toReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_le_to_real EReal.toReal_le_toRealₓ'. -/
+theorem toReal_le_toReal {x y : EReal} (h : x ≤ y) (hx : x ≠ ⊥) (hy : y ≠ ⊤) :
     x.toReal ≤ y.toReal := by
   lift x to ℝ
   · simp [hx, (h.trans_lt (lt_top_iff_ne_top.2 hy)).Ne]
   lift y to ℝ
   · simp [hy, ((bot_lt_iff_ne_bot.2 hx).trans_le h).ne']
   simpa using h
-#align ereal.to_real_le_to_real Ereal.toReal_le_toReal
+#align ereal.to_real_le_to_real EReal.toReal_le_toReal
 
-theorem coe_toReal {x : Ereal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) : (x.toReal : Ereal) = x :=
+#print EReal.coe_toReal /-
+theorem coe_toReal {x : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) : (x.toReal : EReal) = x :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · simpa using h'x
   · rfl
   · simpa using hx
-#align ereal.coe_to_real Ereal.coe_toReal
+#align ereal.coe_to_real EReal.coe_toReal
+-/
 
-theorem le_coe_toReal {x : Ereal} (h : x ≠ ⊤) : x ≤ x.toReal :=
+/- warning: ereal.le_coe_to_real -> EReal.le_coe_toReal is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)))
+but is expected to have type
+  forall {x : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (Real.toEReal (EReal.toReal x)))
+Case conversion may be inaccurate. Consider using '#align ereal.le_coe_to_real EReal.le_coe_toRealₓ'. -/
+theorem le_coe_toReal {x : EReal} (h : x ≠ ⊤) : x ≤ x.toReal :=
   by
   by_cases h' : x = ⊥
   · simp only [h', bot_le]
   · simp only [le_refl, coe_to_real h h']
-#align ereal.le_coe_to_real Ereal.le_coe_toReal
-
-theorem coe_toReal_le {x : Ereal} (h : x ≠ ⊥) : ↑x.toReal ≤ x :=
+#align ereal.le_coe_to_real EReal.le_coe_toReal
+
+/- warning: ereal.coe_to_real_le -> EReal.coe_toReal_le is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (EReal.toReal x)) x)
+but is expected to have type
+  forall {x : EReal}, (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (EReal.toReal x)) x)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_to_real_le EReal.coe_toReal_leₓ'. -/
+theorem coe_toReal_le {x : EReal} (h : x ≠ ⊥) : ↑x.toReal ≤ x :=
   by
   by_cases h' : x = ⊤
   · simp only [h', le_top]
   · simp only [le_refl, coe_to_real h' h]
-#align ereal.coe_to_real_le Ereal.coe_toReal_le
-
-theorem eq_top_iff_forall_lt (x : Ereal) : x = ⊤ ↔ ∀ y : ℝ, (y : Ereal) < x :=
+#align ereal.coe_to_real_le EReal.coe_toReal_le
+
+/- warning: ereal.eq_top_iff_forall_lt -> EReal.eq_top_iff_forall_lt is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y) x)
+but is expected to have type
+  forall (x : EReal), Iff (Eq.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal y) x)
+Case conversion may be inaccurate. Consider using '#align ereal.eq_top_iff_forall_lt EReal.eq_top_iff_forall_ltₓ'. -/
+theorem eq_top_iff_forall_lt (x : EReal) : x = ⊤ ↔ ∀ y : ℝ, (y : EReal) < x :=
   by
   constructor
   · rintro rfl
-    exact Ereal.coe_lt_top
+    exact EReal.coe_lt_top
   · contrapose!
     intro h
     exact ⟨x.to_real, le_coe_to_real h⟩
-#align ereal.eq_top_iff_forall_lt Ereal.eq_top_iff_forall_lt
-
-theorem eq_bot_iff_forall_lt (x : Ereal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : Ereal) :=
+#align ereal.eq_top_iff_forall_lt EReal.eq_top_iff_forall_lt
+
+/- warning: ereal.eq_bot_iff_forall_lt -> EReal.eq_bot_iff_forall_lt is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
+but is expected to have type
+  forall (x : EReal), Iff (Eq.{1} EReal x (Bot.bot.{0} EReal instERealBot)) (forall (y : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (Real.toEReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.eq_bot_iff_forall_lt EReal.eq_bot_iff_forall_ltₓ'. -/
+theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : EReal) :=
   by
   constructor
   · rintro rfl
@@ -441,132 +695,258 @@ theorem eq_bot_iff_forall_lt (x : Ereal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : Ere
   · contrapose!
     intro h
     exact ⟨x.to_real, coe_to_real_le h⟩
-#align ereal.eq_bot_iff_forall_lt Ereal.eq_bot_iff_forall_lt
+#align ereal.eq_bot_iff_forall_lt EReal.eq_bot_iff_forall_lt
 
 /-! ### ennreal coercion -/
 
 
+#print EReal.toReal_coe_ennreal /-
 @[simp]
-theorem toReal_coe_eNNReal : ∀ {x : ℝ≥0∞}, toReal (x : Ereal) = ENNReal.toReal x
+theorem toReal_coe_ennreal : ∀ {x : ℝ≥0∞}, toReal (x : EReal) = ENNReal.toReal x
   | ⊤ => rfl
   | some x => rfl
-#align ereal.to_real_coe_ennreal Ereal.toReal_coe_eNNReal
+#align ereal.to_real_coe_ennreal EReal.toReal_coe_ennreal
+-/
 
+/- warning: ereal.coe_ennreal_of_real -> EReal.coe_ennreal_ofReal is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (ENNReal.ofReal x)) (LinearOrder.max.{0} EReal (ConditionallyCompleteLinearOrder.toLinearOrder.{0} EReal (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{0} EReal (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{0} EReal EReal.completeLinearOrder))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))))
+but is expected to have type
+  forall {x : Real}, Eq.{1} EReal (ENNReal.toEReal (ENNReal.ofReal x)) (Real.toEReal (Max.max.{0} Real (LinearOrderedRing.toMax.{0} Real Real.instLinearOrderedRingReal) x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_of_real EReal.coe_ennreal_ofRealₓ'. -/
 @[simp]
-theorem coe_eNNReal_ofReal {x : ℝ} : (ENNReal.ofReal x : Ereal) = max x 0 :=
+theorem coe_ennreal_ofReal {x : ℝ} : (ENNReal.ofReal x : EReal) = max x 0 :=
   rfl
-#align ereal.coe_ennreal_of_real Ereal.coe_eNNReal_ofReal
-
-theorem coe_nNReal_eq_coe_real (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) = (x : ℝ) :=
+#align ereal.coe_ennreal_of_real EReal.coe_ennreal_ofReal
+
+/- warning: ereal.coe_nnreal_eq_coe_real -> EReal.coe_nnreal_eq_coe_real is a dubious translation:
+lean 3 declaration is
+  forall (x : NNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) x))
+but is expected to have type
+  forall (x : NNReal), Eq.{1} EReal (ENNReal.toEReal (ENNReal.some x)) (Real.toEReal (NNReal.toReal x))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_nnreal_eq_coe_real EReal.coe_nnreal_eq_coe_realₓ'. -/
+theorem coe_nnreal_eq_coe_real (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) = (x : ℝ) :=
   rfl
-#align ereal.coe_nnreal_eq_coe_real Ereal.coe_nNReal_eq_coe_real
-
+#align ereal.coe_nnreal_eq_coe_real EReal.coe_nnreal_eq_coe_real
+
+/- warning: ereal.coe_ennreal_zero -> EReal.coe_ennreal_zero is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))
+but is expected to have type
+  Eq.{1} EReal (ENNReal.toEReal (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_zero EReal.coe_ennreal_zeroₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_zero : ((0 : ℝ≥0∞) : Ereal) = 0 :=
+theorem coe_ennreal_zero : ((0 : ℝ≥0∞) : EReal) = 0 :=
   rfl
-#align ereal.coe_ennreal_zero Ereal.coe_eNNReal_zero
-
+#align ereal.coe_ennreal_zero EReal.coe_ennreal_zero
+
+/- warning: ereal.coe_ennreal_one -> EReal.coe_ennreal_one is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (OfNat.ofNat.{0} ENNReal 1 (OfNat.mk.{0} ENNReal 1 (One.one.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne)))))) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))
+but is expected to have type
+  Eq.{1} EReal (ENNReal.toEReal (OfNat.ofNat.{0} ENNReal 1 (One.toOfNat1.{0} ENNReal (CanonicallyOrderedCommSemiring.toOne.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_one EReal.coe_ennreal_oneₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_one : ((1 : ℝ≥0∞) : Ereal) = 1 :=
+theorem coe_ennreal_one : ((1 : ℝ≥0∞) : EReal) = 1 :=
   rfl
-#align ereal.coe_ennreal_one Ereal.coe_eNNReal_one
-
+#align ereal.coe_ennreal_one EReal.coe_ennreal_one
+
+/- warning: ereal.coe_ennreal_top -> EReal.coe_ennreal_top is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  Eq.{1} EReal (ENNReal.toEReal (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_top EReal.coe_ennreal_topₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_top : ((⊤ : ℝ≥0∞) : Ereal) = ⊤ :=
+theorem coe_ennreal_top : ((⊤ : ℝ≥0∞) : EReal) = ⊤ :=
   rfl
-#align ereal.coe_ennreal_top Ereal.coe_eNNReal_top
-
+#align ereal.coe_ennreal_top EReal.coe_ennreal_top
+
+/- warning: ereal.coe_ennreal_eq_top_iff -> EReal.coe_ennreal_eq_top_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (Top.top.{0} EReal EReal.hasTop)) (Eq.{1} ENNReal x (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
+but is expected to have type
+  forall {x : ENNReal}, Iff (Eq.{1} EReal (ENNReal.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Eq.{1} ENNReal x (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_top_iff EReal.coe_ennreal_eq_top_iffₓ'. -/
 @[simp]
-theorem coe_eNNReal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : Ereal) = ⊤ ↔ x = ⊤
+theorem coe_ennreal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : EReal) = ⊤ ↔ x = ⊤
   | ⊤ => by simp
   | some x => by
     simp only [ENNReal.coe_ne_top, iff_false_iff, ENNReal.some_eq_coe]
     decide
-#align ereal.coe_ennreal_eq_top_iff Ereal.coe_eNNReal_eq_top_iff
+#align ereal.coe_ennreal_eq_top_iff EReal.coe_ennreal_eq_top_iff
 
-theorem coe_nNReal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) ≠ ⊤ := by decide
-#align ereal.coe_nnreal_ne_top Ereal.coe_nNReal_ne_top
+#print EReal.coe_nnreal_ne_top /-
+theorem coe_nnreal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) ≠ ⊤ := by decide
+#align ereal.coe_nnreal_ne_top EReal.coe_nnreal_ne_top
+-/
 
+/- warning: ereal.coe_nnreal_lt_top -> EReal.coe_nnreal_lt_top is a dubious translation:
+lean 3 declaration is
+  forall (x : NNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  forall (x : NNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal (ENNReal.some x)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_nnreal_lt_top EReal.coe_nnreal_lt_topₓ'. -/
 @[simp]
-theorem coe_nNReal_lt_top (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) < ⊤ := by decide
-#align ereal.coe_nnreal_lt_top Ereal.coe_nNReal_lt_top
-
-theorem coe_eNNReal_strictMono : StrictMono (coe : ℝ≥0∞ → Ereal)
+theorem coe_nnreal_lt_top (x : ℝ≥0) : ((x : ℝ≥0∞) : EReal) < ⊤ := by decide
+#align ereal.coe_nnreal_lt_top EReal.coe_nnreal_lt_top
+
+/- warning: ereal.coe_ennreal_strict_mono -> EReal.coe_ennreal_strictMono is a dubious translation:
+lean 3 declaration is
+  StrictMono.{0, 0} ENNReal EReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))))
+but is expected to have type
+  StrictMono.{0, 0} ENNReal EReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))) (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) ENNReal.toEReal
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_strict_mono EReal.coe_ennreal_strictMonoₓ'. -/
+theorem coe_ennreal_strictMono : StrictMono (coe : ℝ≥0∞ → EReal)
   | ⊤, ⊤ => by simp
   | some x, ⊤ => by simp
   | ⊤, some y => by simp
   | some x, some y => by simp [coe_nnreal_eq_coe_real]
-#align ereal.coe_ennreal_strict_mono Ereal.coe_eNNReal_strictMono
+#align ereal.coe_ennreal_strict_mono EReal.coe_ennreal_strictMono
 
-theorem coe_eNNReal_injective : Injective (coe : ℝ≥0∞ → Ereal) :=
-  coe_eNNReal_strictMono.Injective
-#align ereal.coe_ennreal_injective Ereal.coe_eNNReal_injective
+#print EReal.coe_ennreal_injective /-
+theorem coe_ennreal_injective : Injective (coe : ℝ≥0∞ → EReal) :=
+  coe_ennreal_strictMono.Injective
+#align ereal.coe_ennreal_injective EReal.coe_ennreal_injective
+-/
 
+/- warning: ereal.coe_ennreal_le_coe_ennreal_iff -> EReal.coe_ennreal_le_coe_ennreal_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
+but is expected to have type
+  forall {x : ENNReal} {y : ENNReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal x) (ENNReal.toEReal y)) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) x y)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_le_coe_ennreal_iff EReal.coe_ennreal_le_coe_ennreal_iffₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_le_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) ≤ (y : Ereal) ↔ x ≤ y :=
-  coe_eNNReal_strictMono.le_iff_le
-#align ereal.coe_ennreal_le_coe_ennreal_iff Ereal.coe_eNNReal_le_coe_eNNReal_iff
-
+theorem coe_ennreal_le_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≤ (y : EReal) ↔ x ≤ y :=
+  coe_ennreal_strictMono.le_iff_le
+#align ereal.coe_ennreal_le_coe_ennreal_iff EReal.coe_ennreal_le_coe_ennreal_iff
+
+/- warning: ereal.coe_ennreal_lt_coe_ennreal_iff -> EReal.coe_ennreal_lt_coe_ennreal_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) x y)
+but is expected to have type
+  forall {x : ENNReal} {y : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (ENNReal.toEReal x) (ENNReal.toEReal y)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) x y)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_lt_coe_ennreal_iff EReal.coe_ennreal_lt_coe_ennreal_iffₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_lt_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) < (y : Ereal) ↔ x < y :=
-  coe_eNNReal_strictMono.lt_iff_lt
-#align ereal.coe_ennreal_lt_coe_ennreal_iff Ereal.coe_eNNReal_lt_coe_eNNReal_iff
+theorem coe_ennreal_lt_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) < (y : EReal) ↔ x < y :=
+  coe_ennreal_strictMono.lt_iff_lt
+#align ereal.coe_ennreal_lt_coe_ennreal_iff EReal.coe_ennreal_lt_coe_ennreal_iff
 
+#print EReal.coe_ennreal_eq_coe_ennreal_iff /-
 @[simp, norm_cast]
-theorem coe_eNNReal_eq_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) = (y : Ereal) ↔ x = y :=
-  coe_eNNReal_injective.eq_iff
-#align ereal.coe_ennreal_eq_coe_ennreal_iff Ereal.coe_eNNReal_eq_coe_eNNReal_iff
+theorem coe_ennreal_eq_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) = (y : EReal) ↔ x = y :=
+  coe_ennreal_injective.eq_iff
+#align ereal.coe_ennreal_eq_coe_ennreal_iff EReal.coe_ennreal_eq_coe_ennreal_iff
+-/
 
-theorem coe_eNNReal_ne_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) ≠ (y : Ereal) ↔ x ≠ y :=
-  coe_eNNReal_injective.ne_iff
-#align ereal.coe_ennreal_ne_coe_ennreal_iff Ereal.coe_eNNReal_ne_coe_eNNReal_iff
+#print EReal.coe_ennreal_ne_coe_ennreal_iff /-
+theorem coe_ennreal_ne_coe_ennreal_iff {x y : ℝ≥0∞} : (x : EReal) ≠ (y : EReal) ↔ x ≠ y :=
+  coe_ennreal_injective.ne_iff
+#align ereal.coe_ennreal_ne_coe_ennreal_iff EReal.coe_ennreal_ne_coe_ennreal_iff
+-/
 
+/- warning: ereal.coe_ennreal_eq_zero -> EReal.coe_ennreal_eq_zero is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))))
+but is expected to have type
+  forall {x : ENNReal}, Iff (Eq.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_zero EReal.coe_ennreal_eq_zeroₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_eq_zero {x : ℝ≥0∞} : (x : Ereal) = 0 ↔ x = 0 := by
+theorem coe_ennreal_eq_zero {x : ℝ≥0∞} : (x : EReal) = 0 ↔ x = 0 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_zero]
-#align ereal.coe_ennreal_eq_zero Ereal.coe_eNNReal_eq_zero
-
+#align ereal.coe_ennreal_eq_zero EReal.coe_ennreal_eq_zero
+
+/- warning: ereal.coe_ennreal_eq_one -> EReal.coe_ennreal_eq_one is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal}, Iff (Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (OfNat.mk.{0} ENNReal 1 (One.one.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne))))))
+but is expected to have type
+  forall {x : ENNReal}, Iff (Eq.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Eq.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (One.toOfNat1.{0} ENNReal (CanonicallyOrderedCommSemiring.toOne.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_eq_one EReal.coe_ennreal_eq_oneₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_eq_one {x : ℝ≥0∞} : (x : Ereal) = 1 ↔ x = 1 := by
+theorem coe_ennreal_eq_one {x : ℝ≥0∞} : (x : EReal) = 1 ↔ x = 1 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_one]
-#align ereal.coe_ennreal_eq_one Ereal.coe_eNNReal_eq_one
-
+#align ereal.coe_ennreal_eq_one EReal.coe_ennreal_eq_one
+
+/- warning: ereal.coe_ennreal_ne_zero -> EReal.coe_ennreal_ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))))
+but is expected to have type
+  forall {x : ENNReal}, Iff (Ne.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_ne_zero EReal.coe_ennreal_ne_zeroₓ'. -/
 @[norm_cast]
-theorem coe_eNNReal_ne_zero {x : ℝ≥0∞} : (x : Ereal) ≠ 0 ↔ x ≠ 0 :=
-  coe_eNNReal_eq_zero.Not
-#align ereal.coe_ennreal_ne_zero Ereal.coe_eNNReal_ne_zero
-
+theorem coe_ennreal_ne_zero {x : ℝ≥0∞} : (x : EReal) ≠ 0 ↔ x ≠ 0 :=
+  coe_ennreal_eq_zero.Not
+#align ereal.coe_ennreal_ne_zero EReal.coe_ennreal_ne_zero
+
+/- warning: ereal.coe_ennreal_ne_one -> EReal.coe_ennreal_ne_one is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal}, Iff (Ne.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) (OfNat.ofNat.{0} EReal 1 (OfNat.mk.{0} EReal 1 (One.one.{0} EReal EReal.hasOne)))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (OfNat.mk.{0} ENNReal 1 (One.one.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne))))))
+but is expected to have type
+  forall {x : ENNReal}, Iff (Ne.{1} EReal (ENNReal.toEReal x) (OfNat.ofNat.{0} EReal 1 (One.toOfNat1.{0} EReal instERealOne))) (Ne.{1} ENNReal x (OfNat.ofNat.{0} ENNReal 1 (One.toOfNat1.{0} ENNReal (CanonicallyOrderedCommSemiring.toOne.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_ne_one EReal.coe_ennreal_ne_oneₓ'. -/
 @[norm_cast]
-theorem coe_eNNReal_ne_one {x : ℝ≥0∞} : (x : Ereal) ≠ 1 ↔ x ≠ 1 :=
-  coe_eNNReal_eq_one.Not
-#align ereal.coe_ennreal_ne_one Ereal.coe_eNNReal_ne_one
-
-theorem coe_eNNReal_nonneg (x : ℝ≥0∞) : (0 : Ereal) ≤ x :=
-  coe_eNNReal_le_coe_eNNReal_iff.2 (zero_le x)
-#align ereal.coe_ennreal_nonneg Ereal.coe_eNNReal_nonneg
-
+theorem coe_ennreal_ne_one {x : ℝ≥0∞} : (x : EReal) ≠ 1 ↔ x ≠ 1 :=
+  coe_ennreal_eq_one.Not
+#align ereal.coe_ennreal_ne_one EReal.coe_ennreal_ne_one
+
+/- warning: ereal.coe_ennreal_nonneg -> EReal.coe_ennreal_nonneg is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal), LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
+but is expected to have type
+  forall (x : ENNReal), LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (ENNReal.toEReal x)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonnegₓ'. -/
+theorem coe_ennreal_nonneg (x : ℝ≥0∞) : (0 : EReal) ≤ x :=
+  coe_ennreal_le_coe_ennreal_iff.2 (zero_le x)
+#align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonneg
+
+/- warning: ereal.coe_ennreal_pos -> EReal.coe_ennreal_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) x)
+but is expected to have type
+  forall {x : ENNReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) (ENNReal.toEReal x)) (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) x)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_pos EReal.coe_ennreal_posₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_pos {x : ℝ≥0∞} : (0 : Ereal) < x ↔ 0 < x := by
+theorem coe_ennreal_pos {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
   rw [← coe_ennreal_zero, coe_ennreal_lt_coe_ennreal_iff]
-#align ereal.coe_ennreal_pos Ereal.coe_eNNReal_pos
-
+#align ereal.coe_ennreal_pos EReal.coe_ennreal_pos
+
+/- warning: ereal.bot_lt_coe_ennreal -> EReal.bot_lt_coe_ennreal is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x)
+but is expected to have type
+  forall (x : ENNReal), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (ENNReal.toEReal x)
+Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_coe_ennreal EReal.bot_lt_coe_ennrealₓ'. -/
 @[simp]
-theorem bot_lt_coe_eNNReal (x : ℝ≥0∞) : (⊥ : Ereal) < x :=
-  (bot_lt_coe 0).trans_le (coe_eNNReal_nonneg _)
-#align ereal.bot_lt_coe_ennreal Ereal.bot_lt_coe_eNNReal
+theorem bot_lt_coe_ennreal (x : ℝ≥0∞) : (⊥ : EReal) < x :=
+  (bot_lt_coe 0).trans_le (coe_ennreal_nonneg _)
+#align ereal.bot_lt_coe_ennreal EReal.bot_lt_coe_ennreal
 
+#print EReal.coe_ennreal_ne_bot /-
 @[simp]
-theorem coe_eNNReal_ne_bot (x : ℝ≥0∞) : (x : Ereal) ≠ ⊥ :=
-  (bot_lt_coe_eNNReal x).ne'
-#align ereal.coe_ennreal_ne_bot Ereal.coe_eNNReal_ne_bot
+theorem coe_ennreal_ne_bot (x : ℝ≥0∞) : (x : EReal) ≠ ⊥ :=
+  (bot_lt_coe_ennreal x).ne'
+#align ereal.coe_ennreal_ne_bot EReal.coe_ennreal_ne_bot
+-/
 
+/- warning: ereal.coe_ennreal_add -> EReal.coe_ennreal_add is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y))
+but is expected to have type
+  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal (ENNReal.toEReal (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) x y)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (ENNReal.toEReal x) (ENNReal.toEReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_add EReal.coe_ennreal_addₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_add (x y : ENNReal) : ((x + y : ℝ≥0∞) : Ereal) = x + y := by
+theorem coe_ennreal_add (x y : ENNReal) : ((x + y : ℝ≥0∞) : EReal) = x + y := by
   cases x <;> cases y <;> rfl
-#align ereal.coe_ennreal_add Ereal.coe_eNNReal_add
-
+#align ereal.coe_ennreal_add EReal.coe_ennreal_add
+
+/- warning: ereal.coe_ennreal_mul -> EReal.coe_ennreal_mul is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) y))
+but is expected to have type
+  forall (x : ENNReal) (y : ENNReal), Eq.{1} EReal (ENNReal.toEReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) x y)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (ENNReal.toEReal x) (ENNReal.toEReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_mul EReal.coe_ennreal_mulₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : Ereal) = x * y
+theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : EReal) = x * y
   | ⊤, ⊤ => rfl
   | ⊤, (y : ℝ≥0) => by
     rw [ENNReal.top_mul']; split_ifs
@@ -574,41 +954,63 @@ theorem coe_eNNReal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : Ereal) =
     · have A : (0 : ℝ) < y := by
         simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
-      simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), Ereal.mul, A, if_true]
+      simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), ⊤ => by
     rw [ENNReal.mul_top']; split_ifs
     · simp only [h, coe_ennreal_zero, zero_mul]
     · have A : (0 : ℝ) < x := by
         simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
-      simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), Ereal.mul, A, if_true]
+      simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), EReal.mul, A, if_true]
   | (x : ℝ≥0), (y : ℝ≥0) => by
-    simp only [← ENNReal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, Ereal.coe_mul]
-#align ereal.coe_ennreal_mul Ereal.coe_eNNReal_mul
+    simp only [← ENNReal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, EReal.coe_mul]
+#align ereal.coe_ennreal_mul EReal.coe_ennreal_mul
 
+#print EReal.coe_ennreal_nsmul /-
 @[norm_cast]
-theorem coe_eNNReal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : Ereal) = n • x :=
-  map_nsmul (⟨coe, coe_eNNReal_zero, coe_eNNReal_add⟩ : ℝ≥0∞ →+ Ereal) _ _
-#align ereal.coe_ennreal_nsmul Ereal.coe_eNNReal_nsmul
+theorem coe_ennreal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : EReal) = n • x :=
+  map_nsmul (⟨coe, coe_ennreal_zero, coe_ennreal_add⟩ : ℝ≥0∞ →+ EReal) _ _
+#align ereal.coe_ennreal_nsmul EReal.coe_ennreal_nsmul
+-/
 
+/- warning: ereal.coe_ennreal_bit0 clashes with [anonymous] -> [anonymous]
+warning: ereal.coe_ennreal_bit0 -> [anonymous] is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (bit0.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))))) x)) (bit0.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x))
+but is expected to have type
+  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_bit0 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_bit0 (x : ℝ≥0∞) : (↑(bit0 x) : Ereal) = bit0 x :=
-  coe_eNNReal_add _ _
-#align ereal.coe_ennreal_bit0 Ereal.coe_eNNReal_bit0
-
+theorem [anonymous] (x : ℝ≥0∞) : (↑(bit0 x) : EReal) = bit0 x :=
+  coe_ennreal_add _ _
+#align ereal.coe_ennreal_bit0 [anonymous]
+
+/- warning: ereal.coe_ennreal_bit1 clashes with [anonymous] -> [anonymous]
+warning: ereal.coe_ennreal_bit1 -> [anonymous] is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (bit1.{0} ENNReal (AddMonoidWithOne.toOne.{0} ENNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} ENNReal ENNReal.addCommMonoidWithOne)) (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))))) x)) (bit1.{0} EReal EReal.hasOne (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x))
+but is expected to have type
+  forall {x : Type.{u}} {β : Type.{v}}, (Nat -> x -> β) -> Nat -> (List.{u} x) -> (List.{v} β)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_bit1 [anonymous]ₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_bit1 (x : ℝ≥0∞) : (↑(bit1 x) : Ereal) = bit1 x := by
+theorem [anonymous] (x : ℝ≥0∞) : (↑(bit1 x) : EReal) = bit1 x := by
   simp_rw [bit1, coe_ennreal_add, coe_ennreal_bit0, coe_ennreal_one]
-#align ereal.coe_ennreal_bit1 Ereal.coe_eNNReal_bit1
+#align ereal.coe_ennreal_bit1 [anonymous]
 
 /-! ### Order -/
 
 
+/- warning: ereal.exists_rat_btwn_of_lt -> EReal.exists_rat_btwn_of_lt is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
+but is expected to have type
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) -> (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x)) b)))
+Case conversion may be inaccurate. Consider using '#align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_ltₓ'. -/
 theorem exists_rat_btwn_of_lt :
-    ∀ {a b : Ereal} (hab : a < b), ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : Ereal) < b
+    ∀ {a b : EReal} (hab : a < b), ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b
   | ⊤, b, h => (not_top_lt h).elim
   | (a : ℝ), ⊥, h => (lt_irrefl _ ((bot_lt_coe a).trans h)).elim
-  | (a : ℝ), (b : ℝ), h => by simp [exists_rat_btwn (Ereal.coe_lt_coe_iff.1 h)]
+  | (a : ℝ), (b : ℝ), h => by simp [exists_rat_btwn (EReal.coe_lt_coe_iff.1 h)]
   | (a : ℝ), ⊤, h =>
     let ⟨b, hab⟩ := exists_rat_gt a
     ⟨b, by simpa using hab, coe_lt_top _⟩
@@ -617,24 +1019,42 @@ theorem exists_rat_btwn_of_lt :
     let ⟨b, hab⟩ := exists_rat_lt a
     ⟨b, bot_lt_coe _, by simpa using hab⟩
   | ⊥, ⊤, h => ⟨0, bot_lt_coe _, coe_lt_top _⟩
-#align ereal.exists_rat_btwn_of_lt Ereal.exists_rat_btwn_of_lt
-
-theorem lt_iff_exists_rat_btwn {a b : Ereal} :
-    a < b ↔ ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : Ereal) < b :=
+#align ereal.exists_rat_btwn_of_lt EReal.exists_rat_btwn_of_lt
+
+/- warning: ereal.lt_iff_exists_rat_btwn -> EReal.lt_iff_exists_rat_btwn is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) x)) b)))
+but is expected to have type
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Rat (fun (x : Rat) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x))) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal (RatCast.ratCast.{0} Real Real.ratCast x)) b)))
+Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwnₓ'. -/
+theorem lt_iff_exists_rat_btwn {a b : EReal} :
+    a < b ↔ ∃ x : ℚ, a < (x : ℝ) ∧ ((x : ℝ) : EReal) < b :=
   ⟨fun hab => exists_rat_btwn_of_lt hab, fun ⟨x, ax, xb⟩ => ax.trans xb⟩
-#align ereal.lt_iff_exists_rat_btwn Ereal.lt_iff_exists_rat_btwn
-
-theorem lt_iff_exists_real_btwn {a b : Ereal} : a < b ↔ ∃ x : ℝ, a < x ∧ (x : Ereal) < b :=
+#align ereal.lt_iff_exists_rat_btwn EReal.lt_iff_exists_rat_btwn
+
+/- warning: ereal.lt_iff_exists_real_btwn -> EReal.lt_iff_exists_real_btwn is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) b)))
+but is expected to have type
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a b) (Exists.{1} Real (fun (x : Real) => And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Real.toEReal x)) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Real.toEReal x) b)))
+Case conversion may be inaccurate. Consider using '#align ereal.lt_iff_exists_real_btwn EReal.lt_iff_exists_real_btwnₓ'. -/
+theorem lt_iff_exists_real_btwn {a b : EReal} : a < b ↔ ∃ x : ℝ, a < x ∧ (x : EReal) < b :=
   ⟨fun hab =>
     let ⟨x, ax, xb⟩ := exists_rat_btwn_of_lt hab
     ⟨(x : ℝ), ax, xb⟩,
     fun ⟨x, ax, xb⟩ => ax.trans xb⟩
-#align ereal.lt_iff_exists_real_btwn Ereal.lt_iff_exists_real_btwn
-
+#align ereal.lt_iff_exists_real_btwn EReal.lt_iff_exists_real_btwn
+
+/- warning: ereal.ne_top_bot_equiv_real -> EReal.neTopBotEquivReal is a dubious translation:
+lean 3 declaration is
+  Equiv.{1, 1} (coeSort.{1, 2} (Set.{0} EReal) Type (Set.hasCoeToSort.{0} EReal) (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.booleanAlgebra.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.hasInsert.{0} EReal) (Bot.bot.{0} EReal EReal.hasBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.hasSingleton.{0} EReal) (Top.top.{0} EReal EReal.hasTop))))) Real
+but is expected to have type
+  Equiv.{1, 1} (Set.Elem.{0} EReal (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.instBooleanAlgebraSet.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.instInsertSet.{0} EReal) (Bot.bot.{0} EReal instERealBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.instSingletonSet.{0} EReal) (Top.top.{0} EReal EReal.instTopEReal))))) Real
+Case conversion may be inaccurate. Consider using '#align ereal.ne_top_bot_equiv_real EReal.neTopBotEquivRealₓ'. -/
 /-- The set of numbers in `ereal` that are not equal to `±∞` is equivalent to `ℝ`. -/
-def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set Ereal) ≃ ℝ
+def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ
     where
-  toFun x := Ereal.toReal x
+  toFun x := EReal.toReal x
   invFun x := ⟨x, by simp⟩
   left_inv := fun ⟨x, hx⟩ =>
     Subtype.eq <| by
@@ -642,49 +1062,91 @@ def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set Ereal) ≃ ℝ
       · simpa [not_or, and_comm'] using hx
       · simp
   right_inv x := by simp
-#align ereal.ne_top_bot_equiv_real Ereal.neTopBotEquivReal
+#align ereal.ne_top_bot_equiv_real EReal.neTopBotEquivReal
 
 /-! ### Addition -/
 
 
+/- warning: ereal.add_bot -> EReal.add_bot is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot)
+but is expected to have type
+  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot)
+Case conversion may be inaccurate. Consider using '#align ereal.add_bot EReal.add_botₓ'. -/
 @[simp]
-theorem add_bot (x : Ereal) : x + ⊥ = ⊥ :=
+theorem add_bot (x : EReal) : x + ⊥ = ⊥ :=
   WithBot.add_bot _
-#align ereal.add_bot Ereal.add_bot
-
+#align ereal.add_bot EReal.add_bot
+
+/- warning: ereal.bot_add -> EReal.bot_add is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot)
+but is expected to have type
+  forall (x : EReal), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot)
+Case conversion may be inaccurate. Consider using '#align ereal.bot_add EReal.bot_addₓ'. -/
 @[simp]
-theorem bot_add (x : Ereal) : ⊥ + x = ⊥ :=
+theorem bot_add (x : EReal) : ⊥ + x = ⊥ :=
   WithBot.bot_add _
-#align ereal.bot_add Ereal.bot_add
-
+#align ereal.bot_add EReal.bot_add
+
+/- warning: ereal.top_add_top -> EReal.top_add_top is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) (Top.top.{0} EReal EReal.hasTop) (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Top.top.{0} EReal EReal.instTopEReal) (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.top_add_top EReal.top_add_topₓ'. -/
 @[simp]
-theorem top_add_top : (⊤ : Ereal) + ⊤ = ⊤ :=
+theorem top_add_top : (⊤ : EReal) + ⊤ = ⊤ :=
   rfl
-#align ereal.top_add_top Ereal.top_add_top
-
+#align ereal.top_add_top EReal.top_add_top
+
+/- warning: ereal.top_add_coe -> EReal.top_add_coe is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.top_add_coe EReal.top_add_coeₓ'. -/
 @[simp]
-theorem top_add_coe (x : ℝ) : (⊤ : Ereal) + x = ⊤ :=
+theorem top_add_coe (x : ℝ) : (⊤ : EReal) + x = ⊤ :=
   rfl
-#align ereal.top_add_coe Ereal.top_add_coe
-
+#align ereal.top_add_coe EReal.top_add_coe
+
+/- warning: ereal.coe_add_top -> EReal.coe_add_top is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_add_top EReal.coe_add_topₓ'. -/
 @[simp]
-theorem coe_add_top (x : ℝ) : (x : Ereal) + ⊤ = ⊤ :=
+theorem coe_add_top (x : ℝ) : (x : EReal) + ⊤ = ⊤ :=
   rfl
-#align ereal.coe_add_top Ereal.coe_add_top
-
+#align ereal.coe_add_top EReal.coe_add_top
+
+/- warning: ereal.to_real_add -> EReal.toReal_add is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal EReal.hasBot)) -> (Eq.{1} Real (EReal.toReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (EReal.toReal x) (EReal.toReal y)))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal instERealBot)) -> (Eq.{1} Real (EReal.toReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (EReal.toReal x) (EReal.toReal y)))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_add EReal.toReal_addₓ'. -/
 theorem toReal_add :
-    ∀ {x y : Ereal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥),
+    ∀ {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥),
       toReal (x + y) = toReal x + toReal y
   | ⊥, y, hx, h'x, hy, h'y => (h'x rfl).elim
   | ⊤, y, hx, h'x, hy, h'y => (hx rfl).elim
   | x, ⊤, hx, h'x, hy, h'y => (hy rfl).elim
   | x, ⊥, hx, h'x, hy, h'y => (h'y rfl).elim
-  | (x : ℝ), (y : ℝ), hx, h'x, hy, h'y => by simp [← Ereal.coe_add]
-#align ereal.to_real_add Ereal.toReal_add
-
-theorem add_lt_add_right_coe {x y : Ereal} (h : x < y) (z : ℝ) : x + z < y + z :=
+  | (x : ℝ), (y : ℝ), hx, h'x, hy, h'y => by simp [← EReal.coe_add]
+#align ereal.to_real_add EReal.toReal_add
+
+/- warning: ereal.add_lt_add_right_coe -> EReal.add_lt_add_right_coe is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z)))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x (Real.toEReal z)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y (Real.toEReal z)))
+Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coeₓ'. -/
+theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z :=
   by
-  induction x using Ereal.rec <;> induction y using Ereal.rec
+  induction x using EReal.rec <;> induction y using EReal.rec
   · exact (lt_irrefl _ h).elim
   · simp only [← coe_add, bot_add, bot_lt_coe]
   · simp
@@ -695,11 +1157,17 @@ theorem add_lt_add_right_coe {x y : Ereal} (h : x < y) (z : ℝ) : x + z < y + z
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
   · exact (lt_irrefl _ (h.trans_le le_top)).elim
-#align ereal.add_lt_add_right_coe Ereal.add_lt_add_right_coe
-
-theorem add_lt_add_of_lt_of_le {x y z t : Ereal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
+#align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coe
+
+/- warning: ereal.add_lt_add_of_lt_of_le -> EReal.add_lt_add_of_lt_of_le is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
+but is expected to have type
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y t))
+Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_leₓ'. -/
+theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x + z < y + t := by
-  induction z using Ereal.rec
+  induction z using EReal.rec
   · simpa only using hz
   ·
     calc
@@ -707,90 +1175,151 @@ theorem add_lt_add_of_lt_of_le {x y z t : Ereal} (h : x < y) (h' : z ≤ t) (hz
       _ ≤ y + t := add_le_add le_rfl h'
       
   · exact (ht (top_le_iff.1 h')).elim
-#align ereal.add_lt_add_of_lt_of_le Ereal.add_lt_add_of_lt_of_le
-
-theorem add_lt_add_left_coe {x y : Ereal} (h : x < y) (z : ℝ) : (z : Ereal) + x < z + y := by
+#align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_le
+
+/- warning: ereal.add_lt_add_left_coe -> EReal.add_lt_add_left_coe is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) z) y))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (forall (z : Real), LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal z) x) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) (Real.toEReal z) y))
+Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add_left_coe EReal.add_lt_add_left_coeₓ'. -/
+theorem add_lt_add_left_coe {x y : EReal} (h : x < y) (z : ℝ) : (z : EReal) + x < z + y := by
   simpa [add_comm] using add_lt_add_right_coe h z
-#align ereal.add_lt_add_left_coe Ereal.add_lt_add_left_coe
-
-theorem add_lt_add {x y z t : Ereal} (h1 : x < y) (h2 : z < t) : x + z < y + t :=
+#align ereal.add_lt_add_left_coe EReal.add_lt_add_left_coe
+
+/- warning: ereal.add_lt_add -> EReal.add_lt_add is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) y t))
+but is expected to have type
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x z) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) y t))
+Case conversion may be inaccurate. Consider using '#align ereal.add_lt_add EReal.add_lt_addₓ'. -/
+theorem add_lt_add {x y z t : EReal} (h1 : x < y) (h2 : z < t) : x + z < y + t :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · simp [bot_lt_iff_ne_bot, h1.ne', (bot_le.trans_lt h2).ne']
   ·
     calc
-      (x : Ereal) + z < x + t := add_lt_add_left_coe h2 _
+      (x : EReal) + z < x + t := add_lt_add_left_coe h2 _
       _ ≤ y + t := add_le_add h1.le le_rfl
       
   · exact (lt_irrefl _ (h1.trans_le le_top)).elim
-#align ereal.add_lt_add Ereal.add_lt_add
-
+#align ereal.add_lt_add EReal.add_lt_add
+
+/- warning: ereal.add_eq_bot_iff -> EReal.add_eq_bot_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, Iff (Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y) (Bot.bot.{0} EReal EReal.hasBot)) (Or (Eq.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) (Eq.{1} EReal y (Bot.bot.{0} EReal EReal.hasBot)))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, Iff (Eq.{1} EReal (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y) (Bot.bot.{0} EReal instERealBot)) (Or (Eq.{1} EReal x (Bot.bot.{0} EReal instERealBot)) (Eq.{1} EReal y (Bot.bot.{0} EReal instERealBot)))
+Case conversion may be inaccurate. Consider using '#align ereal.add_eq_bot_iff EReal.add_eq_bot_iffₓ'. -/
 @[simp]
-theorem add_eq_bot_iff {x y : Ereal} : x + y = ⊥ ↔ x = ⊥ ∨ y = ⊥ := by
-  induction x using Ereal.rec <;> induction y using Ereal.rec <;> simp [← Ereal.coe_add]
-#align ereal.add_eq_bot_iff Ereal.add_eq_bot_iff
-
+theorem add_eq_bot_iff {x y : EReal} : x + y = ⊥ ↔ x = ⊥ ∨ y = ⊥ := by
+  induction x using EReal.rec <;> induction y using EReal.rec <;> simp [← EReal.coe_add]
+#align ereal.add_eq_bot_iff EReal.add_eq_bot_iff
+
+/- warning: ereal.bot_lt_add_iff -> EReal.bot_lt_add_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) x) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Bot.bot.{0} EReal EReal.hasBot) y))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y)) (And (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) x) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Bot.bot.{0} EReal instERealBot) y))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_lt_add_iff EReal.bot_lt_add_iffₓ'. -/
 @[simp]
-theorem bot_lt_add_iff {x y : Ereal} : ⊥ < x + y ↔ ⊥ < x ∧ ⊥ < y := by
+theorem bot_lt_add_iff {x y : EReal} : ⊥ < x + y ↔ ⊥ < x ∧ ⊥ < y := by
   simp [bot_lt_iff_ne_bot, not_or]
-#align ereal.bot_lt_add_iff Ereal.bot_lt_add_iff
-
-theorem add_lt_top {x y : Ereal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ :=
+#align ereal.bot_lt_add_iff EReal.bot_lt_add_iff
+
+/- warning: ereal.add_lt_top -> EReal.add_lt_top is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toHasAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal EReal.addMonoid))) x y) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HAdd.hAdd.{0, 0, 0} EReal EReal EReal (instHAdd.{0} EReal (AddZeroClass.toAdd.{0} EReal (AddMonoid.toAddZeroClass.{0} EReal instERealAddMonoid))) x y) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.add_lt_top EReal.add_lt_topₓ'. -/
+theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ :=
   by
-  rw [← Ereal.top_add_top]
-  exact Ereal.add_lt_add hx.lt_top hy.lt_top
-#align ereal.add_lt_top Ereal.add_lt_top
+  rw [← EReal.top_add_top]
+  exact EReal.add_lt_add hx.lt_top hy.lt_top
+#align ereal.add_lt_top EReal.add_lt_top
 
 /-! ### Negation -/
 
 
+#print EReal.neg /-
 /-- negation on `ereal` -/
-protected def neg : Ereal → Ereal
+protected def neg : EReal → EReal
   | ⊥ => ⊤
   | ⊤ => ⊥
   | (x : ℝ) => (-x : ℝ)
-#align ereal.neg Ereal.neg
+#align ereal.neg EReal.neg
+-/
 
-instance : Neg Ereal :=
-  ⟨Ereal.neg⟩
+instance : Neg EReal :=
+  ⟨EReal.neg⟩
 
-instance : SubNegZeroMonoid Ereal :=
-  { Ereal.addMonoid, Ereal.hasNeg with
+instance : SubNegZeroMonoid EReal :=
+  { EReal.addMonoid, EReal.hasNeg with
     neg_zero := by
-      change ((-0 : ℝ) : Ereal) = 0
+      change ((-0 : ℝ) : EReal) = 0
       simp }
 
+/- warning: ereal.neg_def clashes with ereal.coe_neg -> EReal.coe_neg
+warning: ereal.neg_def -> EReal.coe_neg is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (Neg.neg.{0} Real Real.hasNeg x)) (Neg.neg.{0} EReal EReal.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (Real.toEReal (Neg.neg.{0} Real Real.instNegReal x)) (Neg.neg.{0} EReal EReal.instNegEReal (Real.toEReal x))
+Case conversion may be inaccurate. Consider using '#align ereal.neg_def EReal.coe_negₓ'. -/
 @[norm_cast]
-protected theorem neg_def (x : ℝ) : ((-x : ℝ) : Ereal) = -x :=
+protected theorem coe_neg (x : ℝ) : ((-x : ℝ) : EReal) = -x :=
   rfl
-#align ereal.neg_def Ereal.neg_def
+#align ereal.neg_def EReal.coe_neg
 
+#print EReal.neg_top /-
 @[simp]
-theorem neg_top : -(⊤ : Ereal) = ⊥ :=
+theorem neg_top : -(⊤ : EReal) = ⊥ :=
   rfl
-#align ereal.neg_top Ereal.neg_top
+#align ereal.neg_top EReal.neg_top
+-/
 
+#print EReal.neg_bot /-
 @[simp]
-theorem neg_bot : -(⊥ : Ereal) = ⊤ :=
+theorem neg_bot : -(⊥ : EReal) = ⊤ :=
   rfl
-#align ereal.neg_bot Ereal.neg_bot
+#align ereal.neg_bot EReal.neg_bot
+-/
 
+/- warning: ereal.coe_neg -> EReal.coe_neg is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (Neg.neg.{0} Real Real.hasNeg x)) (Neg.neg.{0} EReal EReal.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (Real.toEReal (Neg.neg.{0} Real Real.instNegReal x)) (Neg.neg.{0} EReal EReal.instNegEReal (Real.toEReal x))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_neg EReal.coe_negₓ'. -/
 @[simp, norm_cast]
-theorem coe_neg (x : ℝ) : (↑(-x) : Ereal) = -x :=
+theorem coe_neg (x : ℝ) : (↑(-x) : EReal) = -x :=
   rfl
-#align ereal.coe_neg Ereal.coe_neg
-
+#align ereal.coe_neg EReal.coe_neg
+
+/- warning: ereal.coe_sub -> EReal.coe_sub is a dubious translation:
+lean 3 declaration is
+  forall (x : Real) (y : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x y)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) y))
+but is expected to have type
+  forall (x : Real) (y : Real), Eq.{1} EReal (Real.toEReal (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x y)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Real.toEReal x) (Real.toEReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_sub EReal.coe_subₓ'. -/
 @[simp, norm_cast]
-theorem coe_sub (x y : ℝ) : (↑(x - y) : Ereal) = x - y :=
+theorem coe_sub (x y : ℝ) : (↑(x - y) : EReal) = x - y :=
   rfl
-#align ereal.coe_sub Ereal.coe_sub
-
+#align ereal.coe_sub EReal.coe_sub
+
+/- warning: ereal.coe_zsmul -> EReal.coe_zsmul is a dubious translation:
+lean 3 declaration is
+  forall (n : Int) (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (SMul.smul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.addGroup)) n x)) (SMul.smul.{0, 0} Int EReal (SubNegMonoid.SMulInt.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid)) n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))
+but is expected to have type
+  forall (n : Int) (x : Real), Eq.{1} EReal (Real.toEReal (HSMul.hSMul.{0, 0, 0} Int Real Real (instHSMul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.instAddGroupReal))) n x)) (HSMul.hSMul.{0, 0, 0} Int EReal EReal (instHSMul.{0, 0} Int EReal (SubNegMonoid.SMulInt.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) n (Real.toEReal x))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_zsmul EReal.coe_zsmulₓ'. -/
 @[norm_cast]
-theorem coe_zsmul (n : ℤ) (x : ℝ) : (↑(n • x) : Ereal) = n • x :=
-  map_zsmul' (⟨coe, coe_zero, coe_add⟩ : ℝ →+ Ereal) coe_neg _ _
-#align ereal.coe_zsmul Ereal.coe_zsmul
+theorem coe_zsmul (n : ℤ) (x : ℝ) : (↑(n • x) : EReal) = n • x :=
+  map_zsmul' (⟨coe, coe_zero, coe_add⟩ : ℝ →+ EReal) coe_neg _ _
+#align ereal.coe_zsmul EReal.coe_zsmul
 
-instance : InvolutiveNeg Ereal where
+instance : InvolutiveNeg EReal where
   neg := Neg.neg
   neg_neg a :=
     match a with
@@ -800,38 +1329,60 @@ instance : InvolutiveNeg Ereal where
       norm_cast
       simp [neg_neg a]
 
+/- warning: ereal.to_real_neg -> EReal.toReal_neg is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal}, Eq.{1} Real (EReal.toReal (Neg.neg.{0} EReal EReal.hasNeg a)) (Neg.neg.{0} Real Real.hasNeg (EReal.toReal a))
+but is expected to have type
+  forall {a : EReal}, Eq.{1} Real (EReal.toReal (Neg.neg.{0} EReal EReal.instNegEReal a)) (Neg.neg.{0} Real Real.instNegReal (EReal.toReal a))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_neg EReal.toReal_negₓ'. -/
 @[simp]
-theorem toReal_neg : ∀ {a : Ereal}, toReal (-a) = -toReal a
+theorem toReal_neg : ∀ {a : EReal}, toReal (-a) = -toReal a
   | ⊤ => by simp
   | ⊥ => by simp
   | (x : ℝ) => rfl
-#align ereal.to_real_neg Ereal.toReal_neg
+#align ereal.to_real_neg EReal.toReal_neg
 
+#print EReal.neg_eq_top_iff /-
 @[simp]
-theorem neg_eq_top_iff {x : Ereal} : -x = ⊤ ↔ x = ⊥ :=
+theorem neg_eq_top_iff {x : EReal} : -x = ⊤ ↔ x = ⊥ :=
   by
   rw [neg_eq_iff_neg_eq]
   simp [eq_comm]
-#align ereal.neg_eq_top_iff Ereal.neg_eq_top_iff
+#align ereal.neg_eq_top_iff EReal.neg_eq_top_iff
+-/
 
+#print EReal.neg_eq_bot_iff /-
 @[simp]
-theorem neg_eq_bot_iff {x : Ereal} : -x = ⊥ ↔ x = ⊤ :=
+theorem neg_eq_bot_iff {x : EReal} : -x = ⊥ ↔ x = ⊤ :=
   by
   rw [neg_eq_iff_neg_eq]
   simp [eq_comm]
-#align ereal.neg_eq_bot_iff Ereal.neg_eq_bot_iff
+#align ereal.neg_eq_bot_iff EReal.neg_eq_bot_iff
+-/
 
+/- warning: ereal.neg_eq_zero_iff -> EReal.neg_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, Iff (Eq.{1} EReal (Neg.neg.{0} EReal EReal.hasNeg x) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))))
+but is expected to have type
+  forall {x : EReal}, Iff (Eq.{1} EReal (Neg.neg.{0} EReal EReal.instNegEReal x) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)))
+Case conversion may be inaccurate. Consider using '#align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iffₓ'. -/
 @[simp]
-theorem neg_eq_zero_iff {x : Ereal} : -x = 0 ↔ x = 0 :=
+theorem neg_eq_zero_iff {x : EReal} : -x = 0 ↔ x = 0 :=
   by
   rw [neg_eq_iff_neg_eq]
   simp [eq_comm]
-#align ereal.neg_eq_zero_iff Ereal.neg_eq_zero_iff
-
+#align ereal.neg_eq_zero_iff EReal.neg_eq_zero_iff
+
+/- warning: ereal.neg_le_of_neg_le -> EReal.neg_le_of_neg_le is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+but is expected to have type
+  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
+Case conversion may be inaccurate. Consider using '#align ereal.neg_le_of_neg_le EReal.neg_le_of_neg_leₓ'. -/
 /-- if `-a ≤ b` then `-b ≤ a` on `ereal`. -/
-protected theorem neg_le_of_neg_le {a b : Ereal} (h : -a ≤ b) : -b ≤ a :=
+protected theorem neg_le_of_neg_le {a b : EReal} (h : -a ≤ b) : -b ≤ a :=
   by
-  induction a using Ereal.rec <;> induction b using Ereal.rec
+  induction a using EReal.rec <;> induction b using EReal.rec
   · exact h
   · simpa only [coe_ne_top, neg_bot, top_le_iff] using h
   · exact bot_le
@@ -842,41 +1393,77 @@ protected theorem neg_le_of_neg_le {a b : Ereal} (h : -a ≤ b) : -b ≤ a :=
   · exact le_top
   · exact le_top
   · exact le_top
-#align ereal.neg_le_of_neg_le Ereal.neg_le_of_neg_le
-
+#align ereal.neg_le_of_neg_le EReal.neg_le_of_neg_le
+
+/- warning: ereal.neg_le -> EReal.neg_le is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+but is expected to have type
+  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
+Case conversion may be inaccurate. Consider using '#align ereal.neg_le EReal.neg_leₓ'. -/
 /-- `-a ≤ b ↔ -b ≤ a` on `ereal`. -/
-protected theorem neg_le {a b : Ereal} : -a ≤ b ↔ -b ≤ a :=
-  ⟨Ereal.neg_le_of_neg_le, Ereal.neg_le_of_neg_le⟩
-#align ereal.neg_le Ereal.neg_le
-
+protected theorem neg_le {a b : EReal} : -a ≤ b ↔ -b ≤ a :=
+  ⟨EReal.neg_le_of_neg_le, EReal.neg_le_of_neg_le⟩
+#align ereal.neg_le EReal.neg_le
+
+/- warning: ereal.le_neg_of_le_neg -> EReal.le_neg_of_le_neg is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) a (Neg.neg.{0} EReal EReal.hasNeg b)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b (Neg.neg.{0} EReal EReal.hasNeg a))
+but is expected to have type
+  forall {a : EReal} {b : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) a (Neg.neg.{0} EReal EReal.instNegEReal b)) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) b (Neg.neg.{0} EReal EReal.instNegEReal a))
+Case conversion may be inaccurate. Consider using '#align ereal.le_neg_of_le_neg EReal.le_neg_of_le_negₓ'. -/
 /-- `a ≤ -b → b ≤ -a` on ereal -/
-theorem le_neg_of_le_neg {a b : Ereal} (h : a ≤ -b) : b ≤ -a := by
-  rwa [← neg_neg b, Ereal.neg_le, neg_neg]
-#align ereal.le_neg_of_le_neg Ereal.le_neg_of_le_neg
-
+theorem le_neg_of_le_neg {a b : EReal} (h : a ≤ -b) : b ≤ -a := by
+  rwa [← neg_neg b, EReal.neg_le, neg_neg]
+#align ereal.le_neg_of_le_neg EReal.le_neg_of_le_neg
+
+/- warning: ereal.neg_le_neg_iff -> EReal.neg_le_neg_iff is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) (Neg.neg.{0} EReal EReal.hasNeg b)) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) b a)
+but is expected to have type
+  forall {a : EReal} {b : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) (Neg.neg.{0} EReal EReal.instNegEReal b)) (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) b a)
+Case conversion may be inaccurate. Consider using '#align ereal.neg_le_neg_iff EReal.neg_le_neg_iffₓ'. -/
 @[simp]
-theorem neg_le_neg_iff {a b : Ereal} : -a ≤ -b ↔ b ≤ a := by conv_lhs => rw [Ereal.neg_le, neg_neg]
-#align ereal.neg_le_neg_iff Ereal.neg_le_neg_iff
-
+theorem neg_le_neg_iff {a b : EReal} : -a ≤ -b ↔ b ≤ a := by conv_lhs => rw [EReal.neg_le, neg_neg]
+#align ereal.neg_le_neg_iff EReal.neg_le_neg_iff
+
+/- warning: ereal.neg_order_iso -> EReal.negOrderIso is a dubious translation:
+lean 3 declaration is
+  OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OrderDual.hasLe.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))))
+but is expected to have type
+  OrderIso.{0, 0} EReal (OrderDual.{0} EReal) (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OrderDual.instLEOrderDual.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)))
+Case conversion may be inaccurate. Consider using '#align ereal.neg_order_iso EReal.negOrderIsoₓ'. -/
 /-- Negation as an order reversing isomorphism on `ereal`. -/
-def negOrderIso : Ereal ≃o Erealᵒᵈ :=
-  { Equiv.neg Ereal with
+def negOrderIso : EReal ≃o ERealᵒᵈ :=
+  { Equiv.neg EReal with
     toFun := fun x => OrderDual.toDual (-x)
     invFun := fun x => -x.ofDual
     map_rel_iff' := fun x y => neg_le_neg_iff }
-#align ereal.neg_order_iso Ereal.negOrderIso
-
-theorem neg_lt_of_neg_lt {a b : Ereal} (h : -a < b) : -b < a :=
+#align ereal.neg_order_iso EReal.negOrderIso
+
+/- warning: ereal.neg_lt_of_neg_lt -> EReal.neg_lt_of_neg_lt is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+but is expected to have type
+  forall {a : EReal} {b : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
+Case conversion may be inaccurate. Consider using '#align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_ltₓ'. -/
+theorem neg_lt_of_neg_lt {a b : EReal} (h : -a < b) : -b < a :=
   by
-  apply lt_of_le_of_ne (Ereal.neg_le_of_neg_le h.le)
+  apply lt_of_le_of_ne (EReal.neg_le_of_neg_le h.le)
   intro H
   rw [← H, neg_neg] at h
   exact lt_irrefl _ h
-#align ereal.neg_lt_of_neg_lt Ereal.neg_lt_of_neg_lt
-
-theorem neg_lt_iff_neg_lt {a b : Ereal} : -a < b ↔ -b < a :=
-  ⟨fun h => Ereal.neg_lt_of_neg_lt h, fun h => Ereal.neg_lt_of_neg_lt h⟩
-#align ereal.neg_lt_iff_neg_lt Ereal.neg_lt_iff_neg_lt
+#align ereal.neg_lt_of_neg_lt EReal.neg_lt_of_neg_lt
+
+/- warning: ereal.neg_lt_iff_neg_lt -> EReal.neg_lt_iff_neg_lt is a dubious translation:
+lean 3 declaration is
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg a) b) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (Neg.neg.{0} EReal EReal.hasNeg b) a)
+but is expected to have type
+  forall {a : EReal} {b : EReal}, Iff (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal a) b) (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (Neg.neg.{0} EReal EReal.instNegEReal b) a)
+Case conversion may be inaccurate. Consider using '#align ereal.neg_lt_iff_neg_lt EReal.neg_lt_iff_neg_ltₓ'. -/
+theorem neg_lt_iff_neg_lt {a b : EReal} : -a < b ↔ -b < a :=
+  ⟨fun h => EReal.neg_lt_of_neg_lt h, fun h => EReal.neg_lt_of_neg_lt h⟩
+#align ereal.neg_lt_iff_neg_lt EReal.neg_lt_iff_neg_lt
 
 /-!
 ### Subtraction
@@ -887,42 +1474,90 @@ registered on `ereal`, beyond `sub_neg_zero_monoid`, because of this bad behavio
 -/
 
 
+/- warning: ereal.bot_sub -> EReal.bot_sub is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot)
+but is expected to have type
+  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot)
+Case conversion may be inaccurate. Consider using '#align ereal.bot_sub EReal.bot_subₓ'. -/
 @[simp]
-theorem bot_sub (x : Ereal) : ⊥ - x = ⊥ :=
+theorem bot_sub (x : EReal) : ⊥ - x = ⊥ :=
   bot_add x
-#align ereal.bot_sub Ereal.bot_sub
-
+#align ereal.bot_sub EReal.bot_sub
+
+/- warning: ereal.sub_top -> EReal.sub_top is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot)
+but is expected to have type
+  forall (x : EReal), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot)
+Case conversion may be inaccurate. Consider using '#align ereal.sub_top EReal.sub_topₓ'. -/
 @[simp]
-theorem sub_top (x : Ereal) : x - ⊤ = ⊥ :=
+theorem sub_top (x : EReal) : x - ⊤ = ⊥ :=
   add_bot x
-#align ereal.sub_top Ereal.sub_top
-
+#align ereal.sub_top EReal.sub_top
+
+/- warning: ereal.top_sub_bot -> EReal.top_sub_bot is a dubious translation:
+lean 3 declaration is
+  Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) (Top.top.{0} EReal EReal.hasTop) (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Top.top.{0} EReal EReal.instTopEReal) (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.top_sub_bot EReal.top_sub_botₓ'. -/
 @[simp]
-theorem top_sub_bot : (⊤ : Ereal) - ⊥ = ⊤ :=
+theorem top_sub_bot : (⊤ : EReal) - ⊥ = ⊤ :=
   rfl
-#align ereal.top_sub_bot Ereal.top_sub_bot
-
+#align ereal.top_sub_bot EReal.top_sub_bot
+
+/- warning: ereal.top_sub_coe -> EReal.top_sub_coe is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.top_sub_coe EReal.top_sub_coeₓ'. -/
 @[simp]
-theorem top_sub_coe (x : ℝ) : (⊤ : Ereal) - x = ⊤ :=
+theorem top_sub_coe (x : ℝ) : (⊤ : EReal) - x = ⊤ :=
   rfl
-#align ereal.top_sub_coe Ereal.top_sub_coe
-
+#align ereal.top_sub_coe EReal.top_sub_coe
+
+/- warning: ereal.coe_sub_bot -> EReal.coe_sub_bot is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop)
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (Real.toEReal x) (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_sub_bot EReal.coe_sub_botₓ'. -/
 @[simp]
-theorem coe_sub_bot (x : ℝ) : (x : Ereal) - ⊥ = ⊤ :=
+theorem coe_sub_bot (x : ℝ) : (x : EReal) - ⊥ = ⊤ :=
   rfl
-#align ereal.coe_sub_bot Ereal.coe_sub_bot
-
-theorem sub_le_sub {x y z t : Ereal} (h : x ≤ y) (h' : t ≤ z) : x - z ≤ y - t :=
+#align ereal.coe_sub_bot EReal.coe_sub_bot
+
+/- warning: ereal.sub_le_sub -> EReal.sub_le_sub is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) t z) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y t))
+but is expected to have type
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) t z) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x z) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) y t))
+Case conversion may be inaccurate. Consider using '#align ereal.sub_le_sub EReal.sub_le_subₓ'. -/
+theorem sub_le_sub {x y z t : EReal} (h : x ≤ y) (h' : t ≤ z) : x - z ≤ y - t :=
   add_le_add h (neg_le_neg_iff.2 h')
-#align ereal.sub_le_sub Ereal.sub_le_sub
-
-theorem sub_lt_sub_of_lt_of_le {x y z t : Ereal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
+#align ereal.sub_le_sub EReal.sub_le_sub
+
+/- warning: ereal.sub_lt_sub_of_lt_of_le -> EReal.sub_lt_sub_of_lt_of_le is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.hasTop)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) y z))
+but is expected to have type
+  forall {x : EReal} {y : EReal} {z : EReal} {t : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) -> (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) z t) -> (Ne.{1} EReal z (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal t (Top.top.{0} EReal EReal.instTopEReal)) -> (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x t) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) y z))
+Case conversion may be inaccurate. Consider using '#align ereal.sub_lt_sub_of_lt_of_le EReal.sub_lt_sub_of_lt_of_leₓ'. -/
+theorem sub_lt_sub_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x - t < y - z :=
   add_lt_add_of_lt_of_le h (neg_le_neg_iff.2 h') (by simp [ht]) (by simp [hz])
-#align ereal.sub_lt_sub_of_lt_of_le Ereal.sub_lt_sub_of_lt_of_le
-
+#align ereal.sub_lt_sub_of_lt_of_le EReal.sub_lt_sub_of_lt_of_le
+
+/- warning: ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal -> EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal EReal (HasLiftT.mk.{1, 1} NNReal EReal (CoeTCₓ.coe.{1, 1} NNReal EReal (coeTrans.{1, 1, 1} NNReal ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal) ENNReal.hasCoe))) (Real.toNNReal x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal EReal (HasLiftT.mk.{1, 1} NNReal EReal (CoeTCₓ.coe.{1, 1} NNReal EReal (coeTrans.{1, 1, 1} NNReal ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal) ENNReal.hasCoe))) (Real.toNNReal (Neg.neg.{0} Real Real.hasNeg x))))
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (Real.toEReal x) (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) (ENNReal.toEReal (ENNReal.some (Real.toNNReal x))) (ENNReal.toEReal (ENNReal.some (Real.toNNReal (Neg.neg.{0} Real Real.instNegReal x)))))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNRealₓ'. -/
 theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
-    (x : Ereal) = Real.toNNReal x - Real.toNNReal (-x) :=
+    (x : EReal) = Real.toNNReal x - Real.toNNReal (-x) :=
   by
   rcases le_or_lt 0 x with (h | h)
   · have : Real.toNNReal x = ⟨x, h⟩ := by
@@ -931,7 +1566,7 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
     simp only [Real.toNNReal_of_nonpos (neg_nonpos.mpr h), this, sub_zero, ENNReal.coe_zero,
       coe_ennreal_zero, coe_coe]
     rfl
-  · have : (x : Ereal) = -(-x : ℝ) := by simp
+  · have : (x : EReal) = -(-x : ℝ) := by simp
     conv_lhs => rw [this]
     have : Real.toNNReal (-x) = ⟨-x, neg_nonneg.mpr h.le⟩ :=
       by
@@ -940,139 +1575,257 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
     simp only [Real.toNNReal_of_nonpos h.le, this, zero_sub, neg_inj, coe_neg, ENNReal.coe_zero,
       coe_ennreal_zero, coe_coe]
     rfl
-#align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal Ereal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal
-
-theorem toReal_sub {x y : Ereal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥) :
+#align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal EReal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal
+
+/- warning: ereal.to_real_sub -> EReal.toReal_sub is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal EReal.hasBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.hasTop)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal EReal.hasBot)) -> (Eq.{1} Real (EReal.toReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toHasSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.subNegZeroMonoid))) x y)) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (EReal.toReal x) (EReal.toReal y)))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, (Ne.{1} EReal x (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal x (Bot.bot.{0} EReal instERealBot)) -> (Ne.{1} EReal y (Top.top.{0} EReal EReal.instTopEReal)) -> (Ne.{1} EReal y (Bot.bot.{0} EReal instERealBot)) -> (Eq.{1} Real (EReal.toReal (HSub.hSub.{0, 0, 0} EReal EReal EReal (instHSub.{0} EReal (SubNegMonoid.toSub.{0} EReal (SubNegZeroMonoid.toSubNegMonoid.{0} EReal EReal.instSubNegZeroMonoidEReal))) x y)) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (EReal.toReal x) (EReal.toReal y)))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_sub EReal.toReal_subₓ'. -/
+theorem toReal_sub {x y : EReal} (hx : x ≠ ⊤) (h'x : x ≠ ⊥) (hy : y ≠ ⊤) (h'y : y ≠ ⊥) :
     toReal (x - y) = toReal x - toReal y :=
   by
   rw [sub_eq_add_neg, to_real_add hx h'x, to_real_neg]
   · rfl
   · simpa using hy
   · simpa using h'y
-#align ereal.to_real_sub Ereal.toReal_sub
+#align ereal.to_real_sub EReal.toReal_sub
 
 /-! ### Multiplication -/
 
 
-protected theorem mul_comm (x y : Ereal) : x * y = y * x :=
+#print EReal.mul_comm /-
+protected theorem mul_comm (x y : EReal) : x * y = y * x :=
   by
-  induction x using Ereal.rec <;> induction y using Ereal.rec <;> try rfl
+  induction x using EReal.rec <;> induction y using EReal.rec <;> try rfl
   dsimp only [(· * ·)]
-  simp only [Ereal.mul, mul_comm]
-#align ereal.mul_comm Ereal.mul_comm
+  simp only [EReal.mul, mul_comm]
+#align ereal.mul_comm EReal.mul_comm
+-/
 
+#print EReal.top_mul_top /-
 @[simp]
-theorem top_mul_top : (⊤ : Ereal) * ⊤ = ⊤ :=
+theorem top_mul_top : (⊤ : EReal) * ⊤ = ⊤ :=
   rfl
-#align ereal.top_mul_top Ereal.top_mul_top
+#align ereal.top_mul_top EReal.top_mul_top
+-/
 
+#print EReal.top_mul_bot /-
 @[simp]
-theorem top_mul_bot : (⊤ : Ereal) * ⊥ = ⊥ :=
+theorem top_mul_bot : (⊤ : EReal) * ⊥ = ⊥ :=
   rfl
-#align ereal.top_mul_bot Ereal.top_mul_bot
+#align ereal.top_mul_bot EReal.top_mul_bot
+-/
 
+#print EReal.bot_mul_top /-
 @[simp]
-theorem bot_mul_top : (⊥ : Ereal) * ⊤ = ⊥ :=
+theorem bot_mul_top : (⊥ : EReal) * ⊤ = ⊥ :=
   rfl
-#align ereal.bot_mul_top Ereal.bot_mul_top
+#align ereal.bot_mul_top EReal.bot_mul_top
+-/
 
+#print EReal.bot_mul_bot /-
 @[simp]
-theorem bot_mul_bot : (⊥ : Ereal) * ⊥ = ⊤ :=
+theorem bot_mul_bot : (⊥ : EReal) * ⊥ = ⊤ :=
   rfl
-#align ereal.bot_mul_bot Ereal.bot_mul_bot
+#align ereal.bot_mul_bot EReal.bot_mul_bot
+-/
 
-theorem mul_top_of_pos {x : Ereal} (h : 0 < x) : x * ⊤ = ⊤ :=
+/- warning: ereal.mul_top_of_pos -> EReal.mul_top_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.mul_top_of_pos EReal.mul_top_of_posₓ'. -/
+theorem mul_top_of_pos {x : EReal} (h : 0 < x) : x * ⊤ = ⊤ :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · simpa only [not_lt_bot] using h
-  · simp only [Mul.mul, Ereal.mul, Ereal.coe_pos.1 h, if_true]
+  · simp only [Mul.mul, EReal.mul, EReal.coe_pos.1 h, if_true]
   · rfl
-#align ereal.mul_top_of_pos Ereal.mul_top_of_pos
-
-theorem mul_top_of_neg {x : Ereal} (h : x < 0) : x * ⊤ = ⊥ :=
+#align ereal.mul_top_of_pos EReal.mul_top_of_pos
+
+/- warning: ereal.mul_top_of_neg -> EReal.mul_top_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.mul_top_of_neg EReal.mul_top_of_negₓ'. -/
+theorem mul_top_of_neg {x : EReal} (h : x < 0) : x * ⊤ = ⊥ :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · rfl
-  · simp only [Ereal.coe_neg'] at h
-    simp only [Mul.mul, Ereal.mul, not_lt.2 h.le, h.ne, if_false]
+  · simp only [EReal.coe_neg'] at h
+    simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
-#align ereal.mul_top_of_neg Ereal.mul_top_of_neg
-
-theorem top_mul_of_pos {x : Ereal} (h : 0 < x) : ⊤ * x = ⊤ :=
+#align ereal.mul_top_of_neg EReal.mul_top_of_neg
+
+/- warning: ereal.top_mul_of_pos -> EReal.top_mul_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_pos EReal.top_mul_of_posₓ'. -/
+theorem top_mul_of_pos {x : EReal} (h : 0 < x) : ⊤ * x = ⊤ :=
   by
-  rw [Ereal.mul_comm]
+  rw [EReal.mul_comm]
   exact mul_top_of_pos h
-#align ereal.top_mul_of_pos Ereal.top_mul_of_pos
-
-theorem top_mul_of_neg {x : Ereal} (h : x < 0) : ⊤ * x = ⊥ :=
+#align ereal.top_mul_of_pos EReal.top_mul_of_pos
+
+/- warning: ereal.top_mul_of_neg -> EReal.top_mul_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) x) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) x) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.top_mul_of_neg EReal.top_mul_of_negₓ'. -/
+theorem top_mul_of_neg {x : EReal} (h : x < 0) : ⊤ * x = ⊥ :=
   by
-  rw [Ereal.mul_comm]
+  rw [EReal.mul_comm]
   exact mul_top_of_neg h
-#align ereal.top_mul_of_neg Ereal.top_mul_of_neg
-
-theorem coe_mul_top_of_pos {x : ℝ} (h : 0 < x) : (x : Ereal) * ⊤ = ⊤ :=
-  mul_top_of_pos (Ereal.coe_pos.2 h)
-#align ereal.coe_mul_top_of_pos Ereal.coe_mul_top_of_pos
-
-theorem coe_mul_top_of_neg {x : ℝ} (h : x < 0) : (x : Ereal) * ⊤ = ⊥ :=
-  mul_top_of_neg (Ereal.coe_neg'.2 h)
-#align ereal.coe_mul_top_of_neg Ereal.coe_mul_top_of_neg
-
-theorem top_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊤ : Ereal) * x = ⊤ :=
-  top_mul_of_pos (Ereal.coe_pos.2 h)
-#align ereal.top_mul_coe_of_pos Ereal.top_mul_coe_of_pos
-
-theorem top_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊤ : Ereal) * x = ⊥ :=
-  top_mul_of_neg (Ereal.coe_neg'.2 h)
-#align ereal.top_mul_coe_of_neg Ereal.top_mul_coe_of_neg
-
-theorem mul_bot_of_pos {x : Ereal} (h : 0 < x) : x * ⊥ = ⊥ :=
+#align ereal.top_mul_of_neg EReal.top_mul_of_neg
+
+/- warning: ereal.coe_mul_top_of_pos -> EReal.coe_mul_top_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_top_of_pos EReal.coe_mul_top_of_posₓ'. -/
+theorem coe_mul_top_of_pos {x : ℝ} (h : 0 < x) : (x : EReal) * ⊤ = ⊤ :=
+  mul_top_of_pos (EReal.coe_pos.2 h)
+#align ereal.coe_mul_top_of_pos EReal.coe_mul_top_of_pos
+
+/- warning: ereal.coe_mul_top_of_neg -> EReal.coe_mul_top_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Top.top.{0} EReal EReal.hasTop)) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Top.top.{0} EReal EReal.instTopEReal)) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_top_of_neg EReal.coe_mul_top_of_negₓ'. -/
+theorem coe_mul_top_of_neg {x : ℝ} (h : x < 0) : (x : EReal) * ⊤ = ⊥ :=
+  mul_top_of_neg (EReal.coe_neg'.2 h)
+#align ereal.coe_mul_top_of_neg EReal.coe_mul_top_of_neg
+
+/- warning: ereal.top_mul_coe_of_pos -> EReal.top_mul_coe_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.top_mul_coe_of_pos EReal.top_mul_coe_of_posₓ'. -/
+theorem top_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊤ : EReal) * x = ⊤ :=
+  top_mul_of_pos (EReal.coe_pos.2 h)
+#align ereal.top_mul_coe_of_pos EReal.top_mul_coe_of_pos
+
+/- warning: ereal.top_mul_coe_of_neg -> EReal.top_mul_coe_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Top.top.{0} EReal EReal.hasTop) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Top.top.{0} EReal EReal.instTopEReal) (Real.toEReal x)) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.top_mul_coe_of_neg EReal.top_mul_coe_of_negₓ'. -/
+theorem top_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊤ : EReal) * x = ⊥ :=
+  top_mul_of_neg (EReal.coe_neg'.2 h)
+#align ereal.top_mul_coe_of_neg EReal.top_mul_coe_of_neg
+
+/- warning: ereal.mul_bot_of_pos -> EReal.mul_bot_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.mul_bot_of_pos EReal.mul_bot_of_posₓ'. -/
+theorem mul_bot_of_pos {x : EReal} (h : 0 < x) : x * ⊥ = ⊥ :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · simpa only [not_lt_bot] using h
-  · simp only [Mul.mul, Ereal.mul, Ereal.coe_pos.1 h, if_true]
+  · simp only [Mul.mul, EReal.mul, EReal.coe_pos.1 h, if_true]
   · rfl
-#align ereal.mul_bot_of_pos Ereal.mul_bot_of_pos
-
-theorem mul_bot_of_neg {x : Ereal} (h : x < 0) : x * ⊥ = ⊤ :=
+#align ereal.mul_bot_of_pos EReal.mul_bot_of_pos
+
+/- warning: ereal.mul_bot_of_neg -> EReal.mul_bot_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.mul_bot_of_neg EReal.mul_bot_of_negₓ'. -/
+theorem mul_bot_of_neg {x : EReal} (h : x < 0) : x * ⊥ = ⊤ :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · rfl
-  · simp only [Ereal.coe_neg'] at h
-    simp only [Mul.mul, Ereal.mul, not_lt.2 h.le, h.ne, if_false]
+  · simp only [EReal.coe_neg'] at h
+    simp only [Mul.mul, EReal.mul, not_lt.2 h.le, h.ne, if_false]
   · simpa only [not_top_lt] using h
-#align ereal.mul_bot_of_neg Ereal.mul_bot_of_neg
-
-theorem bot_mul_of_pos {x : Ereal} (h : 0 < x) : ⊥ * x = ⊥ :=
+#align ereal.mul_bot_of_neg EReal.mul_bot_of_neg
+
+/- warning: ereal.bot_mul_of_pos -> EReal.bot_mul_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_pos EReal.bot_mul_of_posₓ'. -/
+theorem bot_mul_of_pos {x : EReal} (h : 0 < x) : ⊥ * x = ⊥ :=
   by
-  rw [Ereal.mul_comm]
+  rw [EReal.mul_comm]
   exact mul_bot_of_pos h
-#align ereal.bot_mul_of_pos Ereal.bot_mul_of_pos
-
-theorem bot_mul_of_neg {x : Ereal} (h : x < 0) : ⊥ * x = ⊤ :=
+#align ereal.bot_mul_of_pos EReal.bot_mul_of_pos
+
+/- warning: ereal.bot_mul_of_neg -> EReal.bot_mul_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) x) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : EReal}, (LT.lt.{0} EReal (Preorder.toLT.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) x) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_of_neg EReal.bot_mul_of_negₓ'. -/
+theorem bot_mul_of_neg {x : EReal} (h : x < 0) : ⊥ * x = ⊤ :=
   by
-  rw [Ereal.mul_comm]
+  rw [EReal.mul_comm]
   exact mul_bot_of_neg h
-#align ereal.bot_mul_of_neg Ereal.bot_mul_of_neg
-
-theorem coe_mul_bot_of_pos {x : ℝ} (h : 0 < x) : (x : Ereal) * ⊥ = ⊥ :=
-  mul_bot_of_pos (Ereal.coe_pos.2 h)
-#align ereal.coe_mul_bot_of_pos Ereal.coe_mul_bot_of_pos
-
-theorem coe_mul_bot_of_neg {x : ℝ} (h : x < 0) : (x : Ereal) * ⊥ = ⊤ :=
-  mul_bot_of_neg (Ereal.coe_neg'.2 h)
-#align ereal.coe_mul_bot_of_neg Ereal.coe_mul_bot_of_neg
-
-theorem bot_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊥ : Ereal) * x = ⊥ :=
-  bot_mul_of_pos (Ereal.coe_pos.2 h)
-#align ereal.bot_mul_coe_of_pos Ereal.bot_mul_coe_of_pos
-
-theorem bot_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊥ : Ereal) * x = ⊤ :=
-  bot_mul_of_neg (Ereal.coe_neg'.2 h)
-#align ereal.bot_mul_coe_of_neg Ereal.bot_mul_coe_of_neg
-
+#align ereal.bot_mul_of_neg EReal.bot_mul_of_neg
+
+/- warning: ereal.coe_mul_bot_of_pos -> EReal.coe_mul_bot_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot)) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Bot.bot.{0} EReal instERealBot)) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_bot_of_pos EReal.coe_mul_bot_of_posₓ'. -/
+theorem coe_mul_bot_of_pos {x : ℝ} (h : 0 < x) : (x : EReal) * ⊥ = ⊥ :=
+  mul_bot_of_pos (EReal.coe_pos.2 h)
+#align ereal.coe_mul_bot_of_pos EReal.coe_mul_bot_of_pos
+
+/- warning: ereal.coe_mul_bot_of_neg -> EReal.coe_mul_bot_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Real.toEReal x) (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_mul_bot_of_neg EReal.coe_mul_bot_of_negₓ'. -/
+theorem coe_mul_bot_of_neg {x : ℝ} (h : x < 0) : (x : EReal) * ⊥ = ⊤ :=
+  mul_bot_of_neg (EReal.coe_neg'.2 h)
+#align ereal.coe_mul_bot_of_neg EReal.coe_mul_bot_of_neg
+
+/- warning: ereal.bot_mul_coe_of_pos -> EReal.bot_mul_coe_of_pos is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Bot.bot.{0} EReal EReal.hasBot))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) x) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)) (Bot.bot.{0} EReal instERealBot))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_coe_of_pos EReal.bot_mul_coe_of_posₓ'. -/
+theorem bot_mul_coe_of_pos {x : ℝ} (h : 0 < x) : (⊥ : EReal) * x = ⊥ :=
+  bot_mul_of_pos (EReal.coe_pos.2 h)
+#align ereal.bot_mul_coe_of_pos EReal.bot_mul_coe_of_pos
+
+/- warning: ereal.bot_mul_coe_of_neg -> EReal.bot_mul_coe_of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (LT.lt.{0} Real Real.hasLt x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) (Bot.bot.{0} EReal EReal.hasBot) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} EReal EReal.hasTop))
+but is expected to have type
+  forall {x : Real}, (LT.lt.{0} Real Real.instLTReal x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (Bot.bot.{0} EReal instERealBot) (Real.toEReal x)) (Top.top.{0} EReal EReal.instTopEReal))
+Case conversion may be inaccurate. Consider using '#align ereal.bot_mul_coe_of_neg EReal.bot_mul_coe_of_negₓ'. -/
+theorem bot_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊥ : EReal) * x = ⊤ :=
+  bot_mul_of_neg (EReal.coe_neg'.2 h)
+#align ereal.bot_mul_coe_of_neg EReal.bot_mul_coe_of_neg
+
+/- warning: ereal.to_real_mul -> EReal.toReal_mul is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, Eq.{1} Real (EReal.toReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (EReal.toReal x) (EReal.toReal y))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, Eq.{1} Real (EReal.toReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (EReal.toReal x) (EReal.toReal y))
+Case conversion may be inaccurate. Consider using '#align ereal.to_real_mul EReal.toReal_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
-theorem toReal_mul {x y : Ereal} : toReal (x * y) = toReal x * toReal y :=
+theorem toReal_mul {x y : EReal} : toReal (x * y) = toReal x * toReal y :=
   by
   -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
     apply @induction₂ fun x y => to_real (x * y) = to_real x * to_real y <;>
@@ -1092,10 +1845,11 @@ theorem toReal_mul {x y : Ereal} : toReal (x * y) = toReal x * toReal y :=
   case top_neg y hy => rw [to_real_top, to_real_coe, top_mul_coe_of_neg hy, to_real_bot, zero_mul]
   case bot_pos y hy => rw [to_real_bot, to_real_coe, bot_mul_coe_of_pos hy, to_real_bot, zero_mul]
   case bot_neg y hy => rw [to_real_bot, to_real_coe, bot_mul_coe_of_neg hy, to_real_top, zero_mul]
-#align ereal.to_real_mul Ereal.toReal_mul
+#align ereal.to_real_mul EReal.toReal_mul
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
-protected theorem neg_mul (x y : Ereal) : -x * y = -(x * y) :=
+#print EReal.neg_mul /-
+protected theorem neg_mul (x y : EReal) : -x * y = -(x * y) :=
   by
   -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
     apply @induction₂ fun x y => -x * y = -(x * y) <;>
@@ -1116,11 +1870,12 @@ protected theorem neg_mul (x y : Ereal) : -x * y = -(x * y) :=
   case top_neg y hy => rw [top_mul_coe_of_neg hy, neg_top, neg_bot, bot_mul_coe_of_neg hy]
   case bot_pos y hy => rw [bot_mul_coe_of_pos hy, neg_bot, top_mul_coe_of_pos hy]
   case bot_neg y hy => rw [bot_mul_coe_of_neg hy, neg_bot, neg_top, top_mul_coe_of_neg hy]
-#align ereal.neg_mul Ereal.neg_mul
+#align ereal.neg_mul EReal.neg_mul
+-/
 
-instance : HasDistribNeg Ereal :=
-  { Ereal.hasInvolutiveNeg with
-    neg_mul := Ereal.neg_mul
+instance : HasDistribNeg EReal :=
+  { EReal.hasInvolutiveNeg with
+    neg_mul := EReal.neg_mul
     mul_neg := fun x y => by
       rw [x.mul_comm, x.mul_comm]
       exact y.neg_mul x }
@@ -1128,53 +1883,103 @@ instance : HasDistribNeg Ereal :=
 /-! ### Absolute value -/
 
 
+#print EReal.abs /-
 /-- The absolute value from `ereal` to `ℝ≥0∞`, mapping `⊥` and `⊤` to `⊤` and
 a real `x` to `|x|`. -/
-protected def abs : Ereal → ℝ≥0∞
+protected def abs : EReal → ℝ≥0∞
   | ⊥ => ⊤
   | ⊤ => ⊤
   | (x : ℝ) => ENNReal.ofReal (|x|)
-#align ereal.abs Ereal.abs
+#align ereal.abs EReal.abs
+-/
 
+/- warning: ereal.abs_top -> EReal.abs_top is a dubious translation:
+lean 3 declaration is
+  Eq.{1} ENNReal (EReal.abs (Top.top.{0} EReal EReal.hasTop)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
+but is expected to have type
+  Eq.{1} ENNReal (EReal.abs (Top.top.{0} EReal EReal.instTopEReal)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_top EReal.abs_topₓ'. -/
 @[simp]
-theorem abs_top : (⊤ : Ereal).abs = ⊤ :=
+theorem abs_top : (⊤ : EReal).abs = ⊤ :=
   rfl
-#align ereal.abs_top Ereal.abs_top
-
+#align ereal.abs_top EReal.abs_top
+
+/- warning: ereal.abs_bot -> EReal.abs_bot is a dubious translation:
+lean 3 declaration is
+  Eq.{1} ENNReal (EReal.abs (Bot.bot.{0} EReal EReal.hasBot)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
+but is expected to have type
+  Eq.{1} ENNReal (EReal.abs (Bot.bot.{0} EReal instERealBot)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_bot EReal.abs_botₓ'. -/
 @[simp]
-theorem abs_bot : (⊥ : Ereal).abs = ⊤ :=
+theorem abs_bot : (⊥ : EReal).abs = ⊤ :=
   rfl
-#align ereal.abs_bot Ereal.abs_bot
-
-theorem abs_def (x : ℝ) : (x : Ereal).abs = ENNReal.ofReal (|x|) :=
+#align ereal.abs_bot EReal.abs_bot
+
+/- warning: ereal.abs_def -> EReal.abs_def is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} ENNReal (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (ENNReal.ofReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x))
+but is expected to have type
+  forall (x : Real), Eq.{1} ENNReal (EReal.abs (Real.toEReal x)) (ENNReal.ofReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_def EReal.abs_defₓ'. -/
+theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal (|x|) :=
   rfl
-#align ereal.abs_def Ereal.abs_def
-
-theorem abs_coe_lt_top (x : ℝ) : (x : Ereal).abs < ⊤ :=
+#align ereal.abs_def EReal.abs_def
+
+/- warning: ereal.abs_coe_lt_top -> EReal.abs_coe_lt_top is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))
+but is expected to have type
+  forall (x : Real), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs (Real.toEReal x)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_coe_lt_top EReal.abs_coe_lt_topₓ'. -/
+theorem abs_coe_lt_top (x : ℝ) : (x : EReal).abs < ⊤ :=
   ENNReal.ofReal_lt_top
-#align ereal.abs_coe_lt_top Ereal.abs_coe_lt_top
-
+#align ereal.abs_coe_lt_top EReal.abs_coe_lt_top
+
+/- warning: ereal.abs_eq_zero_iff -> EReal.abs_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal}, Iff (Eq.{1} ENNReal (EReal.abs x) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero))))
+but is expected to have type
+  forall {x : EReal}, Iff (Eq.{1} ENNReal (EReal.abs x) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) (Eq.{1} EReal x (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero)))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_eq_zero_iff EReal.abs_eq_zero_iffₓ'. -/
 @[simp]
-theorem abs_eq_zero_iff {x : Ereal} : x.abs = 0 ↔ x = 0 :=
+theorem abs_eq_zero_iff {x : EReal} : x.abs = 0 ↔ x = 0 :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · simp only [abs_bot, ENNReal.top_ne_zero, bot_ne_zero]
-  · simp only [Ereal.abs, coe_eq_zero, ENNReal.ofReal_eq_zero, abs_nonpos_iff]
+  · simp only [EReal.abs, coe_eq_zero, ENNReal.ofReal_eq_zero, abs_nonpos_iff]
   · simp only [abs_top, ENNReal.top_ne_zero, top_ne_zero]
-#align ereal.abs_eq_zero_iff Ereal.abs_eq_zero_iff
-
+#align ereal.abs_eq_zero_iff EReal.abs_eq_zero_iff
+
+/- warning: ereal.abs_zero -> EReal.abs_zero is a dubious translation:
+lean 3 declaration is
+  Eq.{1} ENNReal (EReal.abs (OfNat.ofNat.{0} EReal 0 (OfNat.mk.{0} EReal 0 (Zero.zero.{0} EReal EReal.hasZero)))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))
+but is expected to have type
+  Eq.{1} ENNReal (EReal.abs (OfNat.ofNat.{0} EReal 0 (Zero.toOfNat0.{0} EReal instERealZero))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_zero EReal.abs_zeroₓ'. -/
 @[simp]
-theorem abs_zero : (0 : Ereal).abs = 0 := by rw [abs_eq_zero_iff]
-#align ereal.abs_zero Ereal.abs_zero
-
+theorem abs_zero : (0 : EReal).abs = 0 := by rw [abs_eq_zero_iff]
+#align ereal.abs_zero EReal.abs_zero
+
+/- warning: ereal.coe_abs -> EReal.coe_abs is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (EReal.abs ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x))
+but is expected to have type
+  forall (x : Real), Eq.{1} EReal (ENNReal.toEReal (EReal.abs (Real.toEReal x))) (Real.toEReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x))
+Case conversion may be inaccurate. Consider using '#align ereal.coe_abs EReal.coe_absₓ'. -/
 @[simp]
-theorem coe_abs (x : ℝ) : ((x : Ereal).abs : Ereal) = (|x| : ℝ) := by
+theorem coe_abs (x : ℝ) : ((x : EReal).abs : EReal) = (|x| : ℝ) := by
   rcases lt_trichotomy 0 x with (hx | rfl | hx) <;> simp [abs_def]
-#align ereal.coe_abs Ereal.coe_abs
-
+#align ereal.coe_abs EReal.coe_abs
+
+/- warning: ereal.abs_mul -> EReal.abs_mul is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal) (y : EReal), Eq.{1} ENNReal (EReal.abs (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x y)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (EReal.abs x) (EReal.abs y))
+but is expected to have type
+  forall (x : EReal) (y : EReal), Eq.{1} ENNReal (EReal.abs (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x y)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (EReal.abs x) (EReal.abs y))
+Case conversion may be inaccurate. Consider using '#align ereal.abs_mul EReal.abs_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 @[simp]
-theorem abs_mul (x y : Ereal) : (x * y).abs = x.abs * y.abs :=
+theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs :=
   by
   -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
     apply @induction₂ fun x y => (x * y).abs = x.abs * y.abs <;>
@@ -1182,7 +1987,7 @@ theorem abs_mul (x y : Ereal) : (x * y).abs = x.abs * y.abs :=
   case top_top | bot_top | top_bot | bot_bot => all_goals rfl
   case top_zero | bot_zero | zero_top | zero_bot =>
     all_goals simp only [zero_mul, mul_zero, abs_zero]
-  case coe_coe x y => simp only [← coe_mul, Ereal.abs, abs_mul, ENNReal.ofReal_mul (abs_nonneg _)]
+  case coe_coe x y => simp only [← coe_mul, EReal.abs, abs_mul, ENNReal.ofReal_mul (abs_nonneg _)]
   case pos_bot x hx =>
     simp only [coe_mul_bot_of_pos hx, hx.ne', abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
       coe_eq_zero, not_false_iff]
@@ -1207,29 +2012,45 @@ theorem abs_mul (x y : Ereal) : (x * y).abs = x.abs * y.abs :=
   case bot_neg y hy =>
     simp only [bot_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
       coe_eq_zero, not_false_iff, abs_top]
-#align ereal.abs_mul Ereal.abs_mul
+#align ereal.abs_mul EReal.abs_mul
 
 /-! ### Sign -/
 
 
+#print EReal.sign_top /-
 @[simp]
-theorem sign_top : SignType.sign (⊤ : Ereal) = 1 :=
+theorem sign_top : SignType.sign (⊤ : EReal) = 1 :=
   rfl
-#align ereal.sign_top Ereal.sign_top
+#align ereal.sign_top EReal.sign_top
+-/
 
+#print EReal.sign_bot /-
 @[simp]
-theorem sign_bot : SignType.sign (⊥ : Ereal) = -1 :=
+theorem sign_bot : SignType.sign (⊥ : EReal) = -1 :=
   rfl
-#align ereal.sign_bot Ereal.sign_bot
+#align ereal.sign_bot EReal.sign_bot
+-/
 
+/- warning: ereal.sign_coe -> EReal.sign_coe is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x)) (coeFn.{1, 1} (OrderHom.{0, 0} Real SignType Real.preorder (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} Real SignType Real.preorder (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => Real -> SignType) (OrderHom.hasCoeToFun.{0, 0} Real SignType Real.preorder (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} Real Real.hasZero Real.preorder (fun (a : Real) (b : Real) => Real.decidableLT a b)) x)
+but is expected to have type
+  forall (x : Real), Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) (Real.toEReal x)) (OrderHom.toFun.{0, 0} Real SignType Real.instPreorderReal (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} Real Real.instZeroReal Real.instPreorderReal (fun (a : Real) (b : Real) => Real.decidableLT a b)) x)
+Case conversion may be inaccurate. Consider using '#align ereal.sign_coe EReal.sign_coeₓ'. -/
 @[simp]
-theorem sign_coe (x : ℝ) : SignType.sign (x : Ereal) = SignType.sign x := by
-  simp only [SignType.sign, OrderHom.coe_fun_mk, Ereal.coe_pos, Ereal.coe_neg']
-#align ereal.sign_coe Ereal.sign_coe
-
+theorem sign_coe (x : ℝ) : SignType.sign (x : EReal) = SignType.sign x := by
+  simp only [SignType.sign, OrderHom.coe_fun_mk, EReal.coe_pos, EReal.coe_neg']
+#align ereal.sign_coe EReal.sign_coe
+
+/- warning: ereal.sign_mul -> EReal.sign_mul is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal) (y : EReal), Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) x y)) (HMul.hMul.{0, 0, 0} SignType SignType SignType (instHMul.{0} SignType SignType.hasMul) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))
+but is expected to have type
+  forall (x : EReal) (y : EReal), Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) x y)) (HMul.hMul.{0, 0, 0} SignType SignType SignType (instHMul.{0} SignType SignType.instMulSignType) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))
+Case conversion may be inaccurate. Consider using '#align ereal.sign_mul EReal.sign_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 @[simp]
-theorem sign_mul (x y : Ereal) : SignType.sign (x * y) = SignType.sign x * SignType.sign y :=
+theorem sign_mul (x y : EReal) : SignType.sign (x * y) = SignType.sign x * SignType.sign y :=
   by
   -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
     apply @induction₂ fun x y => SignType.sign (x * y) = SignType.sign x * SignType.sign y <;>
@@ -1250,20 +2071,32 @@ theorem sign_mul (x y : Ereal) : SignType.sign (x * y) = SignType.sign x * SignT
   case bot_pos y hy => simp_rw [bot_mul_coe_of_pos hy, sign_coe, sign_pos hy, mul_one]
   case bot_neg y hy =>
     simp_rw [bot_mul_coe_of_neg hy, sign_coe, sign_neg hy, sign_top, sign_bot, neg_one_mul, neg_neg]
-#align ereal.sign_mul Ereal.sign_mul
-
-theorem sign_mul_abs (x : Ereal) : (SignType.sign x * x.abs : Ereal) = x :=
+#align ereal.sign_mul EReal.sign_mul
+
+/- warning: ereal.sign_mul_abs -> EReal.sign_mul_abs is a dubious translation:
+lean 3 declaration is
+  forall (x : EReal), Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) SignType EReal (HasLiftT.mk.{1, 1} SignType EReal (CoeTCₓ.coe.{1, 1} SignType EReal (SignType.hasCoeT.{0} EReal EReal.hasZero EReal.hasOne EReal.hasNeg))) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (EReal.abs x))) x
+but is expected to have type
+  forall (x : EReal), Eq.{1} EReal (HMul.hMul.{0, 0, 0} EReal EReal EReal (instHMul.{0} EReal EReal.instMulEReal) (SignType.cast.{0} EReal instERealZero instERealOne EReal.instNegEReal (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x)) (ENNReal.toEReal (EReal.abs x))) x
+Case conversion may be inaccurate. Consider using '#align ereal.sign_mul_abs EReal.sign_mul_absₓ'. -/
+theorem sign_mul_abs (x : EReal) : (SignType.sign x * x.abs : EReal) = x :=
   by
-  induction x using Ereal.rec
+  induction x using EReal.rec
   · simp
   · rcases lt_trichotomy 0 x with (hx | rfl | hx)
     · simp [sign_pos hx, abs_of_pos hx]
     · simp
     · simp [sign_neg hx, abs_of_neg hx]
   · simp
-#align ereal.sign_mul_abs Ereal.sign_mul_abs
-
-theorem sign_eq_and_abs_eq_iff_eq {x y : Ereal} :
+#align ereal.sign_mul_abs EReal.sign_mul_abs
+
+/- warning: ereal.sign_eq_and_abs_eq_iff_eq -> EReal.sign_eq_and_abs_eq_iff_eq is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, Iff (And (Eq.{1} ENNReal (EReal.abs x) (EReal.abs y)) (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))) (Eq.{1} EReal x y)
+but is expected to have type
+  forall {x : EReal} {y : EReal}, Iff (And (Eq.{1} ENNReal (EReal.abs x) (EReal.abs y)) (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y))) (Eq.{1} EReal x y)
+Case conversion may be inaccurate. Consider using '#align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eqₓ'. -/
+theorem sign_eq_and_abs_eq_iff_eq {x y : EReal} :
     x.abs = y.abs ∧ SignType.sign x = SignType.sign y ↔ x = y :=
   by
   constructor
@@ -1271,9 +2104,15 @@ theorem sign_eq_and_abs_eq_iff_eq {x y : Ereal} :
     rw [← x.sign_mul_abs, ← y.sign_mul_abs, habs, hsign]
   · rintro rfl
     simp only [eq_self_iff_true, and_self_iff]
-#align ereal.sign_eq_and_abs_eq_iff_eq Ereal.sign_eq_and_abs_eq_iff_eq
-
-theorem le_iff_sign {x y : Ereal} :
+#align ereal.sign_eq_and_abs_eq_iff_eq EReal.sign_eq_and_abs_eq_iff_eq
+
+/- warning: ereal.le_iff_sign -> EReal.le_iff_sign is a dubious translation:
+lean 3 declaration is
+  forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder))))) x y) (Or (LT.lt.{0} SignType (Preorder.toLT.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (coeFn.{1, 1} (OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (fun (_x : OrderHom.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) => EReal -> SignType) (OrderHom.hasCoeToFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (LinearOrder.toLattice.{0} SignType SignType.linearOrder))))) (SignType.sign.{0} EReal EReal.hasZero (PartialOrder.toPreorder.{0} EReal (CompleteSemilatticeInf.toPartialOrder.{0} EReal (CompleteLattice.toCompleteSemilatticeInf.{0} EReal (CompleteLinearOrder.toCompleteLattice.{0} EReal EReal.completeLinearOrder)))) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EReal.abs x) (EReal.abs y)))))))
+but is expected to have type
+  forall {x : EReal} {y : EReal}, Iff (LE.le.{0} EReal (Preorder.toLE.{0} EReal (PartialOrder.toPreorder.{0} EReal instERealPartialOrder)) x y) (Or (LT.lt.{0} SignType (Preorder.toLT.{0} SignType (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType)))))) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y)) (Or (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.neg) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.neg) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs y) (EReal.abs x)))) (Or (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.zero) (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.zero)) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) x) SignType.pos) (And (Eq.{1} SignType (OrderHom.toFun.{0, 0} EReal SignType (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (PartialOrder.toPreorder.{0} SignType (SemilatticeInf.toPartialOrder.{0} SignType (Lattice.toSemilatticeInf.{0} SignType (DistribLattice.toLattice.{0} SignType (instDistribLattice.{0} SignType SignType.instLinearOrderSignType))))) (SignType.sign.{0} EReal instERealZero (PartialOrder.toPreorder.{0} EReal instERealPartialOrder) (fun (a : EReal) (b : EReal) => EReal.decidableLt a b)) y) SignType.pos) (LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OrderedSemiring.toPartialOrder.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))) (EReal.abs x) (EReal.abs y)))))))
+Case conversion may be inaccurate. Consider using '#align ereal.le_iff_sign EReal.le_iff_signₓ'. -/
+theorem le_iff_sign {x y : EReal} :
     x ≤ y ↔
       SignType.sign x < SignType.sign y ∨
         SignType.sign x = SignType.neg ∧ SignType.sign y = SignType.neg ∧ y.abs ≤ x.abs ∨
@@ -1293,17 +2132,17 @@ theorem le_iff_sign {x y : Ereal} :
   · rintro (h | h | h | h)
     · exact (sign.monotone.reflect_lt h).le
     all_goals rw [← x.sign_mul_abs, ← y.sign_mul_abs]; simp [h]
-#align ereal.le_iff_sign Ereal.le_iff_sign
+#align ereal.le_iff_sign EReal.le_iff_sign
 
-instance : CommMonoidWithZero Ereal :=
-  { Ereal.hasMul, Ereal.hasOne, Ereal.hasZero,
-    Ereal.mulZeroOneClass with
+instance : CommMonoidWithZero EReal :=
+  { EReal.hasMul, EReal.hasOne, EReal.hasZero,
+    EReal.mulZeroOneClass with
     mul_assoc := fun x y z => by
       rw [← sign_eq_and_abs_eq_iff_eq]
       simp only [mul_assoc, abs_mul, eq_self_iff_true, sign_mul, and_self_iff]
-    mul_comm := Ereal.mul_comm }
+    mul_comm := EReal.mul_comm }
 
-instance : PosMulMono Ereal :=
+instance : PosMulMono EReal :=
   posMulMono_iff_covariant_pos.2
     ⟨by
       rintro ⟨x, x0⟩ a b h; dsimp
@@ -1314,55 +2153,67 @@ instance : PosMulMono Ereal :=
       all_goals
         rw [← x.sign_mul_abs, ← a.sign_mul_abs, ← b.sign_mul_abs, sign_pos x0]
         simp only [h]; dsimp
-        simp only [neg_mul, mul_neg, Ereal.neg_le_neg_iff, one_mul, le_refl, zero_mul, mul_zero]
+        simp only [neg_mul, mul_neg, EReal.neg_le_neg_iff, one_mul, le_refl, zero_mul, mul_zero]
       all_goals norm_cast; exact mul_le_mul_left' h.2.2 _⟩
 
-instance : MulPosMono Ereal :=
-  posMulMono_iff_mulPosMono.1 Ereal.posMulMono
+instance : MulPosMono EReal :=
+  posMulMono_iff_mulPosMono.1 EReal.posMulMono
 
-instance : PosMulReflectLT Ereal :=
+instance : PosMulReflectLT EReal :=
   PosMulMono.toPosMulReflectLT
 
-instance : MulPosReflectLT Ereal :=
+instance : MulPosReflectLT EReal :=
   MulPosMono.toMulPosReflectLT
 
+/- warning: ereal.coe_pow -> EReal.coe_pow is a dubious translation:
+lean 3 declaration is
+  forall (x : Real) (n : Nat), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.commMonoidWithZero)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real EReal (HasLiftT.mk.{1, 1} Real EReal (CoeTCₓ.coe.{1, 1} Real EReal (coeBase.{1, 1} Real EReal EReal.hasCoe))) x) n)
+but is expected to have type
+  forall (x : Real) (n : Nat), Eq.{1} EReal (Real.toEReal (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.instCommMonoidWithZeroEReal)))) (Real.toEReal x) n)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_pow EReal.coe_powₓ'. -/
 @[simp, norm_cast]
-theorem coe_pow (x : ℝ) (n : ℕ) : (↑(x ^ n) : Ereal) = x ^ n :=
-  map_pow (⟨coe, coe_one, coe_mul⟩ : ℝ →* Ereal) _ _
-#align ereal.coe_pow Ereal.coe_pow
-
+theorem coe_pow (x : ℝ) (n : ℕ) : (↑(x ^ n) : EReal) = x ^ n :=
+  map_pow (⟨coe, coe_one, coe_mul⟩ : ℝ →* EReal) _ _
+#align ereal.coe_pow EReal.coe_pow
+
+/- warning: ereal.coe_ennreal_pow -> EReal.coe_ennreal_pow is a dubious translation:
+lean 3 declaration is
+  forall (x : ENNReal) (n : Nat), Eq.{1} EReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) (HPow.hPow.{0, 0, 0} ENNReal Nat ENNReal (instHPow.{0, 0} ENNReal Nat (Monoid.Pow.{0} ENNReal (MonoidWithZero.toMonoid.{0} ENNReal (Semiring.toMonoidWithZero.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))))) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.commMonoidWithZero)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) ENNReal EReal (HasLiftT.mk.{1, 1} ENNReal EReal (CoeTCₓ.coe.{1, 1} ENNReal EReal (coeBase.{1, 1} ENNReal EReal EReal.hasCoeENNReal))) x) n)
+but is expected to have type
+  forall (x : ENNReal) (n : Nat), Eq.{1} EReal (ENNReal.toEReal (HPow.hPow.{0, 0, 0} ENNReal Nat ENNReal (instHPow.{0, 0} ENNReal Nat (Monoid.Pow.{0} ENNReal (MonoidWithZero.toMonoid.{0} ENNReal (Semiring.toMonoidWithZero.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal))))))) x n)) (HPow.hPow.{0, 0, 0} EReal Nat EReal (instHPow.{0, 0} EReal Nat (Monoid.Pow.{0} EReal (MonoidWithZero.toMonoid.{0} EReal (CommMonoidWithZero.toMonoidWithZero.{0} EReal EReal.instCommMonoidWithZeroEReal)))) (ENNReal.toEReal x) n)
+Case conversion may be inaccurate. Consider using '#align ereal.coe_ennreal_pow EReal.coe_ennreal_powₓ'. -/
 @[simp, norm_cast]
-theorem coe_eNNReal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : Ereal) = x ^ n :=
-  map_pow (⟨coe, coe_eNNReal_one, coe_eNNReal_mul⟩ : ℝ≥0∞ →* Ereal) _ _
-#align ereal.coe_ennreal_pow Ereal.coe_eNNReal_pow
+theorem coe_ennreal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : EReal) = x ^ n :=
+  map_pow (⟨coe, coe_ennreal_one, coe_ennreal_mul⟩ : ℝ≥0∞ →* EReal) _ _
+#align ereal.coe_ennreal_pow EReal.coe_ennreal_pow
 
-end Ereal
+end EReal
 
 namespace Tactic
 
 open Positivity
 
-private theorem ereal_coe_ne_zero {r : ℝ} : r ≠ 0 → (r : Ereal) ≠ 0 :=
-  Ereal.coe_ne_zero.2
+private theorem ereal_coe_ne_zero {r : ℝ} : r ≠ 0 → (r : EReal) ≠ 0 :=
+  EReal.coe_ne_zero.2
 #align tactic.ereal_coe_ne_zero tactic.ereal_coe_ne_zero
 
-private theorem ereal_coe_nonneg {r : ℝ} : 0 ≤ r → 0 ≤ (r : Ereal) :=
-  Ereal.coe_nonneg.2
+private theorem ereal_coe_nonneg {r : ℝ} : 0 ≤ r → 0 ≤ (r : EReal) :=
+  EReal.coe_nonneg.2
 #align tactic.ereal_coe_nonneg tactic.ereal_coe_nonneg
 
-private theorem ereal_coe_pos {r : ℝ} : 0 < r → 0 < (r : Ereal) :=
-  Ereal.coe_pos.2
+private theorem ereal_coe_pos {r : ℝ} : 0 < r → 0 < (r : EReal) :=
+  EReal.coe_pos.2
 #align tactic.ereal_coe_pos tactic.ereal_coe_pos
 
-private theorem ereal_coe_ennreal_pos {r : ℝ≥0∞} : 0 < r → 0 < (r : Ereal) :=
-  Ereal.coe_eNNReal_pos.2
+private theorem ereal_coe_ennreal_pos {r : ℝ≥0∞} : 0 < r → 0 < (r : EReal) :=
+  EReal.coe_ennreal_pos.2
 #align tactic.ereal_coe_ennreal_pos tactic.ereal_coe_ennreal_pos
 
 /-- Extension for the `positivity` tactic: cast from `ℝ` to `ereal`. -/
 @[positivity]
 unsafe def positivity_coe_real_ereal : expr → tactic strictness
   | q(@coe _ _ $(inst) $(a)) => do
-    unify inst q(@coeToLift _ _ <| @coeBase _ _ Ereal.hasCoe)
+    unify inst q(@coeToLift _ _ <| @coeBase _ _ EReal.hasCoe)
     let strictness_a ← core a
     match strictness_a with
       | positive p => positive <$> mk_app `` ereal_coe_pos [p]
@@ -1376,7 +2227,7 @@ unsafe def positivity_coe_real_ereal : expr → tactic strictness
 @[positivity]
 unsafe def positivity_coe_ennreal_ereal : expr → tactic strictness
   | q(@coe _ _ $(inst) $(a)) => do
-    unify inst q(@coeToLift _ _ <| @coeBase _ _ Ereal.hasCoeEnnreal)
+    unify inst q(@coeToLift _ _ <| @coeBase _ _ EReal.hasCoeENNReal)
     let strictness_a ← core a
     match strictness_a with
       | positive p => positive <$> mk_app `` ereal_coe_ennreal_pos [p]
Diff
@@ -55,7 +55,7 @@ real, ereal, complete lattice
 
 open Function
 
-open Ennreal NNReal
+open ENNReal NNReal
 
 noncomputable section
 
@@ -113,13 +113,13 @@ protected theorem coe_ne_coe_iff {x y : ℝ} : (x : Ereal) ≠ (y : Ereal) ↔ x
 #align ereal.coe_ne_coe_iff Ereal.coe_ne_coe_iff
 
 /-- The canonical map from nonnegative extended reals to extended reals -/
-def Ennreal.toEreal : ℝ≥0∞ → Ereal
+def ENNReal.toEreal : ℝ≥0∞ → Ereal
   | ⊤ => ⊤
   | some x => x.1
-#align ennreal.to_ereal Ennreal.toEreal
+#align ennreal.to_ereal ENNReal.toEreal
 
 instance hasCoeEnnreal : Coe ℝ≥0∞ Ereal :=
-  ⟨Ennreal.toEreal⟩
+  ⟨ENNReal.toEreal⟩
 #align ereal.has_coe_ennreal Ereal.hasCoeEnnreal
 
 instance : Inhabited Ereal :=
@@ -447,42 +447,42 @@ theorem eq_bot_iff_forall_lt (x : Ereal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : Ere
 
 
 @[simp]
-theorem toReal_coe_ennreal : ∀ {x : ℝ≥0∞}, toReal (x : Ereal) = Ennreal.toReal x
+theorem toReal_coe_eNNReal : ∀ {x : ℝ≥0∞}, toReal (x : Ereal) = ENNReal.toReal x
   | ⊤ => rfl
   | some x => rfl
-#align ereal.to_real_coe_ennreal Ereal.toReal_coe_ennreal
+#align ereal.to_real_coe_ennreal Ereal.toReal_coe_eNNReal
 
 @[simp]
-theorem coe_ennreal_ofReal {x : ℝ} : (Ennreal.ofReal x : Ereal) = max x 0 :=
+theorem coe_eNNReal_ofReal {x : ℝ} : (ENNReal.ofReal x : Ereal) = max x 0 :=
   rfl
-#align ereal.coe_ennreal_of_real Ereal.coe_ennreal_ofReal
+#align ereal.coe_ennreal_of_real Ereal.coe_eNNReal_ofReal
 
 theorem coe_nNReal_eq_coe_real (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) = (x : ℝ) :=
   rfl
 #align ereal.coe_nnreal_eq_coe_real Ereal.coe_nNReal_eq_coe_real
 
 @[simp, norm_cast]
-theorem coe_ennreal_zero : ((0 : ℝ≥0∞) : Ereal) = 0 :=
+theorem coe_eNNReal_zero : ((0 : ℝ≥0∞) : Ereal) = 0 :=
   rfl
-#align ereal.coe_ennreal_zero Ereal.coe_ennreal_zero
+#align ereal.coe_ennreal_zero Ereal.coe_eNNReal_zero
 
 @[simp, norm_cast]
-theorem coe_ennreal_one : ((1 : ℝ≥0∞) : Ereal) = 1 :=
+theorem coe_eNNReal_one : ((1 : ℝ≥0∞) : Ereal) = 1 :=
   rfl
-#align ereal.coe_ennreal_one Ereal.coe_ennreal_one
+#align ereal.coe_ennreal_one Ereal.coe_eNNReal_one
 
 @[simp, norm_cast]
-theorem coe_ennreal_top : ((⊤ : ℝ≥0∞) : Ereal) = ⊤ :=
+theorem coe_eNNReal_top : ((⊤ : ℝ≥0∞) : Ereal) = ⊤ :=
   rfl
-#align ereal.coe_ennreal_top Ereal.coe_ennreal_top
+#align ereal.coe_ennreal_top Ereal.coe_eNNReal_top
 
 @[simp]
-theorem coe_ennreal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : Ereal) = ⊤ ↔ x = ⊤
+theorem coe_eNNReal_eq_top_iff : ∀ {x : ℝ≥0∞}, (x : Ereal) = ⊤ ↔ x = ⊤
   | ⊤ => by simp
   | some x => by
-    simp only [Ennreal.coe_ne_top, iff_false_iff, Ennreal.some_eq_coe]
+    simp only [ENNReal.coe_ne_top, iff_false_iff, ENNReal.some_eq_coe]
     decide
-#align ereal.coe_ennreal_eq_top_iff Ereal.coe_ennreal_eq_top_iff
+#align ereal.coe_ennreal_eq_top_iff Ereal.coe_eNNReal_eq_top_iff
 
 theorem coe_nNReal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) ≠ ⊤ := by decide
 #align ereal.coe_nnreal_ne_top Ereal.coe_nNReal_ne_top
@@ -491,115 +491,115 @@ theorem coe_nNReal_ne_top (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) ≠ ⊤ :=
 theorem coe_nNReal_lt_top (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) < ⊤ := by decide
 #align ereal.coe_nnreal_lt_top Ereal.coe_nNReal_lt_top
 
-theorem coe_ennreal_strictMono : StrictMono (coe : ℝ≥0∞ → Ereal)
+theorem coe_eNNReal_strictMono : StrictMono (coe : ℝ≥0∞ → Ereal)
   | ⊤, ⊤ => by simp
   | some x, ⊤ => by simp
   | ⊤, some y => by simp
   | some x, some y => by simp [coe_nnreal_eq_coe_real]
-#align ereal.coe_ennreal_strict_mono Ereal.coe_ennreal_strictMono
+#align ereal.coe_ennreal_strict_mono Ereal.coe_eNNReal_strictMono
 
-theorem coe_ennreal_injective : Injective (coe : ℝ≥0∞ → Ereal) :=
-  coe_ennreal_strictMono.Injective
-#align ereal.coe_ennreal_injective Ereal.coe_ennreal_injective
+theorem coe_eNNReal_injective : Injective (coe : ℝ≥0∞ → Ereal) :=
+  coe_eNNReal_strictMono.Injective
+#align ereal.coe_ennreal_injective Ereal.coe_eNNReal_injective
 
 @[simp, norm_cast]
-theorem coe_ennreal_le_coe_ennreal_iff {x y : ℝ≥0∞} : (x : Ereal) ≤ (y : Ereal) ↔ x ≤ y :=
-  coe_ennreal_strictMono.le_iff_le
-#align ereal.coe_ennreal_le_coe_ennreal_iff Ereal.coe_ennreal_le_coe_ennreal_iff
+theorem coe_eNNReal_le_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) ≤ (y : Ereal) ↔ x ≤ y :=
+  coe_eNNReal_strictMono.le_iff_le
+#align ereal.coe_ennreal_le_coe_ennreal_iff Ereal.coe_eNNReal_le_coe_eNNReal_iff
 
 @[simp, norm_cast]
-theorem coe_ennreal_lt_coe_ennreal_iff {x y : ℝ≥0∞} : (x : Ereal) < (y : Ereal) ↔ x < y :=
-  coe_ennreal_strictMono.lt_iff_lt
-#align ereal.coe_ennreal_lt_coe_ennreal_iff Ereal.coe_ennreal_lt_coe_ennreal_iff
+theorem coe_eNNReal_lt_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) < (y : Ereal) ↔ x < y :=
+  coe_eNNReal_strictMono.lt_iff_lt
+#align ereal.coe_ennreal_lt_coe_ennreal_iff Ereal.coe_eNNReal_lt_coe_eNNReal_iff
 
 @[simp, norm_cast]
-theorem coe_ennreal_eq_coe_ennreal_iff {x y : ℝ≥0∞} : (x : Ereal) = (y : Ereal) ↔ x = y :=
-  coe_ennreal_injective.eq_iff
-#align ereal.coe_ennreal_eq_coe_ennreal_iff Ereal.coe_ennreal_eq_coe_ennreal_iff
+theorem coe_eNNReal_eq_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) = (y : Ereal) ↔ x = y :=
+  coe_eNNReal_injective.eq_iff
+#align ereal.coe_ennreal_eq_coe_ennreal_iff Ereal.coe_eNNReal_eq_coe_eNNReal_iff
 
-theorem coe_ennreal_ne_coe_ennreal_iff {x y : ℝ≥0∞} : (x : Ereal) ≠ (y : Ereal) ↔ x ≠ y :=
-  coe_ennreal_injective.ne_iff
-#align ereal.coe_ennreal_ne_coe_ennreal_iff Ereal.coe_ennreal_ne_coe_ennreal_iff
+theorem coe_eNNReal_ne_coe_eNNReal_iff {x y : ℝ≥0∞} : (x : Ereal) ≠ (y : Ereal) ↔ x ≠ y :=
+  coe_eNNReal_injective.ne_iff
+#align ereal.coe_ennreal_ne_coe_ennreal_iff Ereal.coe_eNNReal_ne_coe_eNNReal_iff
 
 @[simp, norm_cast]
-theorem coe_ennreal_eq_zero {x : ℝ≥0∞} : (x : Ereal) = 0 ↔ x = 0 := by
+theorem coe_eNNReal_eq_zero {x : ℝ≥0∞} : (x : Ereal) = 0 ↔ x = 0 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_zero]
-#align ereal.coe_ennreal_eq_zero Ereal.coe_ennreal_eq_zero
+#align ereal.coe_ennreal_eq_zero Ereal.coe_eNNReal_eq_zero
 
 @[simp, norm_cast]
-theorem coe_ennreal_eq_one {x : ℝ≥0∞} : (x : Ereal) = 1 ↔ x = 1 := by
+theorem coe_eNNReal_eq_one {x : ℝ≥0∞} : (x : Ereal) = 1 ↔ x = 1 := by
   rw [← coe_ennreal_eq_coe_ennreal_iff, coe_ennreal_one]
-#align ereal.coe_ennreal_eq_one Ereal.coe_ennreal_eq_one
+#align ereal.coe_ennreal_eq_one Ereal.coe_eNNReal_eq_one
 
 @[norm_cast]
-theorem coe_ennreal_ne_zero {x : ℝ≥0∞} : (x : Ereal) ≠ 0 ↔ x ≠ 0 :=
-  coe_ennreal_eq_zero.Not
-#align ereal.coe_ennreal_ne_zero Ereal.coe_ennreal_ne_zero
+theorem coe_eNNReal_ne_zero {x : ℝ≥0∞} : (x : Ereal) ≠ 0 ↔ x ≠ 0 :=
+  coe_eNNReal_eq_zero.Not
+#align ereal.coe_ennreal_ne_zero Ereal.coe_eNNReal_ne_zero
 
 @[norm_cast]
-theorem coe_ennreal_ne_one {x : ℝ≥0∞} : (x : Ereal) ≠ 1 ↔ x ≠ 1 :=
-  coe_ennreal_eq_one.Not
-#align ereal.coe_ennreal_ne_one Ereal.coe_ennreal_ne_one
+theorem coe_eNNReal_ne_one {x : ℝ≥0∞} : (x : Ereal) ≠ 1 ↔ x ≠ 1 :=
+  coe_eNNReal_eq_one.Not
+#align ereal.coe_ennreal_ne_one Ereal.coe_eNNReal_ne_one
 
-theorem coe_ennreal_nonneg (x : ℝ≥0∞) : (0 : Ereal) ≤ x :=
-  coe_ennreal_le_coe_ennreal_iff.2 (zero_le x)
-#align ereal.coe_ennreal_nonneg Ereal.coe_ennreal_nonneg
+theorem coe_eNNReal_nonneg (x : ℝ≥0∞) : (0 : Ereal) ≤ x :=
+  coe_eNNReal_le_coe_eNNReal_iff.2 (zero_le x)
+#align ereal.coe_ennreal_nonneg Ereal.coe_eNNReal_nonneg
 
 @[simp, norm_cast]
-theorem coe_ennreal_pos {x : ℝ≥0∞} : (0 : Ereal) < x ↔ 0 < x := by
+theorem coe_eNNReal_pos {x : ℝ≥0∞} : (0 : Ereal) < x ↔ 0 < x := by
   rw [← coe_ennreal_zero, coe_ennreal_lt_coe_ennreal_iff]
-#align ereal.coe_ennreal_pos Ereal.coe_ennreal_pos
+#align ereal.coe_ennreal_pos Ereal.coe_eNNReal_pos
 
 @[simp]
-theorem bot_lt_coe_ennreal (x : ℝ≥0∞) : (⊥ : Ereal) < x :=
-  (bot_lt_coe 0).trans_le (coe_ennreal_nonneg _)
-#align ereal.bot_lt_coe_ennreal Ereal.bot_lt_coe_ennreal
+theorem bot_lt_coe_eNNReal (x : ℝ≥0∞) : (⊥ : Ereal) < x :=
+  (bot_lt_coe 0).trans_le (coe_eNNReal_nonneg _)
+#align ereal.bot_lt_coe_ennreal Ereal.bot_lt_coe_eNNReal
 
 @[simp]
-theorem coe_ennreal_ne_bot (x : ℝ≥0∞) : (x : Ereal) ≠ ⊥ :=
-  (bot_lt_coe_ennreal x).ne'
-#align ereal.coe_ennreal_ne_bot Ereal.coe_ennreal_ne_bot
+theorem coe_eNNReal_ne_bot (x : ℝ≥0∞) : (x : Ereal) ≠ ⊥ :=
+  (bot_lt_coe_eNNReal x).ne'
+#align ereal.coe_ennreal_ne_bot Ereal.coe_eNNReal_ne_bot
 
 @[simp, norm_cast]
-theorem coe_ennreal_add (x y : Ennreal) : ((x + y : ℝ≥0∞) : Ereal) = x + y := by
+theorem coe_eNNReal_add (x y : ENNReal) : ((x + y : ℝ≥0∞) : Ereal) = x + y := by
   cases x <;> cases y <;> rfl
-#align ereal.coe_ennreal_add Ereal.coe_ennreal_add
+#align ereal.coe_ennreal_add Ereal.coe_eNNReal_add
 
 @[simp, norm_cast]
-theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : Ereal) = x * y
+theorem coe_eNNReal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : Ereal) = x * y
   | ⊤, ⊤ => rfl
   | ⊤, (y : ℝ≥0) => by
-    rw [Ennreal.top_mul]; split_ifs
+    rw [ENNReal.top_mul']; split_ifs
     · simp only [h, coe_ennreal_zero, mul_zero]
     · have A : (0 : ℝ) < y := by
-        simp only [Ennreal.coe_eq_zero] at h
+        simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), Ereal.mul, A, if_true]
   | (x : ℝ≥0), ⊤ => by
-    rw [Ennreal.mul_top]; split_ifs
+    rw [ENNReal.mul_top']; split_ifs
     · simp only [h, coe_ennreal_zero, zero_mul]
     · have A : (0 : ℝ) < x := by
-        simp only [Ennreal.coe_eq_zero] at h
+        simp only [ENNReal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), Ereal.mul, A, if_true]
   | (x : ℝ≥0), (y : ℝ≥0) => by
-    simp only [← Ennreal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, Ereal.coe_mul]
-#align ereal.coe_ennreal_mul Ereal.coe_ennreal_mul
+    simp only [← ENNReal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, Ereal.coe_mul]
+#align ereal.coe_ennreal_mul Ereal.coe_eNNReal_mul
 
 @[norm_cast]
-theorem coe_ennreal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : Ereal) = n • x :=
-  map_nsmul (⟨coe, coe_ennreal_zero, coe_ennreal_add⟩ : ℝ≥0∞ →+ Ereal) _ _
-#align ereal.coe_ennreal_nsmul Ereal.coe_ennreal_nsmul
+theorem coe_eNNReal_nsmul (n : ℕ) (x : ℝ≥0∞) : (↑(n • x) : Ereal) = n • x :=
+  map_nsmul (⟨coe, coe_eNNReal_zero, coe_eNNReal_add⟩ : ℝ≥0∞ →+ Ereal) _ _
+#align ereal.coe_ennreal_nsmul Ereal.coe_eNNReal_nsmul
 
 @[simp, norm_cast]
-theorem coe_ennreal_bit0 (x : ℝ≥0∞) : (↑(bit0 x) : Ereal) = bit0 x :=
-  coe_ennreal_add _ _
-#align ereal.coe_ennreal_bit0 Ereal.coe_ennreal_bit0
+theorem coe_eNNReal_bit0 (x : ℝ≥0∞) : (↑(bit0 x) : Ereal) = bit0 x :=
+  coe_eNNReal_add _ _
+#align ereal.coe_ennreal_bit0 Ereal.coe_eNNReal_bit0
 
 @[simp, norm_cast]
-theorem coe_ennreal_bit1 (x : ℝ≥0∞) : (↑(bit1 x) : Ereal) = bit1 x := by
+theorem coe_eNNReal_bit1 (x : ℝ≥0∞) : (↑(bit1 x) : Ereal) = bit1 x := by
   simp_rw [bit1, coe_ennreal_add, coe_ennreal_bit0, coe_ennreal_one]
-#align ereal.coe_ennreal_bit1 Ereal.coe_ennreal_bit1
+#align ereal.coe_ennreal_bit1 Ereal.coe_eNNReal_bit1
 
 /-! ### Order -/
 
@@ -928,7 +928,7 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
   · have : Real.toNNReal x = ⟨x, h⟩ := by
       ext
       simp [h]
-    simp only [Real.toNNReal_of_nonpos (neg_nonpos.mpr h), this, sub_zero, Ennreal.coe_zero,
+    simp only [Real.toNNReal_of_nonpos (neg_nonpos.mpr h), this, sub_zero, ENNReal.coe_zero,
       coe_ennreal_zero, coe_coe]
     rfl
   · have : (x : Ereal) = -(-x : ℝ) := by simp
@@ -937,7 +937,7 @@ theorem coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal (x : ℝ) :
       by
       ext
       simp [neg_nonneg.mpr h.le]
-    simp only [Real.toNNReal_of_nonpos h.le, this, zero_sub, neg_inj, coe_neg, Ennreal.coe_zero,
+    simp only [Real.toNNReal_of_nonpos h.le, this, zero_sub, neg_inj, coe_neg, ENNReal.coe_zero,
       coe_ennreal_zero, coe_coe]
     rfl
 #align ereal.coe_real_ereal_eq_coe_to_nnreal_sub_coe_to_nnreal Ereal.coe_real_ereal_eq_coe_toNNReal_sub_coe_toNNReal
@@ -1133,7 +1133,7 @@ a real `x` to `|x|`. -/
 protected def abs : Ereal → ℝ≥0∞
   | ⊥ => ⊤
   | ⊤ => ⊤
-  | (x : ℝ) => Ennreal.ofReal (|x|)
+  | (x : ℝ) => ENNReal.ofReal (|x|)
 #align ereal.abs Ereal.abs
 
 @[simp]
@@ -1146,21 +1146,21 @@ theorem abs_bot : (⊥ : Ereal).abs = ⊤ :=
   rfl
 #align ereal.abs_bot Ereal.abs_bot
 
-theorem abs_def (x : ℝ) : (x : Ereal).abs = Ennreal.ofReal (|x|) :=
+theorem abs_def (x : ℝ) : (x : Ereal).abs = ENNReal.ofReal (|x|) :=
   rfl
 #align ereal.abs_def Ereal.abs_def
 
 theorem abs_coe_lt_top (x : ℝ) : (x : Ereal).abs < ⊤ :=
-  Ennreal.ofReal_lt_top
+  ENNReal.ofReal_lt_top
 #align ereal.abs_coe_lt_top Ereal.abs_coe_lt_top
 
 @[simp]
 theorem abs_eq_zero_iff {x : Ereal} : x.abs = 0 ↔ x = 0 :=
   by
   induction x using Ereal.rec
-  · simp only [abs_bot, Ennreal.top_ne_zero, bot_ne_zero]
-  · simp only [Ereal.abs, coe_eq_zero, Ennreal.ofReal_eq_zero, abs_nonpos_iff]
-  · simp only [abs_top, Ennreal.top_ne_zero, top_ne_zero]
+  · simp only [abs_bot, ENNReal.top_ne_zero, bot_ne_zero]
+  · simp only [Ereal.abs, coe_eq_zero, ENNReal.ofReal_eq_zero, abs_nonpos_iff]
+  · simp only [abs_top, ENNReal.top_ne_zero, top_ne_zero]
 #align ereal.abs_eq_zero_iff Ereal.abs_eq_zero_iff
 
 @[simp]
@@ -1182,7 +1182,7 @@ theorem abs_mul (x y : Ereal) : (x * y).abs = x.abs * y.abs :=
   case top_top | bot_top | top_bot | bot_bot => all_goals rfl
   case top_zero | bot_zero | zero_top | zero_bot =>
     all_goals simp only [zero_mul, mul_zero, abs_zero]
-  case coe_coe x y => simp only [← coe_mul, Ereal.abs, abs_mul, Ennreal.ofReal_mul (abs_nonneg _)]
+  case coe_coe x y => simp only [← coe_mul, Ereal.abs, abs_mul, ENNReal.ofReal_mul (abs_nonneg _)]
   case pos_bot x hx =>
     simp only [coe_mul_bot_of_pos hx, hx.ne', abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
       coe_eq_zero, not_false_iff]
@@ -1332,9 +1332,9 @@ theorem coe_pow (x : ℝ) (n : ℕ) : (↑(x ^ n) : Ereal) = x ^ n :=
 #align ereal.coe_pow Ereal.coe_pow
 
 @[simp, norm_cast]
-theorem coe_ennreal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : Ereal) = x ^ n :=
-  map_pow (⟨coe, coe_ennreal_one, coe_ennreal_mul⟩ : ℝ≥0∞ →* Ereal) _ _
-#align ereal.coe_ennreal_pow Ereal.coe_ennreal_pow
+theorem coe_eNNReal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : Ereal) = x ^ n :=
+  map_pow (⟨coe, coe_eNNReal_one, coe_eNNReal_mul⟩ : ℝ≥0∞ →* Ereal) _ _
+#align ereal.coe_ennreal_pow Ereal.coe_eNNReal_pow
 
 end Ereal
 
@@ -1355,7 +1355,7 @@ private theorem ereal_coe_pos {r : ℝ} : 0 < r → 0 < (r : Ereal) :=
 #align tactic.ereal_coe_pos tactic.ereal_coe_pos
 
 private theorem ereal_coe_ennreal_pos {r : ℝ≥0∞} : 0 < r → 0 < (r : Ereal) :=
-  Ereal.coe_ennreal_pos.2
+  Ereal.coe_eNNReal_pos.2
 #align tactic.ereal_coe_ennreal_pos tactic.ereal_coe_ennreal_pos
 
 /-- Extension for the `positivity` tactic: cast from `ℝ` to `ereal`. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 
 ! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit 464e1ddc4026874cdea576f9d698df42779d31c9
+! leanprover-community/mathlib commit afdb4fa3b32d41106a4a09b371ce549ad7958abd
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -73,6 +73,11 @@ def Real.toEreal : ℝ → Ereal :=
 
 namespace Ereal
 
+-- things unify with `with_bot.decidable_lt` later if we we don't provide this explicitly.
+instance decidableLt : DecidableRel ((· < ·) : Ereal → Ereal → Prop) :=
+  WithBot.decidableLT
+#align ereal.decidable_lt Ereal.decidableLt
+
 -- TODO: Provide explicitly, otherwise it is inferred noncomputably from `complete_linear_order`
 instance : Top Ereal :=
   ⟨some ⊤⟩
@@ -161,6 +166,34 @@ protected def mul : Ereal → Ereal → Ereal
 instance : Mul Ereal :=
   ⟨Ereal.mul⟩
 
+/-- Induct on two ereals by performing case splits on the sign of one whenever the other is
+infinite. -/
+@[elab_as_elim]
+theorem induction₂ {P : Ereal → Ereal → Prop} (top_top : P ⊤ ⊤) (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x)
+    (top_zero : P ⊤ 0) (top_neg : ∀ x : ℝ, x < 0 → P ⊤ x) (top_bot : P ⊤ ⊥)
+    (pos_top : ∀ x : ℝ, 0 < x → P x ⊤) (pos_bot : ∀ x : ℝ, 0 < x → P x ⊥) (zero_top : P 0 ⊤)
+    (coe_coe : ∀ x y : ℝ, P x y) (zero_bot : P 0 ⊥) (neg_top : ∀ x : ℝ, x < 0 → P x ⊤)
+    (neg_bot : ∀ x : ℝ, x < 0 → P x ⊥) (bot_top : P ⊥ ⊤) (bot_pos : ∀ x : ℝ, 0 < x → P ⊥ x)
+    (bot_zero : P ⊥ 0) (bot_neg : ∀ x : ℝ, x < 0 → P ⊥ x) (bot_bot : P ⊥ ⊥) : ∀ x y, P x y
+  | ⊥, ⊥ => bot_bot
+  | ⊥, (y : ℝ) => by
+    rcases lt_trichotomy 0 y with (hy | rfl | hy)
+    exacts[bot_pos y hy, bot_zero, bot_neg y hy]
+  | ⊥, ⊤ => bot_top
+  | (x : ℝ), ⊥ => by
+    rcases lt_trichotomy 0 x with (hx | rfl | hx)
+    exacts[pos_bot x hx, zero_bot, neg_bot x hx]
+  | (x : ℝ), (y : ℝ) => coe_coe _ _
+  | (x : ℝ), ⊤ => by
+    rcases lt_trichotomy 0 x with (hx | rfl | hx)
+    exacts[pos_top x hx, zero_top, neg_top x hx]
+  | ⊤, ⊥ => top_bot
+  | ⊤, (y : ℝ) => by
+    rcases lt_trichotomy 0 y with (hy | rfl | hy)
+    exacts[top_pos y hy, top_zero, top_neg y hy]
+  | ⊤, ⊤ => top_top
+#align ereal.induction₂ Ereal.induction₂
+
 /-! `ereal` with its multiplication is a `comm_monoid_with_zero`. However, the proof of
 associativity by hand is extremely painful (with 125 cases...). Instead, we will deduce it later
 on from the facts that the absolute value and the sign are multiplicative functions taking value
@@ -549,7 +582,8 @@ theorem coe_ennreal_mul : ∀ x y : ℝ≥0∞, ((x * y : ℝ≥0∞) : Ereal) =
         simp only [Ennreal.coe_eq_zero] at h
         exact NNReal.coe_pos.2 (bot_lt_iff_ne_bot.2 h)
       simp only [coe_nnreal_eq_coe_real, coe_ennreal_top, (· * ·), Ereal.mul, A, if_true]
-  | (x : ℝ≥0), (y : ℝ≥0) => by simp [← Ennreal.coe_mul, coe_nnreal_eq_coe_real]
+  | (x : ℝ≥0), (y : ℝ≥0) => by
+    simp only [← Ennreal.coe_mul, coe_nnreal_eq_coe_real, NNReal.coe_mul, Ereal.coe_mul]
 #align ereal.coe_ennreal_mul Ereal.coe_ennreal_mul
 
 @[norm_cast]
@@ -1037,57 +1071,51 @@ theorem bot_mul_coe_of_neg {x : ℝ} (h : x < 0) : (⊥ : Ereal) * x = ⊤ :=
   bot_mul_of_neg (Ereal.coe_neg'.2 h)
 #align ereal.bot_mul_coe_of_neg Ereal.bot_mul_coe_of_neg
 
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 theorem toReal_mul {x y : Ereal} : toReal (x * y) = toReal x * toReal y :=
   by
-  induction x using Ereal.rec <;> induction y using Ereal.rec
-  · simp only [bot_mul_bot, to_real_top, to_real_bot, mul_zero]
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    · simp only [bot_mul_coe_of_pos hy, to_real_bot, zero_mul]
-    · simp only [coe_zero, mul_zero, to_real_zero]
-    · simp only [bot_mul_coe_of_neg hy, to_real_top, to_real_bot, zero_mul]
-  · simp only [bot_mul_top, to_real_bot, to_real_top, mul_zero]
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    · simp only [coe_mul_bot_of_pos hx, to_real_bot, mul_zero]
-    · simp only [coe_zero, zero_mul, to_real_zero]
-    · simp only [coe_mul_bot_of_neg hx, to_real_top, to_real_bot, mul_zero]
-  · simp only [← coe_mul, to_real_coe]
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    · simp only [coe_mul_top_of_pos hx, to_real_top, mul_zero]
-    · simp only [coe_zero, zero_mul, to_real_zero]
-    · simp only [coe_mul_top_of_neg hx, to_real_top, to_real_bot, mul_zero]
-  · simp only [top_mul_bot, to_real_bot, mul_zero]
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    · simp only [top_mul_coe_of_pos hy, to_real_top, zero_mul]
-    · simp only [coe_zero, mul_zero, to_real_zero]
-    · simp only [top_mul_coe_of_neg hy, to_real_top, to_real_bot, zero_mul]
-  · simp only [top_mul_top, to_real_top, mul_zero]
+  -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
+    apply @induction₂ fun x y => to_real (x * y) = to_real x * to_real y <;>
+    propagate_tags try dsimp only
+  case top_zero | bot_zero | zero_top | zero_bot =>
+    all_goals simp only [zero_mul, mul_zero, to_real_zero]
+  case coe_coe x y => norm_cast
+  case top_top => rw [top_mul_top, to_real_top, mul_zero]
+  case top_bot => rw [top_mul_bot, to_real_top, to_real_bot, zero_mul]
+  case bot_top => rw [bot_mul_top, to_real_bot, zero_mul]
+  case bot_bot => rw [bot_mul_bot, to_real_top, to_real_bot, zero_mul]
+  case pos_bot x hx => rw [to_real_bot, to_real_coe, coe_mul_bot_of_pos hx, to_real_bot, mul_zero]
+  case neg_bot x hx => rw [to_real_bot, to_real_coe, coe_mul_bot_of_neg hx, to_real_top, mul_zero]
+  case pos_top x hx => rw [to_real_top, to_real_coe, coe_mul_top_of_pos hx, to_real_top, mul_zero]
+  case neg_top x hx => rw [to_real_top, to_real_coe, coe_mul_top_of_neg hx, to_real_bot, mul_zero]
+  case top_pos y hy => rw [to_real_top, to_real_coe, top_mul_coe_of_pos hy, to_real_top, zero_mul]
+  case top_neg y hy => rw [to_real_top, to_real_coe, top_mul_coe_of_neg hy, to_real_bot, zero_mul]
+  case bot_pos y hy => rw [to_real_bot, to_real_coe, bot_mul_coe_of_pos hy, to_real_bot, zero_mul]
+  case bot_neg y hy => rw [to_real_bot, to_real_coe, bot_mul_coe_of_neg hy, to_real_top, zero_mul]
 #align ereal.to_real_mul Ereal.toReal_mul
 
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 protected theorem neg_mul (x y : Ereal) : -x * y = -(x * y) :=
   by
-  induction x using Ereal.rec <;> induction y using Ereal.rec
-  · rfl
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    · rw [bot_mul_coe_of_pos hy, neg_bot, top_mul_coe_of_pos hy]
-    · rw [coe_zero, mul_zero, mul_zero, neg_zero]
-    · rw [bot_mul_coe_of_neg hy, neg_bot, neg_top, top_mul_coe_of_neg hy]
-  · rfl
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    · rw [coe_mul_bot_of_pos hx, neg_bot, ← coe_neg, coe_mul_bot_of_neg (neg_neg_of_pos hx)]
-    · rw [coe_zero, zero_mul, neg_zero, zero_mul]
-    · rw [coe_mul_bot_of_neg hx, neg_top, ← coe_neg, coe_mul_bot_of_pos (neg_pos_of_neg hx)]
-  · norm_cast
-    exact neg_mul _ _
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    · rw [coe_mul_top_of_pos hx, neg_top, ← coe_neg, coe_mul_top_of_neg (neg_neg_of_pos hx)]
-    · rw [coe_zero, zero_mul, neg_zero, zero_mul]
-    · rw [coe_mul_top_of_neg hx, neg_bot, ← coe_neg, coe_mul_top_of_pos (neg_pos_of_neg hx)]
-  · rfl
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    · rw [top_mul_coe_of_pos hy, neg_top, bot_mul_coe_of_pos hy]
-    · rw [coe_zero, mul_zero, mul_zero, neg_zero]
-    · rw [top_mul_coe_of_neg hy, neg_top, neg_bot, bot_mul_coe_of_neg hy]
-  · rfl
+  -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
+    apply @induction₂ fun x y => -x * y = -(x * y) <;>
+    propagate_tags try dsimp only
+  case top_top | bot_top | top_bot | bot_bot => all_goals rfl
+  case top_zero | bot_zero | zero_top | zero_bot =>
+    all_goals simp only [zero_mul, mul_zero, neg_zero]
+  case coe_coe x y => norm_cast; exact neg_mul _ _
+  case pos_bot x hx =>
+    rw [coe_mul_bot_of_pos hx, neg_bot, ← coe_neg, coe_mul_bot_of_neg (neg_neg_of_pos hx)]
+  case neg_bot x hx =>
+    rw [coe_mul_bot_of_neg hx, neg_top, ← coe_neg, coe_mul_bot_of_pos (neg_pos_of_neg hx)]
+  case pos_top x hx =>
+    rw [coe_mul_top_of_pos hx, neg_top, ← coe_neg, coe_mul_top_of_neg (neg_neg_of_pos hx)]
+  case neg_top x hx =>
+    rw [coe_mul_top_of_neg hx, neg_bot, ← coe_neg, coe_mul_top_of_pos (neg_pos_of_neg hx)]
+  case top_pos y hy => rw [top_mul_coe_of_pos hy, neg_top, bot_mul_coe_of_pos hy]
+  case top_neg y hy => rw [top_mul_coe_of_neg hy, neg_top, neg_bot, bot_mul_coe_of_neg hy]
+  case bot_pos y hy => rw [bot_mul_coe_of_pos hy, neg_bot, top_mul_coe_of_pos hy]
+  case bot_neg y hy => rw [bot_mul_coe_of_neg hy, neg_bot, neg_top, top_mul_coe_of_neg hy]
 #align ereal.neg_mul Ereal.neg_mul
 
 instance : HasDistribNeg Ereal :=
@@ -1144,60 +1172,53 @@ theorem coe_abs (x : ℝ) : ((x : Ereal).abs : Ereal) = (|x| : ℝ) := by
   rcases lt_trichotomy 0 x with (hx | rfl | hx) <;> simp [abs_def]
 #align ereal.coe_abs Ereal.coe_abs
 
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 @[simp]
 theorem abs_mul (x y : Ereal) : (x * y).abs = x.abs * y.abs :=
   by
-  symm
-  induction x using Ereal.rec <;> induction y using Ereal.rec
-  · rfl
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    ·
-      simp only [bot_mul_coe_of_pos hy, hy.ne', abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff]
-    · simp only [coe_zero, abs_zero, mul_zero]
-    ·
-      simp only [bot_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff, abs_top]
-  · rfl
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    ·
-      simp only [coe_mul_bot_of_pos hx, hx.ne', abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff]
-    · simp only [coe_zero, abs_zero, zero_mul]
-    ·
-      simp only [coe_mul_bot_of_neg hx, hx.ne, abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff, abs_top]
-  · simp only [← coe_mul, Ereal.abs, abs_mul, Ennreal.ofReal_mul (abs_nonneg _)]
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    ·
-      simp only [coe_mul_top_of_pos hx, hx.ne', WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff, abs_top]
-    · simp only [coe_zero, abs_zero, zero_mul]
-    ·
-      simp only [coe_mul_top_of_neg hx, hx.ne, abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff, abs_top]
-  · rfl
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    ·
-      simp only [top_mul_coe_of_pos hy, hy.ne', WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff, abs_top]
-    · simp only [coe_zero, abs_zero, mul_zero]
-    ·
-      simp only [top_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
-        coe_eq_zero, not_false_iff, abs_top]
-  · rfl
+  -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
+    apply @induction₂ fun x y => (x * y).abs = x.abs * y.abs <;>
+    propagate_tags try dsimp only
+  case top_top | bot_top | top_bot | bot_bot => all_goals rfl
+  case top_zero | bot_zero | zero_top | zero_bot =>
+    all_goals simp only [zero_mul, mul_zero, abs_zero]
+  case coe_coe x y => simp only [← coe_mul, Ereal.abs, abs_mul, Ennreal.ofReal_mul (abs_nonneg _)]
+  case pos_bot x hx =>
+    simp only [coe_mul_bot_of_pos hx, hx.ne', abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
+      coe_eq_zero, not_false_iff]
+  case neg_bot x hx =>
+    simp only [coe_mul_bot_of_neg hx, hx.ne, abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
+      coe_eq_zero, not_false_iff, abs_top]
+  case pos_top x hx =>
+    simp only [coe_mul_top_of_pos hx, hx.ne', WithTop.mul_top, Ne.def, abs_eq_zero_iff, coe_eq_zero,
+      not_false_iff, abs_top]
+  case neg_top x hx =>
+    simp only [coe_mul_top_of_neg hx, hx.ne, abs_bot, WithTop.mul_top, Ne.def, abs_eq_zero_iff,
+      coe_eq_zero, not_false_iff, abs_top]
+  case top_pos y hy =>
+    simp only [top_mul_coe_of_pos hy, hy.ne', WithTop.top_mul, Ne.def, abs_eq_zero_iff, coe_eq_zero,
+      not_false_iff, abs_top]
+  case top_neg y hy =>
+    simp only [top_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
+      coe_eq_zero, not_false_iff, abs_top]
+  case bot_pos y hy =>
+    simp only [bot_mul_coe_of_pos hy, hy.ne', abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
+      coe_eq_zero, not_false_iff]
+  case bot_neg y hy =>
+    simp only [bot_mul_coe_of_neg hy, hy.ne, abs_bot, WithTop.top_mul, Ne.def, abs_eq_zero_iff,
+      coe_eq_zero, not_false_iff, abs_top]
 #align ereal.abs_mul Ereal.abs_mul
 
 /-! ### Sign -/
 
 
 @[simp]
-theorem sign_top : SignType.sign (⊤ : Ereal) = SignType.pos :=
+theorem sign_top : SignType.sign (⊤ : Ereal) = 1 :=
   rfl
 #align ereal.sign_top Ereal.sign_top
 
 @[simp]
-theorem sign_bot : SignType.sign (⊥ : Ereal) = SignType.neg :=
+theorem sign_bot : SignType.sign (⊥ : Ereal) = -1 :=
   rfl
 #align ereal.sign_bot Ereal.sign_bot
 
@@ -1206,41 +1227,29 @@ theorem sign_coe (x : ℝ) : SignType.sign (x : Ereal) = SignType.sign x := by
   simp only [SignType.sign, OrderHom.coe_fun_mk, Ereal.coe_pos, Ereal.coe_neg']
 #align ereal.sign_coe Ereal.sign_coe
 
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:145:2: warning: unsupported: with_cases -/
 @[simp]
 theorem sign_mul (x y : Ereal) : SignType.sign (x * y) = SignType.sign x * SignType.sign y :=
   by
-  induction x using Ereal.rec <;> induction y using Ereal.rec
-  · rfl
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    · simp only [bot_mul_coe_of_pos hy, hy, sign_coe, sign_pos, mul_one]
-    · simp only [coe_zero, mul_zero, sign_zero]
-    ·
-      simp only [bot_mul_coe_of_neg hy, hy, sign_top, SignType.pos_eq_one, sign_bot,
-        SignType.neg_eq_neg_one, sign_coe, sign_neg, mul_neg, mul_one, neg_neg]
-  · rfl
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    ·
-      simp only [coe_mul_bot_of_pos hx, hx, sign_bot, SignType.neg_eq_neg_one, sign_coe, sign_pos,
-        mul_neg, mul_one]
-    · simp only [coe_zero, zero_mul, sign_zero]
-    ·
-      simp only [coe_mul_bot_of_neg hx, hx, sign_top, SignType.pos_eq_one, sign_coe, sign_neg,
-        sign_bot, SignType.neg_eq_neg_one, mul_neg, mul_one, neg_neg]
-  · simp only [← coe_mul, sign_coe, sign_mul]
-  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
-    · simp only [coe_mul_top_of_pos hx, hx, sign_coe, sign_pos, mul_one, zero_lt_top]
-    · simp only [coe_zero, zero_mul, sign_zero]
-    ·
-      simp only [coe_mul_top_of_neg hx, hx, sign_top, SignType.pos_eq_one, sign_coe, sign_neg,
-        sign_bot, SignType.neg_eq_neg_one, mul_one]
-  · rfl
-  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
-    · simp only [top_mul_coe_of_pos hy, hy, sign_coe, sign_pos, mul_one]
-    · simp only [coe_zero, mul_zero, sign_zero]
-    ·
-      simp only [top_mul_coe_of_neg hy, hy, sign_top, SignType.pos_eq_one, sign_bot,
-        SignType.neg_eq_neg_one, sign_coe, sign_neg, mul_neg, mul_one]
-  · rfl
+  -- TODO: replace with `induction using` in Lean 4, which supports multiple premises
+    apply @induction₂ fun x y => SignType.sign (x * y) = SignType.sign x * SignType.sign y <;>
+    propagate_tags try dsimp only
+  case top_top | bot_top | top_bot | bot_bot => all_goals rfl
+  case top_zero | bot_zero | zero_top | zero_bot =>
+    all_goals simp only [zero_mul, mul_zero, sign_zero]
+  case coe_coe x y => simp only [← coe_mul, sign_coe, sign_mul]
+  case pos_bot x hx => simp_rw [coe_mul_bot_of_pos hx, sign_coe, sign_pos hx, one_mul]
+  case neg_bot x hx =>
+    simp_rw [coe_mul_bot_of_neg hx, sign_coe, sign_neg hx, sign_top, sign_bot, neg_one_mul, neg_neg]
+  case pos_top x hx => simp_rw [coe_mul_top_of_pos hx, sign_coe, sign_pos hx, one_mul]
+  case neg_top x hx =>
+    simp_rw [coe_mul_top_of_neg hx, sign_coe, sign_neg hx, sign_top, sign_bot, mul_one]
+  case top_pos y hy => simp_rw [top_mul_coe_of_pos hy, sign_coe, sign_pos hy, mul_one]
+  case top_neg y hy =>
+    simp_rw [top_mul_coe_of_neg hy, sign_coe, sign_neg hy, sign_top, sign_bot, one_mul]
+  case bot_pos y hy => simp_rw [bot_mul_coe_of_pos hy, sign_coe, sign_pos hy, mul_one]
+  case bot_neg y hy =>
+    simp_rw [bot_mul_coe_of_neg hy, sign_coe, sign_neg hy, sign_top, sign_bot, neg_one_mul, neg_neg]
 #align ereal.sign_mul Ereal.sign_mul
 
 theorem sign_mul_abs (x : Ereal) : (SignType.sign x * x.abs : Ereal) = x :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 
 ! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit 83871f6cff322a1eafaa382ef70e9515fe240abd
+! leanprover-community/mathlib commit 464e1ddc4026874cdea576f9d698df42779d31c9
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -62,7 +62,7 @@ noncomputable section
 /-- ereal : The type `[-∞, ∞]` -/
 def Ereal :=
   WithBot (WithTop ℝ)deriving Bot, Zero, One, Nontrivial, AddMonoid, SupSet, InfSet,
-  CompleteLinearOrder, LinearOrderedAddCommMonoid
+  CompleteLinearOrder, LinearOrderedAddCommMonoid, ZeroLEOneClass
 #align ereal Ereal
 
 /-- The canonical inclusion froms reals to ereals. Do not use directly: as this is registered as
@@ -419,6 +419,11 @@ theorem toReal_coe_ennreal : ∀ {x : ℝ≥0∞}, toReal (x : Ereal) = Ennreal.
   | some x => rfl
 #align ereal.to_real_coe_ennreal Ereal.toReal_coe_ennreal
 
+@[simp]
+theorem coe_ennreal_ofReal {x : ℝ} : (Ennreal.ofReal x : Ereal) = max x 0 :=
+  rfl
+#align ereal.coe_ennreal_of_real Ereal.coe_ennreal_ofReal
+
 theorem coe_nNReal_eq_coe_real (x : ℝ≥0) : ((x : ℝ≥0∞) : Ereal) = (x : ℝ) :=
   rfl
 #align ereal.coe_nnreal_eq_coe_real Ereal.coe_nNReal_eq_coe_real
@@ -1058,6 +1063,40 @@ theorem toReal_mul {x y : Ereal} : toReal (x * y) = toReal x * toReal y :=
   · simp only [top_mul_top, to_real_top, mul_zero]
 #align ereal.to_real_mul Ereal.toReal_mul
 
+protected theorem neg_mul (x y : Ereal) : -x * y = -(x * y) :=
+  by
+  induction x using Ereal.rec <;> induction y using Ereal.rec
+  · rfl
+  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
+    · rw [bot_mul_coe_of_pos hy, neg_bot, top_mul_coe_of_pos hy]
+    · rw [coe_zero, mul_zero, mul_zero, neg_zero]
+    · rw [bot_mul_coe_of_neg hy, neg_bot, neg_top, top_mul_coe_of_neg hy]
+  · rfl
+  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
+    · rw [coe_mul_bot_of_pos hx, neg_bot, ← coe_neg, coe_mul_bot_of_neg (neg_neg_of_pos hx)]
+    · rw [coe_zero, zero_mul, neg_zero, zero_mul]
+    · rw [coe_mul_bot_of_neg hx, neg_top, ← coe_neg, coe_mul_bot_of_pos (neg_pos_of_neg hx)]
+  · norm_cast
+    exact neg_mul _ _
+  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
+    · rw [coe_mul_top_of_pos hx, neg_top, ← coe_neg, coe_mul_top_of_neg (neg_neg_of_pos hx)]
+    · rw [coe_zero, zero_mul, neg_zero, zero_mul]
+    · rw [coe_mul_top_of_neg hx, neg_bot, ← coe_neg, coe_mul_top_of_pos (neg_pos_of_neg hx)]
+  · rfl
+  · rcases lt_trichotomy 0 y with (hy | rfl | hy)
+    · rw [top_mul_coe_of_pos hy, neg_top, bot_mul_coe_of_pos hy]
+    · rw [coe_zero, mul_zero, mul_zero, neg_zero]
+    · rw [top_mul_coe_of_neg hy, neg_top, neg_bot, bot_mul_coe_of_neg hy]
+  · rfl
+#align ereal.neg_mul Ereal.neg_mul
+
+instance : HasDistribNeg Ereal :=
+  { Ereal.hasInvolutiveNeg with
+    neg_mul := Ereal.neg_mul
+    mul_neg := fun x y => by
+      rw [x.mul_comm, x.mul_comm]
+      exact y.neg_mul x }
+
 /-! ### Absolute value -/
 
 
@@ -1079,6 +1118,10 @@ theorem abs_bot : (⊥ : Ereal).abs = ⊤ :=
   rfl
 #align ereal.abs_bot Ereal.abs_bot
 
+theorem abs_def (x : ℝ) : (x : Ereal).abs = Ennreal.ofReal (|x|) :=
+  rfl
+#align ereal.abs_def Ereal.abs_def
+
 theorem abs_coe_lt_top (x : ℝ) : (x : Ereal).abs < ⊤ :=
   Ennreal.ofReal_lt_top
 #align ereal.abs_coe_lt_top Ereal.abs_coe_lt_top
@@ -1096,6 +1139,11 @@ theorem abs_eq_zero_iff {x : Ereal} : x.abs = 0 ↔ x = 0 :=
 theorem abs_zero : (0 : Ereal).abs = 0 := by rw [abs_eq_zero_iff]
 #align ereal.abs_zero Ereal.abs_zero
 
+@[simp]
+theorem coe_abs (x : ℝ) : ((x : Ereal).abs : Ereal) = (|x| : ℝ) := by
+  rcases lt_trichotomy 0 x with (hx | rfl | hx) <;> simp [abs_def]
+#align ereal.coe_abs Ereal.coe_abs
+
 @[simp]
 theorem abs_mul (x y : Ereal) : (x * y).abs = x.abs * y.abs :=
   by
@@ -1195,34 +1243,49 @@ theorem sign_mul (x y : Ereal) : SignType.sign (x * y) = SignType.sign x * SignT
   · rfl
 #align ereal.sign_mul Ereal.sign_mul
 
+theorem sign_mul_abs (x : Ereal) : (SignType.sign x * x.abs : Ereal) = x :=
+  by
+  induction x using Ereal.rec
+  · simp
+  · rcases lt_trichotomy 0 x with (hx | rfl | hx)
+    · simp [sign_pos hx, abs_of_pos hx]
+    · simp
+    · simp [sign_neg hx, abs_of_neg hx]
+  · simp
+#align ereal.sign_mul_abs Ereal.sign_mul_abs
+
 theorem sign_eq_and_abs_eq_iff_eq {x y : Ereal} :
     x.abs = y.abs ∧ SignType.sign x = SignType.sign y ↔ x = y :=
   by
-  constructor; swap
+  constructor
+  · rintro ⟨habs, hsign⟩
+    rw [← x.sign_mul_abs, ← y.sign_mul_abs, habs, hsign]
   · rintro rfl
     simp only [eq_self_iff_true, and_self_iff]
-  rintro ⟨habs, hsign⟩
-  induction x using Ereal.rec <;> induction y using Ereal.rec
-  · rfl
-  · simpa only using abs_coe_lt_top y
-  · simpa only using hsign
-  · simpa only using abs_coe_lt_top x
-  · have : |x| = |y| := by
-      simpa only [Ereal.abs, Ennreal.ofReal_eq_ofReal_iff, abs_nonneg] using habs
-    rcases abs_eq_abs.1 this with (rfl | h)
-    · rfl
-    · rcases lt_trichotomy x 0 with (hx | rfl | hx)
-      · have hy : 0 < y := by simpa only [h, Right.neg_neg_iff] using hx
-        simpa only [hx, hy, sign_coe, sign_neg, sign_pos] using hsign
-      · simp only [zero_eq_neg.1 h]
-      · have hy : y < 0 := by simpa only [h, Right.neg_pos_iff] using hx
-        simpa only [hx, hy, sign_coe, sign_neg, sign_pos] using hsign
-  · simpa only using abs_coe_lt_top x
-  · simpa only
-  · simpa only using abs_coe_lt_top y
-  · rfl
 #align ereal.sign_eq_and_abs_eq_iff_eq Ereal.sign_eq_and_abs_eq_iff_eq
 
+theorem le_iff_sign {x y : Ereal} :
+    x ≤ y ↔
+      SignType.sign x < SignType.sign y ∨
+        SignType.sign x = SignType.neg ∧ SignType.sign y = SignType.neg ∧ y.abs ≤ x.abs ∨
+          SignType.sign x = SignType.zero ∧ SignType.sign y = SignType.zero ∨
+            SignType.sign x = SignType.pos ∧ SignType.sign y = SignType.pos ∧ x.abs ≤ y.abs :=
+  by
+  constructor
+  · intro h
+    rcases(sign.monotone h).lt_or_eq with (hs | hs)
+    · exact Or.inl hs
+    · rw [← x.sign_mul_abs, ← y.sign_mul_abs] at h
+      cases SignType.sign y <;> rw [hs] at *
+      · simp
+      · simp at h⊢
+        exact Or.inl h
+      · simpa using h
+  · rintro (h | h | h | h)
+    · exact (sign.monotone.reflect_lt h).le
+    all_goals rw [← x.sign_mul_abs, ← y.sign_mul_abs]; simp [h]
+#align ereal.le_iff_sign Ereal.le_iff_sign
+
 instance : CommMonoidWithZero Ereal :=
   { Ereal.hasMul, Ereal.hasOne, Ereal.hasZero,
     Ereal.mulZeroOneClass with
@@ -1231,6 +1294,29 @@ instance : CommMonoidWithZero Ereal :=
       simp only [mul_assoc, abs_mul, eq_self_iff_true, sign_mul, and_self_iff]
     mul_comm := Ereal.mul_comm }
 
+instance : PosMulMono Ereal :=
+  posMulMono_iff_covariant_pos.2
+    ⟨by
+      rintro ⟨x, x0⟩ a b h; dsimp
+      rcases le_iff_sign.mp h with (h | h | h | h)
+      · rw [le_iff_sign]
+        left
+        simp [sign_pos x0, h]
+      all_goals
+        rw [← x.sign_mul_abs, ← a.sign_mul_abs, ← b.sign_mul_abs, sign_pos x0]
+        simp only [h]; dsimp
+        simp only [neg_mul, mul_neg, Ereal.neg_le_neg_iff, one_mul, le_refl, zero_mul, mul_zero]
+      all_goals norm_cast; exact mul_le_mul_left' h.2.2 _⟩
+
+instance : MulPosMono Ereal :=
+  posMulMono_iff_mulPosMono.1 Ereal.posMulMono
+
+instance : PosMulReflectLT Ereal :=
+  PosMulMono.toPosMulReflectLT
+
+instance : MulPosReflectLT Ereal :=
+  MulPosMono.toMulPosReflectLT
+
 @[simp, norm_cast]
 theorem coe_pow (x : ℝ) (n : ℕ) : (↑(x ^ n) : Ereal) = x ^ n :=
   map_pow (⟨coe, coe_one, coe_mul⟩ : ℝ →* Ereal) _ _

Changes in mathlib4

mathlib3
mathlib4
chore: tidy various files (#11624)
Diff
@@ -450,10 +450,10 @@ theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : ERe
 
 lemma exists_between_coe_real {x z : EReal} (h : x < z) : ∃ y : ℝ, x < y ∧ y < z := by
   obtain ⟨a, ha₁, ha₂⟩ := exists_between h
-  induction' a using EReal.rec with a₀
-  · exact (not_lt_bot ha₁).elim
-  · exact ⟨a₀, by exact_mod_cast ha₁, by exact_mod_cast ha₂⟩
-  · exact (not_top_lt ha₂).elim
+  induction a using EReal.rec with
+  | h_bot => exact (not_lt_bot ha₁).elim
+  | h_real a₀ => exact ⟨a₀, ha₁, ha₂⟩
+  | h_top => exact (not_top_lt ha₂).elim
 
 @[simp]
 lemma image_coe_Icc (x y : ℝ) : Real.toEReal '' Icc x y = Icc ↑x ↑y := by
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -1248,7 +1248,7 @@ theorem abs_mul (x y : EReal) : (x * y).abs = x.abs * y.abs := by
   | coe_coe => simp only [← coe_mul, abs_def, _root_.abs_mul, ENNReal.ofReal_mul (abs_nonneg _)]
   | top_pos _ h =>
     rw [top_mul_coe_of_pos h, abs_top, ENNReal.top_mul]
-    rw [Ne.def, abs_eq_zero_iff, coe_eq_zero]
+    rw [Ne, abs_eq_zero_iff, coe_eq_zero]
     exact h.ne'
   | neg_left h => rwa [neg_mul, EReal.abs_neg, EReal.abs_neg]
 #align ereal.abs_mul EReal.abs_mul
refactor: do not allow nsmul and zsmul to default automatically (#6262)

This PR removes the default values for nsmul and zsmul, forcing the user to populate them manually. The previous behavior can be obtained by writing nsmul := nsmulRec and zsmul := zsmulRec, which is now in the docstring for these fields.

The motivation here is to make it more obvious when module diamonds are being introduced, or at least where they might be hiding; you can now simply search for nsmulRec in the source code.

Arguably we should do the same thing for intCast, natCast, pow, and zpow too, but diamonds are less common in those fields, so I'll leave them to a subsequent PR.

Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -884,6 +884,7 @@ instance : Neg EReal := ⟨EReal.neg⟩
 
 instance : SubNegZeroMonoid EReal where
   neg_zero := congr_arg Real.toEReal neg_zero
+  zsmul := zsmulRec
 
 @[simp]
 theorem neg_top : -(⊤ : EReal) = ⊥ :=
chore: classify new lemma porting notes (#11217)

Classifies by adding issue number #10756 to porting notes claiming anything semantically equivalent to:

  • "new lemma"
  • "added lemma"
Diff
@@ -944,7 +944,7 @@ theorem neg_strictAnti : StrictAnti (- · : EReal → EReal) :=
 @[simp] theorem neg_le_neg_iff {a b : EReal} : -a ≤ -b ↔ b ≤ a := neg_strictAnti.le_iff_le
 #align ereal.neg_le_neg_iff EReal.neg_le_neg_iff
 
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
 @[simp] theorem neg_lt_neg_iff {a b : EReal} : -a < -b ↔ b < a := neg_strictAnti.lt_iff_lt
 
 /-- `-a ≤ b ↔ -b ≤ a` on `EReal`. -/
chore: classify todo porting notes (#11216)

Classifies by adding issue number #11215 to porting notes claiming "TODO".

Diff
@@ -823,7 +823,7 @@ theorem addLECancellable_coe (x : ℝ) : AddLECancellable (x : EReal)
   | (y : ℝ), (z : ℝ), h => by
     simpa only [← coe_add, EReal.coe_le_coe_iff, add_le_add_iff_left] using h
 
--- Porting note: todo: add `MulLECancellable.strictMono*` etc
+-- Porting note (#11215): TODO: add `MulLECancellable.strictMono*` etc
 theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z :=
   not_le.1 <| mt (addLECancellable_coe z).add_le_add_iff_right.1 h.not_le
 #align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coe
@@ -1193,7 +1193,7 @@ instance : HasDistribNeg EReal where
 
 /-! ### Absolute value -/
 
--- Porting note: todo: use `Real.nnabs` for the case `(x : ℝ)`
+-- Porting note (#11215): TODO: use `Real.nnabs` for the case `(x : ℝ)`
 /-- The absolute value from `EReal` to `ℝ≥0∞`, mapping `⊥` and `⊤` to `⊤` and
 a real `x` to `|x|`. -/
 protected def abs : EReal → ℝ≥0∞
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -823,7 +823,7 @@ theorem addLECancellable_coe (x : ℝ) : AddLECancellable (x : EReal)
   | (y : ℝ), (z : ℝ), h => by
     simpa only [← coe_add, EReal.coe_le_coe_iff, add_le_add_iff_left] using h
 
--- porting note: todo: add `MulLECancellable.strictMono*` etc
+-- Porting note: todo: add `MulLECancellable.strictMono*` etc
 theorem add_lt_add_right_coe {x y : EReal} (h : x < y) (z : ℝ) : x + z < y + z :=
   not_le.1 <| mt (addLECancellable_coe z).add_le_add_iff_right.1 h.not_le
 #align ereal.add_lt_add_right_coe EReal.add_lt_add_right_coe
@@ -944,7 +944,7 @@ theorem neg_strictAnti : StrictAnti (- · : EReal → EReal) :=
 @[simp] theorem neg_le_neg_iff {a b : EReal} : -a ≤ -b ↔ b ≤ a := neg_strictAnti.le_iff_le
 #align ereal.neg_le_neg_iff EReal.neg_le_neg_iff
 
--- porting note: new lemma
+-- Porting note: new lemma
 @[simp] theorem neg_lt_neg_iff {a b : EReal} : -a < -b ↔ b < a := neg_strictAnti.lt_iff_lt
 
 /-- `-a ≤ b ↔ -b ≤ a` on `EReal`. -/
@@ -1193,7 +1193,7 @@ instance : HasDistribNeg EReal where
 
 /-! ### Absolute value -/
 
--- porting note: todo: use `Real.nnabs` for the case `(x : ℝ)`
+-- Porting note: todo: use `Real.nnabs` for the case `(x : ℝ)`
 /-- The absolute value from `EReal` to `ℝ≥0∞`, mapping `⊥` and `⊤` to `⊤` and
 a real `x` to `|x|`. -/
 protected def abs : EReal → ℝ≥0∞
refactor: induction₂_symm: Be more explicit in the case variables (#11023)

and in setToL1_mono_left, instantiate the induction theorem explicitly.

In https://github.com/leanprover/lean4/pull/3505 I am fixing a big where induction will assume the wrong number of parameters for a case when there are let-bindings in the type involved. As part of this I am no longer reducing definitions when looking for foralls; this is arguably more predictable and more likely what the user wants.

There are two breakages in mathlib due to this, and the fix can already be applied now.

Diff
@@ -203,10 +203,11 @@ theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_p
 /-- Induct on two `EReal`s by performing case splits on the sign of one whenever the other is
 infinite. This version eliminates some cases by assuming that the relation is symmetric. -/
 @[elab_as_elim]
-theorem induction₂_symm {P : EReal → EReal → Prop} (symm : Symmetric P) (top_top : P ⊤ ⊤)
-    (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x) (top_zero : P ⊤ 0) (top_neg : ∀ x : ℝ, x < 0 → P ⊤ x)
-    (top_bot : P ⊤ ⊥) (pos_bot : ∀ x : ℝ, 0 < x → P x ⊥) (coe_coe : ∀ x y : ℝ, P x y)
-    (zero_bot : P 0 ⊥) (neg_bot : ∀ x : ℝ, x < 0 → P x ⊥) (bot_bot : P ⊥ ⊥) : ∀ x y, P x y :=
+theorem induction₂_symm {P : EReal → EReal → Prop} (symm : ∀ {x y}, P x y → P y x)
+    (top_top : P ⊤ ⊤) (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x) (top_zero : P ⊤ 0)
+    (top_neg : ∀ x : ℝ, x < 0 → P ⊤ x) (top_bot : P ⊤ ⊥) (pos_bot : ∀ x : ℝ, 0 < x → P x ⊥)
+    (coe_coe : ∀ x y : ℝ, P x y) (zero_bot : P 0 ⊥) (neg_bot : ∀ x : ℝ, x < 0 → P x ⊥)
+    (bot_bot : P ⊥ ⊥) : ∀ x y, P x y :=
   @induction₂ P top_top top_pos top_zero top_neg top_bot (fun _ h => symm <| top_pos _ h)
     pos_bot (symm top_zero) coe_coe zero_bot (fun _ h => symm <| top_neg _ h) neg_bot (symm top_bot)
     (fun _ h => symm <| pos_bot _ h) (symm zero_bot) (fun _ h => symm <| neg_bot _ h) bot_bot
@@ -1159,7 +1160,8 @@ infinite. This version eliminates some cases by assuming that `P` is symmetric a
 `P (-x) y` for all `x`, `y`. -/
 @[elab_as_elim]
 theorem induction₂_symm_neg {P : EReal → EReal → Prop}
-    (symm : Symmetric P) (neg_left : ∀ {x y}, P x y → P (-x) y) (top_top : P ⊤ ⊤)
+    (symm : ∀ {x y}, P x y → P y x)
+    (neg_left : ∀ {x y}, P x y → P (-x) y) (top_top : P ⊤ ⊤)
     (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x) (top_zero : P ⊤ 0) (coe_coe : ∀ x y : ℝ, P x y) :
     ∀ x y, P x y :=
   have neg_right : ∀ {x y}, P x y → P x (-y) := fun h => symm <| neg_left <| symm h
chore(Data/ENNReal/Basic): split file (#9869)

Co-authored-by: Jireh Loreaux <loreaujy@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 -/
 import Mathlib.Data.Real.Basic
-import Mathlib.Data.ENNReal.Basic
+import Mathlib.Data.ENNReal.Real
 import Mathlib.Data.Sign
 
 #align_import data.real.ereal from "leanprover-community/mathlib"@"2196ab363eb097c008d4497125e0dde23fb36db2"
chore(Data/Real/ENNReal): move to Data/ENNReal/Basic (#9823)

In preparation for splitting that file. Location suggested by @j-loreaux on zulip.

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 -/
 import Mathlib.Data.Real.Basic
-import Mathlib.Data.Real.ENNReal
+import Mathlib.Data.ENNReal.Basic
 import Mathlib.Data.Sign
 
 #align_import data.real.ereal from "leanprover-community/mathlib"@"2196ab363eb097c008d4497125e0dde23fb36db2"
feat(Data/Real/EReal): add lemmas about intervals (#9404)

This adds statements like lemma Ici_of_Real {x : ℝ} : Real.toEReal '' Set.Ici x = Set.Ico ↑x ⊤ for the eight kinds of intervals (plus versions of exists_between when one endpoint is a real number).

See here on Zulip.

Diff
@@ -445,6 +445,144 @@ theorem eq_bot_iff_forall_lt (x : EReal) : x = ⊥ ↔ ∀ y : ℝ, x < (y : ERe
     exact ⟨x.toReal, coe_toReal_le h⟩
 #align ereal.eq_bot_iff_forall_lt EReal.eq_bot_iff_forall_lt
 
+/-! ### Intervals and coercion from reals -/
+
+lemma exists_between_coe_real {x z : EReal} (h : x < z) : ∃ y : ℝ, x < y ∧ y < z := by
+  obtain ⟨a, ha₁, ha₂⟩ := exists_between h
+  induction' a using EReal.rec with a₀
+  · exact (not_lt_bot ha₁).elim
+  · exact ⟨a₀, by exact_mod_cast ha₁, by exact_mod_cast ha₂⟩
+  · exact (not_top_lt ha₂).elim
+
+@[simp]
+lemma image_coe_Icc (x y : ℝ) : Real.toEReal '' Icc x y = Icc ↑x ↑y := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Icc, WithBot.image_coe_Icc]
+  rfl
+
+@[simp]
+lemma image_coe_Ico (x y : ℝ) : Real.toEReal '' Ico x y = Ico ↑x ↑y := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Ico, WithBot.image_coe_Ico]
+  rfl
+
+@[simp]
+lemma image_coe_Ici (x : ℝ) : Real.toEReal '' Ici x = Ico ↑x ⊤ := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Ici, WithBot.image_coe_Ico]
+  rfl
+
+@[simp]
+lemma image_coe_Ioc (x y : ℝ) : Real.toEReal '' Ioc x y = Ioc ↑x ↑y := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Ioc, WithBot.image_coe_Ioc]
+  rfl
+
+@[simp]
+lemma image_coe_Ioo (x y : ℝ) : Real.toEReal '' Ioo x y = Ioo ↑x ↑y := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Ioo, WithBot.image_coe_Ioo]
+  rfl
+
+@[simp]
+lemma image_coe_Ioi (x : ℝ) : Real.toEReal '' Ioi x = Ioo ↑x ⊤ := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Ioi, WithBot.image_coe_Ioo]
+  rfl
+
+@[simp]
+lemma image_coe_Iic (x : ℝ) : Real.toEReal '' Iic x = Ioc ⊥ ↑x := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Iic, WithBot.image_coe_Iic]
+  rfl
+
+@[simp]
+lemma image_coe_Iio (x : ℝ) : Real.toEReal '' Iio x = Ioo ⊥ ↑x := by
+  refine (image_comp WithBot.some WithTop.some _).trans ?_
+  rw [WithTop.image_coe_Iio, WithBot.image_coe_Iio]
+  rfl
+
+@[simp]
+lemma preimage_coe_Ici (x : ℝ) : Real.toEReal ⁻¹' Ici x = Ici x := by
+  change (WithBot.some ∘ WithTop.some) ⁻¹' (Ici (WithBot.some (WithTop.some x))) = _
+  refine preimage_comp.trans ?_
+  simp only [WithBot.preimage_coe_Ici, WithTop.preimage_coe_Ici]
+
+@[simp]
+lemma preimage_coe_Ioi (x : ℝ) : Real.toEReal ⁻¹' Ioi x = Ioi x := by
+  change (WithBot.some ∘ WithTop.some) ⁻¹' (Ioi (WithBot.some (WithTop.some x))) = _
+  refine preimage_comp.trans ?_
+  simp only [WithBot.preimage_coe_Ioi, WithTop.preimage_coe_Ioi]
+
+@[simp]
+lemma preimage_coe_Ioi_bot : Real.toEReal ⁻¹' Ioi ⊥ = univ := by
+  change (WithBot.some ∘ WithTop.some) ⁻¹' (Ioi ⊥) = _
+  refine preimage_comp.trans ?_
+  simp only [WithBot.preimage_coe_Ioi_bot, preimage_univ]
+
+@[simp]
+lemma preimage_coe_Iic (y : ℝ) : Real.toEReal ⁻¹' Iic y = Iic y := by
+  change (WithBot.some ∘ WithTop.some) ⁻¹' (Iic (WithBot.some (WithTop.some y))) = _
+  refine preimage_comp.trans ?_
+  simp only [WithBot.preimage_coe_Iic, WithTop.preimage_coe_Iic]
+
+@[simp]
+lemma preimage_coe_Iio (y : ℝ) : Real.toEReal ⁻¹' Iio y = Iio y := by
+  change (WithBot.some ∘ WithTop.some) ⁻¹' (Iio (WithBot.some (WithTop.some y))) = _
+  refine preimage_comp.trans ?_
+  simp only [WithBot.preimage_coe_Iio, WithTop.preimage_coe_Iio]
+
+@[simp]
+lemma preimage_coe_Iio_top : Real.toEReal ⁻¹' Iio ⊤ = univ := by
+  change (WithBot.some ∘ WithTop.some) ⁻¹' (Iio (WithBot.some ⊤)) = _
+  refine preimage_comp.trans ?_
+  simp only [WithBot.preimage_coe_Iio, WithTop.preimage_coe_Iio_top]
+
+@[simp]
+lemma preimage_coe_Icc (x y : ℝ) : Real.toEReal ⁻¹' Icc x y = Icc x y := by
+  simp_rw [← Ici_inter_Iic]
+  simp
+
+@[simp]
+lemma preimage_coe_Ico (x y : ℝ) : Real.toEReal ⁻¹' Ico x y = Ico x y := by
+  simp_rw [← Ici_inter_Iio]
+  simp
+
+@[simp]
+lemma preimage_coe_Ioc (x y : ℝ) : Real.toEReal ⁻¹' Ioc x y = Ioc x y := by
+  simp_rw [← Ioi_inter_Iic]
+  simp
+
+@[simp]
+lemma preimage_coe_Ioo (x y : ℝ) : Real.toEReal ⁻¹' Ioo x y = Ioo x y := by
+  simp_rw [← Ioi_inter_Iio]
+  simp
+
+@[simp]
+lemma preimage_coe_Ico_top (x : ℝ) : Real.toEReal ⁻¹' Ico x ⊤ = Ici x := by
+  rw [← Ici_inter_Iio]
+  simp
+
+@[simp]
+lemma preimage_coe_Ioo_top (x : ℝ) : Real.toEReal ⁻¹' Ioo x ⊤ = Ioi x := by
+  rw [← Ioi_inter_Iio]
+  simp
+
+@[simp]
+lemma preimage_coe_Ioc_bot (y : ℝ) : Real.toEReal ⁻¹' Ioc ⊥ y = Iic y := by
+  rw [← Ioi_inter_Iic]
+  simp
+
+@[simp]
+lemma preimage_coe_Ioo_bot (y : ℝ) : Real.toEReal ⁻¹' Ioo ⊥ y = Iio y := by
+  rw [← Ioi_inter_Iio]
+  simp
+
+@[simp]
+lemma preimage_coe_Ioo_bot_top : Real.toEReal ⁻¹' Ioo ⊥ ⊤ = univ := by
+  rw [← Ioi_inter_Iio]
+  simp
+
 /-! ### ennreal coercion -/
 
 @[simp]
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -715,7 +715,7 @@ theorem add_lt_add_of_lt_of_le' {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hb
 assumptions. -/
 theorem add_lt_add_of_lt_of_le {x y z t : EReal} (h : x < y) (h' : z ≤ t) (hz : z ≠ ⊥)
     (ht : t ≠ ⊤) : x + z < y + t :=
-  add_lt_add_of_lt_of_le' h h' (ne_bot_of_le_ne_bot hz h') <| fun ht' => (ht ht').elim
+  add_lt_add_of_lt_of_le' h h' (ne_bot_of_le_ne_bot hz h') fun ht' => (ht ht').elim
 #align ereal.add_lt_add_of_lt_of_le EReal.add_lt_add_of_lt_of_le
 
 theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤ := by
feat: LinearOrderedAddCommMonoidWithTop ERealᵒᵈ (#7109)

And AddCommMonoidWithOne EReal

Diff
@@ -68,6 +68,9 @@ instance : CompleteLinearOrder EReal :=
 instance : LinearOrderedAddCommMonoid EReal :=
   inferInstanceAs (LinearOrderedAddCommMonoid (WithBot (WithTop ℝ)))
 
+instance : AddCommMonoidWithOne EReal :=
+  inferInstanceAs (AddCommMonoidWithOne (WithBot (WithTop ℝ)))
+
 instance : DenselyOrdered EReal :=
   inferInstanceAs (DenselyOrdered (WithBot (WithTop ℝ)))
 
@@ -720,6 +723,15 @@ theorem add_lt_top {x y : EReal} (hx : x ≠ ⊤) (hy : y ≠ ⊤) : x + y < ⊤
   exact EReal.add_lt_add hx.lt_top hy.lt_top
 #align ereal.add_lt_top EReal.add_lt_top
 
+/-- We do not have a notion of `LinearOrderedAddCommMonoidWithBot` but we can at least make
+the order dual of the extended reals into a `LinearOrderedAddCommMonoidWithTop`. -/
+instance : LinearOrderedAddCommMonoidWithTop ERealᵒᵈ where
+  le_top := by simp
+  top_add' := by
+    rw [OrderDual.forall]
+    intro x
+    rw [← OrderDual.toDual_bot, ← toDual_add, bot_add, OrderDual.toDual_bot]
+
 /-! ### Negation -/
 
 /-- negation on `EReal` -/
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -141,7 +141,7 @@ directly will unfold `EReal` to `Option` which is undesirable.
 
 When working in term mode, note that pattern matching can be used directly. -/
 @[elab_as_elim]
-protected def rec {C : EReal → Sort _} (h_bot : C ⊥) (h_real : ∀ a : ℝ, C a) (h_top : C ⊤) :
+protected def rec {C : EReal → Sort*} (h_bot : C ⊥) (h_real : ∀ a : ℝ, C a) (h_top : C ⊤) :
     ∀ a : EReal, C a
   | ⊥ => h_bot
   | (a : ℝ) => h_real a
chore: tidy various files (#6291)
Diff
@@ -78,9 +78,9 @@ instance : DenselyOrdered EReal :=
 namespace EReal
 
 -- things unify with `WithBot.decidableLT` later if we don't provide this explicitly.
-instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
+instance decidableLT : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
   WithBot.decidableLT
-#align ereal.decidable_lt EReal.decidableLt
+#align ereal.decidable_lt EReal.decidableLT
 
 -- TODO: Provide explicitly, otherwise it is inferred noncomputably from `CompleteLinearOrder`
 instance : Top EReal := ⟨some ⊤⟩
@@ -169,7 +169,7 @@ theorem coe_mul (x y : ℝ) : (↑(x * y) : EReal) = x * y :=
   rfl
 #align ereal.coe_mul EReal.coe_mul
 
-/-- Induct on two ereals by performing case splits on the sign of one whenever the other is
+/-- Induct on two `EReal`s by performing case splits on the sign of one whenever the other is
 infinite. -/
 @[elab_as_elim]
 theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x)
@@ -197,7 +197,7 @@ theorem induction₂ {P : EReal → EReal → Prop} (top_top : P ⊤ ⊤) (top_p
   | ⊤, ⊤ => top_top
 #align ereal.induction₂ EReal.induction₂
 
-/-- Induct on two ereals by performing case splits on the sign of one whenever the other is
+/-- Induct on two `EReal`s by performing case splits on the sign of one whenever the other is
 infinite. This version eliminates some cases by assuming that the relation is symmetric. -/
 @[elab_as_elim]
 theorem induction₂_symm {P : EReal → EReal → Prop} (symm : Symmetric P) (top_top : P ⊤ ⊤)
@@ -623,9 +623,9 @@ def neTopBotEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ ℝ where
   toFun x := EReal.toReal x
   invFun x := ⟨x, by simp⟩
   left_inv := fun ⟨x, hx⟩ => by
-      lift x to ℝ
-      · simpa [not_or, and_comm] using hx
-      · simp
+    lift x to ℝ
+    · simpa [not_or, and_comm] using hx
+    · simp
   right_inv x := by simp
 #align ereal.ne_top_bot_equiv_real EReal.neTopBotEquivReal
 
@@ -1203,6 +1203,7 @@ theorem coe_ennreal_pow (x : ℝ≥0∞) (n : ℕ) : (↑(x ^ n) : EReal) = (x :
 
 end EReal
 
+-- Porting note(https://github.com/leanprover-community/mathlib4/issues/6038): restore
 /-
 namespace Tactic
 
chore: use FunLike for OrderHom (#5805)

Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Oliver Nash <github@olivernash.org>

Diff
@@ -1112,7 +1112,7 @@ theorem sign_bot : sign (⊥ : EReal) = -1 := rfl
 
 @[simp]
 theorem sign_coe (x : ℝ) : sign (x : EReal) = sign x := by
-  simp only [sign, OrderHom.coe_fun_mk, EReal.coe_pos, EReal.coe_neg']
+  simp only [sign, OrderHom.coe_mk, EReal.coe_pos, EReal.coe_neg']
 #align ereal.sign_coe EReal.sign_coe
 
 @[simp, norm_cast]
chore: fix grammar mistakes (#6121)
Diff
@@ -77,7 +77,7 @@ instance : DenselyOrdered EReal :=
 
 namespace EReal
 
--- things unify with `WithBot.decidableLT` later if we we don't provide this explicitly.
+-- things unify with `WithBot.decidableLT` later if we don't provide this explicitly.
 instance decidableLt : DecidableRel ((· < ·) : EReal → EReal → Prop) :=
   WithBot.decidableLT
 #align ereal.decidable_lt EReal.decidableLt
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2019 Kevin Buzzard. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
-
-! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit 2196ab363eb097c008d4497125e0dde23fb36db2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Real.Basic
 import Mathlib.Data.Real.ENNReal
 import Mathlib.Data.Sign
 
+#align_import data.real.ereal from "leanprover-community/mathlib"@"2196ab363eb097c008d4497125e0dde23fb36db2"
+
 /-!
 # The extended reals [-∞, ∞].
 
fix: precedence of , and abs (#5619)
Diff
@@ -1050,7 +1050,7 @@ a real `x` to `|x|`. -/
 protected def abs : EReal → ℝ≥0∞
   | ⊥ => ⊤
   | ⊤ => ⊤
-  | (x : ℝ) => ENNReal.ofReal (|x|)
+  | (x : ℝ) => ENNReal.ofReal |x|
 #align ereal.abs EReal.abs
 
 @[simp] theorem abs_top : (⊤ : EReal).abs = ⊤ := rfl
@@ -1059,7 +1059,7 @@ protected def abs : EReal → ℝ≥0∞
 @[simp] theorem abs_bot : (⊥ : EReal).abs = ⊤ := rfl
 #align ereal.abs_bot EReal.abs_bot
 
-theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal (|x|) := rfl
+theorem abs_def (x : ℝ) : (x : EReal).abs = ENNReal.ofReal |x| := rfl
 #align ereal.abs_def EReal.abs_def
 
 theorem abs_coe_lt_top (x : ℝ) : (x : EReal).abs < ⊤ :=
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -74,7 +74,7 @@ instance : LinearOrderedAddCommMonoid EReal :=
 instance : DenselyOrdered EReal :=
   inferInstanceAs (DenselyOrdered (WithBot (WithTop ℝ)))
 
-/-- The canonical inclusion froms reals to ereals. Registered as a coercion. -/
+/-- The canonical inclusion from reals to ereals. Registered as a coercion. -/
 @[coe] def Real.toEReal : ℝ → EReal := some ∘ some
 #align real.to_ereal Real.toEReal
 
chore: forward-port leanprover-community/mathlib#17483 (#2884)

This forward ports the changes introduced by leanprover-community/mathlib#17483

No change is needed to Mathlib.Data.EReal as the proofs have been golfed in a different way.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard
 
 ! This file was ported from Lean 3 source module data.real.ereal
-! leanprover-community/mathlib commit afdb4fa3b32d41106a4a09b371ce549ad7958abd
+! leanprover-community/mathlib commit 2196ab363eb097c008d4497125e0dde23fb36db2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
feat: port Topology.Instances.Ereal (#2796)

API changes

  • Add ENNReal.range_coe, ENNReal.range_coe', and ENNReal.coe_strictMono.
  • Add instances for DenselyOrdered EReal, T5Space EReal, ContinuousNeg EReal, and CanLift EReal ENNReal _ _.
  • Add EReal.range_coe, EReal.range_coe_eq_Ioo, EReal.range_coe_ennreal.
  • Add EReal.denseRange_ratCast, EReal.nhds_top_basis, EReal.nhds_bot_basis.
  • Deprecate EReal.negHomeo and EReal.continuous_neg.
  • Generalize orderTopology_of_ordConnected to StrictMono.induced_topology_eq_preorder and StrictMono.embedding_of_ordConnected, use it to prove that some coercions are embeddings.
  • Prove TopologicalSpace.SecondCountableTopology.of_separableSpace_orderTopology and helper lemmas Dense.topology_eq_generateFrom, Dense.Ioi_eq_bunionᵢ, and Dense.Iio_eq_bunionᵢ.
Diff
@@ -52,7 +52,7 @@ if and only if they have the same absolute value and the same sign.
 real, ereal, complete lattice
 -/
 
-open Function ENNReal NNReal
+open Function ENNReal NNReal Set
 
 noncomputable section
 
@@ -71,6 +71,9 @@ instance : CompleteLinearOrder EReal :=
 instance : LinearOrderedAddCommMonoid EReal :=
   inferInstanceAs (LinearOrderedAddCommMonoid (WithBot (WithTop ℝ)))
 
+instance : DenselyOrdered EReal :=
+  inferInstanceAs (DenselyOrdered (WithBot (WithTop ℝ)))
+
 /-- The canonical inclusion froms reals to ereals. Registered as a coercion. -/
 @[coe] def Real.toEReal : ℝ → EReal := some ∘ some
 #align real.to_ereal Real.toEReal
@@ -339,6 +342,14 @@ theorem top_ne_zero : (⊤ : EReal) ≠ 0 :=
   (coe_ne_top 0).symm
 #align ereal.top_ne_zero EReal.top_ne_zero
 
+theorem range_coe : range Real.toEReal = {⊥, ⊤}ᶜ := by
+  ext x
+  induction x using EReal.rec <;> simp
+
+theorem range_coe_eq_Ioo : range Real.toEReal = Ioo ⊥ ⊤ := by
+  ext x
+  induction x using EReal.rec <;> simp
+
 @[simp, norm_cast]
 theorem coe_add (x y : ℝ) : (↑(x + y) : EReal) = x + y :=
   rfl
@@ -529,6 +540,14 @@ theorem coe_ennreal_nonneg (x : ℝ≥0∞) : (0 : EReal) ≤ x :=
   coe_ennreal_le_coe_ennreal_iff.2 (zero_le x)
 #align ereal.coe_ennreal_nonneg EReal.coe_ennreal_nonneg
 
+@[simp] theorem range_coe_ennreal : range ((↑) : ℝ≥0∞ → EReal) = Set.Ici 0 :=
+  Subset.antisymm (range_subset_iff.2 coe_ennreal_nonneg) fun x => match x with
+    | ⊥ => fun h => absurd h bot_lt_zero.not_le
+    | ⊤ => fun _ => ⟨⊤, rfl⟩
+    | (x : ℝ) => fun h => ⟨.some ⟨x, EReal.coe_nonneg.1 h⟩, rfl⟩
+
+instance : CanLift EReal ℝ≥0∞ (↑) (0 ≤ ·) := ⟨range_coe_ennreal.ge⟩
+
 @[simp, norm_cast]
 theorem coe_ennreal_pos {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
   rw [← coe_ennreal_zero, coe_ennreal_lt_coe_ennreal_iff]
chore: strip trailing spaces in lean files (#2828)

vscode is already configured by .vscode/settings.json to trim these on save. It's not clear how they've managed to stick around.

By doing this all in one PR now, it avoids getting random whitespace diffs in PRs later.

This was done with a regex search in vscode,

image

Diff
@@ -993,7 +993,7 @@ infinite. This version eliminates some cases by assuming that `P` is symmetric a
 `P (-x) y` for all `x`, `y`. -/
 @[elab_as_elim]
 theorem induction₂_symm_neg {P : EReal → EReal → Prop}
-    (symm : Symmetric P) (neg_left : ∀ {x y}, P x y → P (-x) y) (top_top : P ⊤ ⊤) 
+    (symm : Symmetric P) (neg_left : ∀ {x y}, P x y → P (-x) y) (top_top : P ⊤ ⊤)
     (top_pos : ∀ x : ℝ, 0 < x → P ⊤ x) (top_zero : P ⊤ 0) (coe_coe : ∀ x y : ℝ, P x y) :
     ∀ x y, P x y :=
   have neg_right : ∀ {x y}, P x y → P x (-y) := fun h => symm <| neg_left <| symm h
feat: port Data.Real.EReal (#2501)

Dependencies 9 + 377

378 files ported (97.7%)
156434 lines ported (97.9%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file