analysis.asymptotics.asymptotic_equivalentMathlib.Analysis.Asymptotics.AsymptoticEquivalent

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -162,7 +162,7 @@ theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β)
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
   by
   rw [is_equivalent, is_o_const_iff h]
-  constructor <;> intro h <;> [· have := h.sub tendsto_const_nhds; rw [zero_sub (-c)] at this ;
+  constructor <;> intro h <;> [· have := h.sub tendsto_const_nhds; rw [zero_sub (-c)] at this;
           · have := h.sub tendsto_const_nhds; rw [← sub_self c]] <;>
         convert this <;>
       try ext <;>
@@ -283,7 +283,7 @@ theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
   constructor
   · intro hequiv
     have := hequiv.is_o.tendsto_div_nhds_zero
-    simp only [Pi.sub_apply, sub_div] at this 
+    simp only [Pi.sub_apply, sub_div] at this
     have key : tendsto (fun x => v x / v x) l (𝓝 1) :=
       (tendsto_congr' <| hz.mono fun x hnz => @div_self _ _ (v x) hnz).mpr tendsto_const_nhds
     convert this.add key
@@ -314,8 +314,8 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
   rcases huv.is_O.exists_pos with ⟨C, hC, hCuv⟩
   rw [is_equivalent] at *
   rw [is_o_iff] at *
-  rw [is_O_with] at hCuv 
-  simp only [Metric.tendsto_nhds, dist_eq_norm] at hφ 
+  rw [is_O_with] at hCuv
+  simp only [Metric.tendsto_nhds, dist_eq_norm] at hφ
   intro c hc
   specialize hφ (c / 2 / C) (div_pos (by linarith) hC)
   specialize huv (show 0 < c / 2 by linarith)
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
 -/
-import Mathbin.Analysis.Asymptotics.Asymptotics
-import Mathbin.Analysis.Normed.Order.Basic
+import Analysis.Asymptotics.Asymptotics
+import Analysis.Normed.Order.Basic
 
 #align_import analysis.asymptotics.asymptotic_equivalent from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module analysis.asymptotics.asymptotic_equivalent
-! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Asymptotics.Asymptotics
 import Mathbin.Analysis.Normed.Order.Basic
 
+#align_import analysis.asymptotics.asymptotic_equivalent from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
+
 /-!
 # Asymptotic equivalence
 
Diff
@@ -81,67 +81,87 @@ def IsEquivalent (l : Filter α) (u v : α → β) :=
 #align asymptotics.is_equivalent Asymptotics.IsEquivalent
 -/
 
--- mathport name: asymptotics.is_equivalent
 scoped notation:50 u " ~[" l:50 "] " v:50 => Asymptotics.IsEquivalent l u v
 
 variable {u v w : α → β} {l : Filter α}
 
+#print Asymptotics.IsEquivalent.isLittleO /-
 theorem IsEquivalent.isLittleO (h : u ~[l] v) : (u - v) =o[l] v :=
   h
 #align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isLittleO
+-/
 
+#print Asymptotics.IsEquivalent.isBigO /-
 theorem IsEquivalent.isBigO (h : u ~[l] v) : u =O[l] v :=
   (IsBigO.congr_of_sub h.IsBigO.symm).mp (isBigO_refl _ _)
 #align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isBigO
+-/
 
+#print Asymptotics.IsEquivalent.isBigO_symm /-
 theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u :=
   by
   convert h.is_o.right_is_O_add
   ext
   simp
 #align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symm
+-/
 
+#print Asymptotics.IsEquivalent.refl /-
 @[refl]
 theorem IsEquivalent.refl : u ~[l] u :=
   by
   rw [is_equivalent, sub_self]
   exact is_o_zero _ _
 #align asymptotics.is_equivalent.refl Asymptotics.IsEquivalent.refl
+-/
 
+#print Asymptotics.IsEquivalent.symm /-
 @[symm]
 theorem IsEquivalent.symm (h : u ~[l] v) : v ~[l] u :=
   (h.IsLittleO.trans_isBigO h.isBigO_symm).symm
 #align asymptotics.is_equivalent.symm Asymptotics.IsEquivalent.symm
+-/
 
+#print Asymptotics.IsEquivalent.trans /-
 @[trans]
 theorem IsEquivalent.trans {l : Filter α} {u v w : α → β} (huv : u ~[l] v) (hvw : v ~[l] w) :
     u ~[l] w :=
   (huv.IsLittleO.trans_isBigO hvw.IsBigO).triangle hvw.IsLittleO
 #align asymptotics.is_equivalent.trans Asymptotics.IsEquivalent.trans
+-/
 
+#print Asymptotics.IsEquivalent.congr_left /-
 theorem IsEquivalent.congr_left {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (huw : u =ᶠ[l] w) :
     w ~[l] v :=
   huv.congr' (huw.sub (EventuallyEq.refl _ _)) (EventuallyEq.refl _ _)
 #align asymptotics.is_equivalent.congr_left Asymptotics.IsEquivalent.congr_left
+-/
 
+#print Asymptotics.IsEquivalent.congr_right /-
 theorem IsEquivalent.congr_right {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (hvw : v =ᶠ[l] w) :
     u ~[l] w :=
   (huv.symm.congr_left hvw).symm
 #align asymptotics.is_equivalent.congr_right Asymptotics.IsEquivalent.congr_right
+-/
 
+#print Asymptotics.isEquivalent_zero_iff_eventually_zero /-
 theorem isEquivalent_zero_iff_eventually_zero : u ~[l] 0 ↔ u =ᶠ[l] 0 :=
   by
   rw [is_equivalent, sub_zero]
   exact is_o_zero_right_iff
 #align asymptotics.is_equivalent_zero_iff_eventually_zero Asymptotics.isEquivalent_zero_iff_eventually_zero
+-/
 
+#print Asymptotics.isEquivalent_zero_iff_isBigO_zero /-
 theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β) :=
   by
   refine' ⟨is_equivalent.is_O, fun h => _⟩
   rw [is_equivalent_zero_iff_eventually_zero, eventually_eq_iff_exists_mem]
   exact ⟨{x : α | u x = 0}, is_O_zero_right_iff.mp h, fun x hx => hx⟩
 #align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zero
+-/
 
+#print Asymptotics.isEquivalent_const_iff_tendsto /-
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
   by
   rw [is_equivalent, is_o_const_iff h]
@@ -151,14 +171,18 @@ theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c
       try ext <;>
     simp
 #align asymptotics.is_equivalent_const_iff_tendsto Asymptotics.isEquivalent_const_iff_tendsto
+-/
 
+#print Asymptotics.IsEquivalent.tendsto_const /-
 theorem IsEquivalent.tendsto_const {c : β} (hu : u ~[l] const _ c) : Tendsto u l (𝓝 c) :=
   by
   rcases em <| c = 0 with ⟨rfl, h⟩
   · exact (tendsto_congr' <| is_equivalent_zero_iff_eventually_zero.mp hu).mpr tendsto_const_nhds
   · exact (is_equivalent_const_iff_tendsto h).mp hu
 #align asymptotics.is_equivalent.tendsto_const Asymptotics.IsEquivalent.tendsto_const
+-/
 
+#print Asymptotics.IsEquivalent.tendsto_nhds /-
 theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (𝓝 c)) :
     Tendsto v l (𝓝 c) := by
   by_cases h : c = 0
@@ -167,28 +191,40 @@ theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (
   · rw [← is_equivalent_const_iff_tendsto h] at hu ⊢
     exact huv.symm.trans hu
 #align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhds
+-/
 
+#print Asymptotics.IsEquivalent.tendsto_nhds_iff /-
 theorem IsEquivalent.tendsto_nhds_iff {c : β} (huv : u ~[l] v) :
     Tendsto u l (𝓝 c) ↔ Tendsto v l (𝓝 c) :=
   ⟨huv.tendsto_nhds, huv.symm.tendsto_nhds⟩
 #align asymptotics.is_equivalent.tendsto_nhds_iff Asymptotics.IsEquivalent.tendsto_nhds_iff
+-/
 
+#print Asymptotics.IsEquivalent.add_isLittleO /-
 theorem IsEquivalent.add_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u + w ~[l] v := by
   simpa only [is_equivalent, add_sub_right_comm] using huv.add hwv
 #align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isLittleO
+-/
 
+#print Asymptotics.IsEquivalent.sub_isLittleO /-
 theorem IsEquivalent.sub_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u - w ~[l] v := by
   simpa only [sub_eq_add_neg] using huv.add_is_o hwv.neg_left
 #align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isLittleO
+-/
 
+#print Asymptotics.IsLittleO.add_isEquivalent /-
 theorem IsLittleO.add_isEquivalent (hu : u =o[l] w) (hv : v ~[l] w) : u + v ~[l] w :=
   add_comm v u ▸ hv.add_isLittleO hu
 #align asymptotics.is_o.add_is_equivalent Asymptotics.IsLittleO.add_isEquivalent
+-/
 
+#print Asymptotics.IsLittleO.isEquivalent /-
 theorem IsLittleO.isEquivalent (huv : (u - v) =o[l] v) : u ~[l] v :=
   huv
 #align asymptotics.is_o.is_equivalent Asymptotics.IsLittleO.isEquivalent
+-/
 
+#print Asymptotics.IsEquivalent.neg /-
 theorem IsEquivalent.neg (huv : u ~[l] v) : (fun x => -u x) ~[l] fun x => -v x :=
   by
   rw [is_equivalent]
@@ -196,6 +232,7 @@ theorem IsEquivalent.neg (huv : u ~[l] v) : (fun x => -u x) ~[l] fun x => -v x :
   ext
   simp
 #align asymptotics.is_equivalent.neg Asymptotics.IsEquivalent.neg
+-/
 
 end NormedAddCommGroup
 
@@ -205,6 +242,7 @@ section NormedField
 
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
+#print Asymptotics.isEquivalent_iff_exists_eq_mul /-
 theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β) (hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   by
@@ -217,24 +255,32 @@ theorem isEquivalent_iff_exists_eq_mul :
     exact hφ.sub tendsto_const_nhds
   · convert h.sub (eventually_eq.refl l v) <;> ext <;> simp [sub_mul]
 #align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mul
+-/
 
+#print Asymptotics.IsEquivalent.exists_eq_mul /-
 theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
     ∃ (φ : α → β) (hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   isEquivalent_iff_exists_eq_mul.mp huv
 #align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mul
+-/
 
+#print Asymptotics.isEquivalent_of_tendsto_one /-
 theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
     (huv : Tendsto (u / v) l (𝓝 1)) : u ~[l] v :=
   by
   rw [is_equivalent_iff_exists_eq_mul]
   refine' ⟨u / v, huv, hz.mono fun x hz' => (div_mul_cancel_of_imp hz').symm⟩
 #align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_one
+-/
 
+#print Asymptotics.isEquivalent_of_tendsto_one' /-
 theorem isEquivalent_of_tendsto_one' (hz : ∀ x, v x = 0 → u x = 0) (huv : Tendsto (u / v) l (𝓝 1)) :
     u ~[l] v :=
   isEquivalent_of_tendsto_one (eventually_of_forall hz) huv
 #align asymptotics.is_equivalent_of_tendsto_one' Asymptotics.isEquivalent_of_tendsto_one'
+-/
 
+#print Asymptotics.isEquivalent_iff_tendsto_one /-
 theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
     u ~[l] v ↔ Tendsto (u / v) l (𝓝 1) := by
   constructor
@@ -248,11 +294,13 @@ theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
     · norm_num
   · exact is_equivalent_of_tendsto_one (hz.mono fun x hnvz hz => (hnvz hz).elim)
 #align asymptotics.is_equivalent_iff_tendsto_one Asymptotics.isEquivalent_iff_tendsto_one
+-/
 
 end NormedField
 
 section Smul
 
+#print Asymptotics.IsEquivalent.smul /-
 theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
     {a b : α → 𝕜} {u v : α → E} {l : Filter α} (hab : a ~[l] b) (huv : u ~[l] v) :
     (fun x => a x • u x) ~[l] fun x => b x • v x :=
@@ -290,6 +338,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
     _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := (add_le_add_left huvx _)
     _ = c * ‖v x‖ := by ring
 #align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smul
+-/
 
 end Smul
 
@@ -297,10 +346,13 @@ section mul_inv
 
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
+#print Asymptotics.IsEquivalent.mul /-
 theorem IsEquivalent.mul (htu : t ~[l] u) (hvw : v ~[l] w) : t * v ~[l] u * w :=
   htu.smul hvw
 #align asymptotics.is_equivalent.mul Asymptotics.IsEquivalent.mul
+-/
 
+#print Asymptotics.IsEquivalent.inv /-
 theorem IsEquivalent.inv (huv : u ~[l] v) : (fun x => (u x)⁻¹) ~[l] fun x => (v x)⁻¹ :=
   by
   rw [is_equivalent_iff_exists_eq_mul] at *
@@ -311,11 +363,14 @@ theorem IsEquivalent.inv (huv : u ~[l] v) : (fun x => (u x)⁻¹) ~[l] fun x =>
   ext
   simp [mul_inv]
 #align asymptotics.is_equivalent.inv Asymptotics.IsEquivalent.inv
+-/
 
+#print Asymptotics.IsEquivalent.div /-
 theorem IsEquivalent.div (htu : t ~[l] u) (hvw : v ~[l] w) :
     (fun x => t x / v x) ~[l] fun x => u x / w x := by
   simpa only [div_eq_mul_inv] using htu.mul hvw.inv
 #align asymptotics.is_equivalent.div Asymptotics.IsEquivalent.div
+-/
 
 end mul_inv
 
@@ -366,7 +421,9 @@ open scoped Asymptotics
 
 variable {α β : Type _} [NormedAddCommGroup β]
 
+#print Filter.EventuallyEq.isEquivalent /-
 theorem Filter.EventuallyEq.isEquivalent {u v : α → β} {l : Filter α} (h : u =ᶠ[l] v) : u ~[l] v :=
   IsEquivalent.congr_right (isLittleO_refl_left _ _) h
 #align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalent
+-/
 
Diff
@@ -281,7 +281,6 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
         mul_le_mul_of_nonneg_right hφx.le (norm_nonneg <| u x)
       _ ≤ c / 2 / C * (C * ‖v x‖) := (mul_le_mul_of_nonneg_left hCuvx (div_pos (by linarith) hC).le)
       _ = c / 2 * ‖v x‖ := by field_simp [hC.ne.symm]; ring
-      
   calc
     ‖((fun x : α => φ x • u x) - v) x‖ = ‖(φ x - 1) • u x + (u x - v x)‖ := by
       simp [sub_smul, sub_add]
@@ -290,7 +289,6 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
     _ ≤ c / 2 * ‖v x‖ + ‖u x - v x‖ := (add_le_add_right key _)
     _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := (add_le_add_left huvx _)
     _ = c * ‖v x‖ := by ring
-    
 #align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smul
 
 end Smul
Diff
@@ -139,7 +139,7 @@ theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β)
   by
   refine' ⟨is_equivalent.is_O, fun h => _⟩
   rw [is_equivalent_zero_iff_eventually_zero, eventually_eq_iff_exists_mem]
-  exact ⟨{ x : α | u x = 0 }, is_O_zero_right_iff.mp h, fun x hx => hx⟩
+  exact ⟨{x : α | u x = 0}, is_O_zero_right_iff.mp h, fun x hx => hx⟩
 #align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zero
 
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
@@ -261,8 +261,8 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
   have :
     ((fun x : α => a x • u x) - fun x : α => b x • v x) =ᶠ[l] fun x => b x • (φ x • u x - v x) :=
     by
-    convert(habφ.comp₂ (· • ·) <| eventually_eq.refl _ u).sub
-        (eventually_eq.refl _ fun x => b x • v x)
+    convert
+      (habφ.comp₂ (· • ·) <| eventually_eq.refl _ u).sub (eventually_eq.refl _ fun x => b x • v x)
     ext
     rw [Pi.mul_apply, mul_comm, mul_smul, ← smul_sub]
   refine' (is_o_congr this.symm <| eventually_eq.rfl).mp ((is_O_refl b l).smul_isLittleO _)
@@ -344,8 +344,8 @@ theorem IsEquivalent.tendsto_atTop_iff [OrderTopology β] (huv : u ~[l] v) :
 theorem IsEquivalent.tendsto_atBot [OrderTopology β] (huv : u ~[l] v) (hu : Tendsto u l atBot) :
     Tendsto v l atBot :=
   by
-  convert tendsto_neg_at_top_at_bot.comp
-      (huv.neg.tendsto_at_top <| tendsto_neg_at_bot_at_top.comp hu)
+  convert
+    tendsto_neg_at_top_at_bot.comp (huv.neg.tendsto_at_top <| tendsto_neg_at_bot_at_top.comp hu)
   ext
   simp
 #align asymptotics.is_equivalent.tendsto_at_bot Asymptotics.IsEquivalent.tendsto_atBot
Diff
@@ -145,9 +145,8 @@ theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β)
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
   by
   rw [is_equivalent, is_o_const_iff h]
-  constructor <;> intro h <;>
-          [· have := h.sub tendsto_const_nhds;
-            rw [zero_sub (-c)] at this;· have := h.sub tendsto_const_nhds; rw [← sub_self c]] <;>
+  constructor <;> intro h <;> [· have := h.sub tendsto_const_nhds; rw [zero_sub (-c)] at this ;
+          · have := h.sub tendsto_const_nhds; rw [← sub_self c]] <;>
         convert this <;>
       try ext <;>
     simp
@@ -163,9 +162,9 @@ theorem IsEquivalent.tendsto_const {c : β} (hu : u ~[l] const _ c) : Tendsto u
 theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (𝓝 c)) :
     Tendsto v l (𝓝 c) := by
   by_cases h : c = 0
-  · subst c; rw [← is_o_one_iff ℝ] at hu⊢
+  · subst c; rw [← is_o_one_iff ℝ] at hu ⊢
     simpa using (huv.symm.is_o.trans hu).add hu
-  · rw [← is_equivalent_const_iff_tendsto h] at hu⊢
+  · rw [← is_equivalent_const_iff_tendsto h] at hu ⊢
     exact huv.symm.trans hu
 #align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhds
 
@@ -207,10 +206,10 @@ section NormedField
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
 theorem isEquivalent_iff_exists_eq_mul :
-    u ~[l] v ↔ ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
+    u ~[l] v ↔ ∃ (φ : α → β) (hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   by
   rw [is_equivalent, is_o_iff_exists_eq_mul]
-  constructor <;> rintro ⟨φ, hφ, h⟩ <;> [use φ + 1;use φ - 1] <;> constructor
+  constructor <;> rintro ⟨φ, hφ, h⟩ <;> [use φ + 1; use φ - 1] <;> constructor
   · conv in 𝓝 _ => rw [← zero_add (1 : β)]
     exact hφ.add tendsto_const_nhds
   · convert h.add (eventually_eq.refl l v) <;> ext <;> simp [add_mul]
@@ -220,7 +219,7 @@ theorem isEquivalent_iff_exists_eq_mul :
 #align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mul
 
 theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
-    ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
+    ∃ (φ : α → β) (hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   isEquivalent_iff_exists_eq_mul.mp huv
 #align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mul
 
@@ -241,7 +240,7 @@ theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
   constructor
   · intro hequiv
     have := hequiv.is_o.tendsto_div_nhds_zero
-    simp only [Pi.sub_apply, sub_div] at this
+    simp only [Pi.sub_apply, sub_div] at this 
     have key : tendsto (fun x => v x / v x) l (𝓝 1) :=
       (tendsto_congr' <| hz.mono fun x hnz => @div_self _ _ (v x) hnz).mpr tendsto_const_nhds
     convert this.add key
@@ -270,8 +269,8 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
   rcases huv.is_O.exists_pos with ⟨C, hC, hCuv⟩
   rw [is_equivalent] at *
   rw [is_o_iff] at *
-  rw [is_O_with] at hCuv
-  simp only [Metric.tendsto_nhds, dist_eq_norm] at hφ
+  rw [is_O_with] at hCuv 
+  simp only [Metric.tendsto_nhds, dist_eq_norm] at hφ 
   intro c hc
   specialize hφ (c / 2 / C) (div_pos (by linarith) hC)
   specialize huv (show 0 < c / 2 by linarith)
@@ -281,7 +280,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
       ‖φ x - 1‖ * ‖u x‖ ≤ c / 2 / C * ‖u x‖ :=
         mul_le_mul_of_nonneg_right hφx.le (norm_nonneg <| u x)
       _ ≤ c / 2 / C * (C * ‖v x‖) := (mul_le_mul_of_nonneg_left hCuvx (div_pos (by linarith) hC).le)
-      _ = c / 2 * ‖v x‖ := by field_simp [hC.ne.symm] ; ring
+      _ = c / 2 * ‖v x‖ := by field_simp [hC.ne.symm]; ring
       
   calc
     ‖((fun x : α => φ x • u x) - v) x‖ = ‖(φ x - 1) • u x + (u x - v x)‖ := by
Diff
@@ -67,7 +67,7 @@ namespace Asymptotics
 
 open Filter Function
 
-open Topology
+open scoped Topology
 
 section NormedAddCommGroup
 
@@ -200,7 +200,7 @@ theorem IsEquivalent.neg (huv : u ~[l] v) : (fun x => -u x) ~[l] fun x => -v x :
 
 end NormedAddCommGroup
 
-open Asymptotics
+open scoped Asymptotics
 
 section NormedField
 
@@ -365,7 +365,7 @@ end Asymptotics
 
 open Filter Asymptotics
 
-open Asymptotics
+open scoped Asymptotics
 
 variable {α β : Type _} [NormedAddCommGroup β]
 
Diff
@@ -86,32 +86,14 @@ scoped notation:50 u " ~[" l:50 "] " v:50 => Asymptotics.IsEquivalent l u v
 
 variable {u v w : α → β} {l : Filter α}
 
-/- warning: asymptotics.is_equivalent.is_o -> Asymptotics.IsEquivalent.isLittleO is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHSub.{max u1 u2} (α -> β) (Pi.instSub.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))) u v) v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHSub.{max u2 u1} (α -> β) (Pi.instSub.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))) u v) v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isLittleOₓ'. -/
 theorem IsEquivalent.isLittleO (h : u ~[l] v) : (u - v) =o[l] v :=
   h
 #align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isLittleO
 
-/- warning: asymptotics.is_equivalent.is_O -> Asymptotics.IsEquivalent.isBigO is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l u v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l u v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isBigOₓ'. -/
 theorem IsEquivalent.isBigO (h : u ~[l] v) : u =O[l] v :=
   (IsBigO.congr_of_sub h.IsBigO.symm).mp (isBigO_refl _ _)
 #align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isBigO
 
-/- warning: asymptotics.is_equivalent.is_O_symm -> Asymptotics.IsEquivalent.isBigO_symm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l v u)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l v u)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symmₓ'. -/
 theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u :=
   by
   convert h.is_o.right_is_O_add
@@ -119,12 +101,6 @@ theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u :=
   simp
 #align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symm
 
-/- warning: asymptotics.is_equivalent.refl -> Asymptotics.IsEquivalent.refl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α}, Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u u
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α}, Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u u
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.refl Asymptotics.IsEquivalent.reflₓ'. -/
 @[refl]
 theorem IsEquivalent.refl : u ~[l] u :=
   by
@@ -132,69 +108,33 @@ theorem IsEquivalent.refl : u ~[l] u :=
   exact is_o_zero _ _
 #align asymptotics.is_equivalent.refl Asymptotics.IsEquivalent.refl
 
-/- warning: asymptotics.is_equivalent.symm -> Asymptotics.IsEquivalent.symm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l v u)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l v u)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.symm Asymptotics.IsEquivalent.symmₓ'. -/
 @[symm]
 theorem IsEquivalent.symm (h : u ~[l] v) : v ~[l] u :=
   (h.IsLittleO.trans_isBigO h.isBigO_symm).symm
 #align asymptotics.is_equivalent.symm Asymptotics.IsEquivalent.symm
 
-/- warning: asymptotics.is_equivalent.trans -> Asymptotics.IsEquivalent.trans is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {l : Filter.{u1} α} {u : α -> β} {v : α -> β} {w : α -> β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u w)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {l : Filter.{u2} α} {u : α -> β} {v : α -> β} {w : α -> β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u w)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.trans Asymptotics.IsEquivalent.transₓ'. -/
 @[trans]
 theorem IsEquivalent.trans {l : Filter α} {u v w : α → β} (huv : u ~[l] v) (hvw : v ~[l] w) :
     u ~[l] w :=
   (huv.IsLittleO.trans_isBigO hvw.IsBigO).triangle hvw.IsLittleO
 #align asymptotics.is_equivalent.trans Asymptotics.IsEquivalent.trans
 
-/- warning: asymptotics.is_equivalent.congr_left -> Asymptotics.IsEquivalent.congr_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u1, u2} α β l u w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l w v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u2, u1} α β l u w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l w v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.congr_left Asymptotics.IsEquivalent.congr_leftₓ'. -/
 theorem IsEquivalent.congr_left {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (huw : u =ᶠ[l] w) :
     w ~[l] v :=
   huv.congr' (huw.sub (EventuallyEq.refl _ _)) (EventuallyEq.refl _ _)
 #align asymptotics.is_equivalent.congr_left Asymptotics.IsEquivalent.congr_left
 
-/- warning: asymptotics.is_equivalent.congr_right -> Asymptotics.IsEquivalent.congr_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u1, u2} α β l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u w)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u2, u1} α β l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u w)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.congr_right Asymptotics.IsEquivalent.congr_rightₓ'. -/
 theorem IsEquivalent.congr_right {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (hvw : v =ᶠ[l] w) :
     u ~[l] w :=
   (huv.symm.congr_left hvw).symm
 #align asymptotics.is_equivalent.congr_right Asymptotics.IsEquivalent.congr_right
 
-/- warning: asymptotics.is_equivalent_zero_iff_eventually_zero -> Asymptotics.isEquivalent_zero_iff_eventually_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1))))))))))) (Filter.EventuallyEq.{u1, u2} α β l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))))))) (Filter.EventuallyEq.{u2, u1} α β l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1))))))))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_zero_iff_eventually_zero Asymptotics.isEquivalent_zero_iff_eventually_zeroₓ'. -/
 theorem isEquivalent_zero_iff_eventually_zero : u ~[l] 0 ↔ u =ᶠ[l] 0 :=
   by
   rw [is_equivalent, sub_zero]
   exact is_o_zero_right_iff
 #align asymptotics.is_equivalent_zero_iff_eventually_zero Asymptotics.isEquivalent_zero_iff_eventually_zero
 
-/- warning: asymptotics.is_equivalent_zero_iff_is_O_zero -> Asymptotics.isEquivalent_zero_iff_isBigO_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1))))))))))) (Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))))))) (Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1))))))))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zeroₓ'. -/
 theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β) :=
   by
   refine' ⟨is_equivalent.is_O, fun h => _⟩
@@ -202,12 +142,6 @@ theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β)
   exact ⟨{ x : α | u x = 0 }, is_O_zero_right_iff.mp h, fun x hx => hx⟩
 #align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zero
 
-/- warning: asymptotics.is_equivalent_const_iff_tendsto -> Asymptotics.isEquivalent_const_iff_tendsto is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α} {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))))) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (Function.const.{succ u2, succ u1} β α c)) (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α} {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (NormedAddCommGroup.toAddCommGroup.{u2} β _inst_1))))))))) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (Function.const.{succ u2, succ u1} β α c)) (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_const_iff_tendsto Asymptotics.isEquivalent_const_iff_tendstoₓ'. -/
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
   by
   rw [is_equivalent, is_o_const_iff h]
@@ -219,12 +153,6 @@ theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c
     simp
 #align asymptotics.is_equivalent_const_iff_tendsto Asymptotics.isEquivalent_const_iff_tendsto
 
-/- warning: asymptotics.is_equivalent.tendsto_const -> Asymptotics.IsEquivalent.tendsto_const is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α} {c : β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (Function.const.{succ u2, succ u1} β α c)) -> (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α} {c : β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u (Function.const.{succ u1, succ u2} β α c)) -> (Filter.Tendsto.{u2, u1} α β u l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.tendsto_const Asymptotics.IsEquivalent.tendsto_constₓ'. -/
 theorem IsEquivalent.tendsto_const {c : β} (hu : u ~[l] const _ c) : Tendsto u l (𝓝 c) :=
   by
   rcases em <| c = 0 with ⟨rfl, h⟩
@@ -232,12 +160,6 @@ theorem IsEquivalent.tendsto_const {c : β} (hu : u ~[l] const _ c) : Tendsto u
   · exact (is_equivalent_const_iff_tendsto h).mp hu
 #align asymptotics.is_equivalent.tendsto_const Asymptotics.IsEquivalent.tendsto_const
 
-/- warning: asymptotics.is_equivalent.tendsto_nhds -> Asymptotics.IsEquivalent.tendsto_nhds is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α} {c : β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)) -> (Filter.Tendsto.{u1, u2} α β v l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α} {c : β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Filter.Tendsto.{u2, u1} α β u l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c)) -> (Filter.Tendsto.{u2, u1} α β v l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhdsₓ'. -/
 theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (𝓝 c)) :
     Tendsto v l (𝓝 c) := by
   by_cases h : c = 0
@@ -247,63 +169,27 @@ theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (
     exact huv.symm.trans hu
 #align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhds
 
-/- warning: asymptotics.is_equivalent.tendsto_nhds_iff -> Asymptotics.IsEquivalent.tendsto_nhds_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α} {c : β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Iff (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)) (Filter.Tendsto.{u1, u2} α β v l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α} {c : β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Iff (Filter.Tendsto.{u2, u1} α β u l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c)) (Filter.Tendsto.{u2, u1} α β v l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.tendsto_nhds_iff Asymptotics.IsEquivalent.tendsto_nhds_iffₓ'. -/
 theorem IsEquivalent.tendsto_nhds_iff {c : β} (huv : u ~[l] v) :
     Tendsto u l (𝓝 c) ↔ Tendsto v l (𝓝 c) :=
   ⟨huv.tendsto_nhds, huv.symm.tendsto_nhds⟩
 #align asymptotics.is_equivalent.tendsto_nhds_iff Asymptotics.IsEquivalent.tendsto_nhds_iff
 
-/- warning: asymptotics.is_equivalent.add_is_o -> Asymptotics.IsEquivalent.add_isLittleO is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))) u w) v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHAdd.{max u2 u1} (α -> β) (Pi.instAdd.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (SubNegMonoid.toAddMonoid.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))))) u w) v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isLittleOₓ'. -/
 theorem IsEquivalent.add_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u + w ~[l] v := by
   simpa only [is_equivalent, add_sub_right_comm] using huv.add hwv
 #align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isLittleO
 
-/- warning: asymptotics.is_equivalent.sub_is_o -> Asymptotics.IsEquivalent.sub_isLittleO is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHSub.{max u1 u2} (α -> β) (Pi.instSub.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))) u w) v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHSub.{max u2 u1} (α -> β) (Pi.instSub.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))) u w) v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isLittleOₓ'. -/
 theorem IsEquivalent.sub_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u - w ~[l] v := by
   simpa only [sub_eq_add_neg] using huv.add_is_o hwv.neg_left
 #align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isLittleO
 
-/- warning: asymptotics.is_o.add_is_equivalent -> Asymptotics.IsLittleO.add_isEquivalent is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l u w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))) u v) w)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l u w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHAdd.{max u2 u1} (α -> β) (Pi.instAdd.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (SubNegMonoid.toAddMonoid.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))))) u v) w)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_o.add_is_equivalent Asymptotics.IsLittleO.add_isEquivalentₓ'. -/
 theorem IsLittleO.add_isEquivalent (hu : u =o[l] w) (hv : v ~[l] w) : u + v ~[l] w :=
   add_comm v u ▸ hv.add_isLittleO hu
 #align asymptotics.is_o.add_is_equivalent Asymptotics.IsLittleO.add_isEquivalent
 
-/- warning: asymptotics.is_o.is_equivalent -> Asymptotics.IsLittleO.isEquivalent is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHSub.{max u1 u2} (α -> β) (Pi.instSub.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))) u v) v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHSub.{max u2 u1} (α -> β) (Pi.instSub.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))) u v) v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_o.is_equivalent Asymptotics.IsLittleO.isEquivalentₓ'. -/
 theorem IsLittleO.isEquivalent (huv : (u - v) =o[l] v) : u ~[l] v :=
   huv
 #align asymptotics.is_o.is_equivalent Asymptotics.IsLittleO.isEquivalent
 
-/- warning: asymptotics.is_equivalent.neg -> Asymptotics.IsEquivalent.neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (fun (x : α) => Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))) (u x)) (fun (x : α) => Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))) (v x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (fun (x : α) => Neg.neg.{u1} β (NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))) (u x)) (fun (x : α) => Neg.neg.{u1} β (NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))) (v x)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.neg Asymptotics.IsEquivalent.negₓ'. -/
 theorem IsEquivalent.neg (huv : u ~[l] v) : (fun x => -u x) ~[l] fun x => -v x :=
   by
   rw [is_equivalent]
@@ -320,12 +206,6 @@ section NormedField
 
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
-/- warning: asymptotics.is_equivalent_iff_exists_eq_mul -> Asymptotics.isEquivalent_iff_exists_eq_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) (fun (hφ : Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) => Filter.EventuallyEq.{u1, u2} α β l u (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) φ v))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mulₓ'. -/
 theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   by
@@ -339,23 +219,11 @@ theorem isEquivalent_iff_exists_eq_mul :
   · convert h.sub (eventually_eq.refl l v) <;> ext <;> simp [sub_mul]
 #align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mul
 
-/- warning: asymptotics.is_equivalent.exists_eq_mul -> Asymptotics.IsEquivalent.exists_eq_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) (fun (hφ : Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) => Filter.EventuallyEq.{u1, u2} α β l u (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) φ v))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) -> (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mulₓ'. -/
 theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
     ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   isEquivalent_iff_exists_eq_mul.mp huv
 #align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mul
 
-/- warning: asymptotics.is_equivalent_of_tendsto_one -> Asymptotics.isEquivalent_of_tendsto_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.Eventually.{u1} α (fun (x : α) => (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))))))) l) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => (Eq.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) -> (Eq.{succ u1} β (u x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) l) -> (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_oneₓ'. -/
 theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
     (huv : Tendsto (u / v) l (𝓝 1)) : u ~[l] v :=
   by
@@ -363,23 +231,11 @@ theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
   refine' ⟨u / v, huv, hz.mono fun x hz' => (div_mul_cancel_of_imp hz').symm⟩
 #align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_one
 
-/- warning: asymptotics.is_equivalent_of_tendsto_one' -> Asymptotics.isEquivalent_of_tendsto_one' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1)))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u2} β (NormedField.toField.{u2} β _inst_1)))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSeminormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (Semiring.toOne.{u2} β (DivisionSemiring.toSemiring.{u2} β (Semifield.toDivisionSemiring.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_of_tendsto_one' Asymptotics.isEquivalent_of_tendsto_one'ₓ'. -/
 theorem isEquivalent_of_tendsto_one' (hz : ∀ x, v x = 0 → u x = 0) (huv : Tendsto (u / v) l (𝓝 1)) :
     u ~[l] v :=
   isEquivalent_of_tendsto_one (eventually_of_forall hz) huv
 #align asymptotics.is_equivalent_of_tendsto_one' Asymptotics.isEquivalent_of_tendsto_one'
 
-/- warning: asymptotics.is_equivalent_iff_tendsto_one -> Asymptotics.isEquivalent_iff_tendsto_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.Eventually.{u1} α (fun (x : α) => Ne.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => Ne.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_iff_tendsto_one Asymptotics.isEquivalent_iff_tendsto_oneₓ'. -/
 theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
     u ~[l] v ↔ Tendsto (u / v) l (𝓝 1) := by
   constructor
@@ -398,9 +254,6 @@ end NormedField
 
 section Smul
 
-/- warning: asymptotics.is_equivalent.smul -> Asymptotics.IsEquivalent.smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smulₓ'. -/
 theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
     {a b : α → 𝕜} {u v : α → E} {l : Filter α} (hab : a ~[l] b) (huv : u ~[l] v) :
     (fun x => a x • u x) ~[l] fun x => b x • v x :=
@@ -447,22 +300,10 @@ section mul_inv
 
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
-/- warning: asymptotics.is_equivalent.mul -> Asymptotics.IsEquivalent.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) t v) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) u w))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) t v) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) u w))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.mul Asymptotics.IsEquivalent.mulₓ'. -/
 theorem IsEquivalent.mul (htu : t ~[l] u) (hvw : v ~[l] w) : t * v ~[l] u * w :=
   htu.smul hvw
 #align asymptotics.is_equivalent.mul Asymptotics.IsEquivalent.mul
 
-/- warning: asymptotics.is_equivalent.inv -> Asymptotics.IsEquivalent.inv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l (fun (x : α) => Inv.inv.{u2} β (DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))) (u x)) (fun (x : α) => Inv.inv.{u2} β (DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))) (v x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l (fun (x : α) => Inv.inv.{u1} β (Field.toInv.{u1} β (NormedField.toField.{u1} β _inst_1)) (u x)) (fun (x : α) => Inv.inv.{u1} β (Field.toInv.{u1} β (NormedField.toField.{u1} β _inst_1)) (v x)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.inv Asymptotics.IsEquivalent.invₓ'. -/
 theorem IsEquivalent.inv (huv : u ~[l] v) : (fun x => (u x)⁻¹) ~[l] fun x => (v x)⁻¹ :=
   by
   rw [is_equivalent_iff_exists_eq_mul] at *
@@ -474,12 +315,6 @@ theorem IsEquivalent.inv (huv : u ~[l] v) : (fun x => (u x)⁻¹) ~[l] fun x =>
   simp [mul_inv]
 #align asymptotics.is_equivalent.inv Asymptotics.IsEquivalent.inv
 
-/- warning: asymptotics.is_equivalent.div -> Asymptotics.IsEquivalent.div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l (fun (x : α) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1))))) (t x) (v x)) (fun (x : α) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1))))) (u x) (w x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l (fun (x : α) => HDiv.hDiv.{u1, u1, u1} β β β (instHDiv.{u1} β (Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1))) (t x) (v x)) (fun (x : α) => HDiv.hDiv.{u1, u1, u1} β β β (instHDiv.{u1} β (Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1))) (u x) (w x)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.div Asymptotics.IsEquivalent.divₓ'. -/
 theorem IsEquivalent.div (htu : t ~[l] u) (hvw : v ~[l] w) :
     (fun x => t x / v x) ~[l] fun x => u x / w x := by
   simpa only [div_eq_mul_inv] using htu.mul hvw.inv
@@ -534,12 +369,6 @@ open Asymptotics
 
 variable {α β : Type _} [NormedAddCommGroup β]
 
-/- warning: filter.eventually_eq.is_equivalent -> Filter.EventuallyEq.isEquivalent is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.EventuallyEq.{u1, u2} α β l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.EventuallyEq.{u2, u1} α β l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v)
-Case conversion may be inaccurate. Consider using '#align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalentₓ'. -/
 theorem Filter.EventuallyEq.isEquivalent {u v : α → β} {l : Filter α} (h : u =ᶠ[l] v) : u ~[l] v :=
   IsEquivalent.congr_right (isLittleO_refl_left _ _) h
 #align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalent
Diff
@@ -212,11 +212,8 @@ theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c
   by
   rw [is_equivalent, is_o_const_iff h]
   constructor <;> intro h <;>
-          [·
-            have := h.sub tendsto_const_nhds
-            rw [zero_sub (-c)] at this;·
-            have := h.sub tendsto_const_nhds
-            rw [← sub_self c]] <;>
+          [· have := h.sub tendsto_const_nhds;
+            rw [zero_sub (-c)] at this;· have := h.sub tendsto_const_nhds; rw [← sub_self c]] <;>
         convert this <;>
       try ext <;>
     simp
@@ -244,8 +241,7 @@ Case conversion may be inaccurate. Consider using '#align asymptotics.is_equival
 theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (𝓝 c)) :
     Tendsto v l (𝓝 c) := by
   by_cases h : c = 0
-  · subst c
-    rw [← is_o_one_iff ℝ] at hu⊢
+  · subst c; rw [← is_o_one_iff ℝ] at hu⊢
     simpa using (huv.symm.is_o.trans hu).add hu
   · rw [← is_equivalent_const_iff_tendsto h] at hu⊢
     exact huv.symm.trans hu
@@ -393,8 +389,7 @@ theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
     have key : tendsto (fun x => v x / v x) l (𝓝 1) :=
       (tendsto_congr' <| hz.mono fun x hnz => @div_self _ _ (v x) hnz).mpr tendsto_const_nhds
     convert this.add key
-    · ext
-      simp
+    · ext; simp
     · norm_num
   · exact is_equivalent_of_tendsto_one (hz.mono fun x hnvz hz => (hnvz hz).elim)
 #align asymptotics.is_equivalent_iff_tendsto_one Asymptotics.isEquivalent_iff_tendsto_one
@@ -433,9 +428,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
       ‖φ x - 1‖ * ‖u x‖ ≤ c / 2 / C * ‖u x‖ :=
         mul_le_mul_of_nonneg_right hφx.le (norm_nonneg <| u x)
       _ ≤ c / 2 / C * (C * ‖v x‖) := (mul_le_mul_of_nonneg_left hCuvx (div_pos (by linarith) hC).le)
-      _ = c / 2 * ‖v x‖ := by
-        field_simp [hC.ne.symm]
-        ring
+      _ = c / 2 * ‖v x‖ := by field_simp [hC.ne.symm] ; ring
       
   calc
     ‖((fun x : α => φ x • u x) - v) x‖ = ‖(φ x - 1) • u x + (u x - v x)‖ := by
Diff
@@ -404,10 +404,7 @@ end NormedField
 section Smul
 
 /- warning: asymptotics.is_equivalent.smul -> Asymptotics.IsEquivalent.smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {E : Type.{u2}} {𝕜 : Type.{u3}} [_inst_1 : NormedField.{u3} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u3, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {a : α -> 𝕜} {b : α -> 𝕜} {u : α -> E} {v : α -> E} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u3} α 𝕜 (NonUnitalNormedRing.toNormedAddCommGroup.{u3} 𝕜 (NormedRing.toNonUnitalNormedRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))) l a b) -> (Asymptotics.IsEquivalent.{u1, u2} α E _inst_2 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α E _inst_2 l (fun (x : α) => SMul.smul.{u3, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u3, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u3, u2} 𝕜 E (MulZeroClass.toHasZero.{u3} 𝕜 (MulZeroOneClass.toMulZeroClass.{u3} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u3, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (a x) (u x)) (fun (x : α) => SMul.smul.{u3, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u3, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u3, u2} 𝕜 E (MulZeroClass.toHasZero.{u3} 𝕜 (MulZeroOneClass.toMulZeroClass.{u3} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u3, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (b x) (v x)))
-but is expected to have type
-  forall {α : Type.{u3}} {E : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {a : α -> 𝕜} {b : α -> 𝕜} {u : α -> E} {v : α -> E} {l : Filter.{u3} α}, (Asymptotics.IsEquivalent.{u3, u1} α 𝕜 (NonUnitalNormedRing.toNormedAddCommGroup.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1)))) l a b) -> (Asymptotics.IsEquivalent.{u3, u2} α E _inst_2 l u v) -> (Asymptotics.IsEquivalent.{u3, u2} α E _inst_2 l (fun (x : α) => HSMul.hSMul.{u1, u2, u2} 𝕜 E E (instHSMul.{u1, u2} 𝕜 E (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)))))) (a x) (u x)) (fun (x : α) => HSMul.hSMul.{u1, u2, u2} 𝕜 E E (instHSMul.{u1, u2} 𝕜 E (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)))))) (b x) (v x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smulₓ'. -/
 theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
     {a b : α → 𝕜} {u v : α → E} {l : Filter α} (hab : a ~[l] b) (huv : u ~[l] v) :
Diff
@@ -214,8 +214,8 @@ theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c
   constructor <;> intro h <;>
           [·
             have := h.sub tendsto_const_nhds
-            rw [zero_sub (-c)] at this,
-          · have := h.sub tendsto_const_nhds
+            rw [zero_sub (-c)] at this;·
+            have := h.sub tendsto_const_nhds
             rw [← sub_self c]] <;>
         convert this <;>
       try ext <;>
@@ -334,7 +334,7 @@ theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   by
   rw [is_equivalent, is_o_iff_exists_eq_mul]
-  constructor <;> rintro ⟨φ, hφ, h⟩ <;> [use φ + 1, use φ - 1] <;> constructor
+  constructor <;> rintro ⟨φ, hφ, h⟩ <;> [use φ + 1;use φ - 1] <;> constructor
   · conv in 𝓝 _ => rw [← zero_add (1 : β)]
     exact hφ.add tendsto_const_nhds
   · convert h.add (eventually_eq.refl l v) <;> ext <;> simp [add_mul]
Diff
@@ -328,7 +328,7 @@ variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) (fun (hφ : Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) => Filter.EventuallyEq.{u1, u2} α β l u (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) φ v))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
 Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mulₓ'. -/
 theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
@@ -347,7 +347,7 @@ theorem isEquivalent_iff_exists_eq_mul :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) (fun (hφ : Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) => Filter.EventuallyEq.{u1, u2} α β l u (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) φ v))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) -> (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) -> (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
 Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mulₓ'. -/
 theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
     ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
@@ -358,7 +358,7 @@ theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.Eventually.{u1} α (fun (x : α) => (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))))))) l) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => (Eq.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) -> (Eq.{succ u1} β (u x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) l) -> (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => (Eq.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) -> (Eq.{succ u1} β (u x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) l) -> (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v)
 Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_oneₓ'. -/
 theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
     (huv : Tendsto (u / v) l (𝓝 1)) : u ~[l] v :=
@@ -371,7 +371,7 @@ theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1)))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u2} β (NormedField.toField.{u2} β _inst_1)))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSeminormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (NonAssocRing.toOne.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1)))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u2} β (NormedField.toField.{u2} β _inst_1)))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSeminormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (Semiring.toOne.{u2} β (DivisionSemiring.toSemiring.{u2} β (Semifield.toDivisionSemiring.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
 Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_of_tendsto_one' Asymptotics.isEquivalent_of_tendsto_one'ₓ'. -/
 theorem isEquivalent_of_tendsto_one' (hz : ∀ x, v x = 0 → u x = 0) (huv : Tendsto (u / v) l (𝓝 1)) :
     u ~[l] v :=
@@ -382,7 +382,7 @@ theorem isEquivalent_of_tendsto_one' (hz : ∀ x, v x = 0 → u x = 0) (huv : Te
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.Eventually.{u1} α (fun (x : α) => Ne.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => Ne.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => Ne.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (Semiring.toOne.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))))
 Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_iff_tendsto_one Asymptotics.isEquivalent_iff_tendsto_oneₓ'. -/
 theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
     u ~[l] v ↔ Tendsto (u / v) l (𝓝 1) := by
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
 
 ! This file was ported from Lean 3 source module analysis.asymptotics.asymptotic_equivalent
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.Normed.Order.Basic
 /-!
 # Asymptotic equivalence
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file, we define the relation `is_equivalent l u v`, which means that `u-v` is little o of
 `v` along the filter `l`.
 
Diff
@@ -70,25 +70,45 @@ section NormedAddCommGroup
 
 variable {α β : Type _} [NormedAddCommGroup β]
 
+#print Asymptotics.IsEquivalent /-
 /-- Two functions `u` and `v` are said to be asymptotically equivalent along a filter `l` when
     `u x - v x = o(v x)` as x converges along `l`. -/
 def IsEquivalent (l : Filter α) (u v : α → β) :=
   (u - v) =o[l] v
 #align asymptotics.is_equivalent Asymptotics.IsEquivalent
+-/
 
 -- mathport name: asymptotics.is_equivalent
 scoped notation:50 u " ~[" l:50 "] " v:50 => Asymptotics.IsEquivalent l u v
 
 variable {u v w : α → β} {l : Filter α}
 
+/- warning: asymptotics.is_equivalent.is_o -> Asymptotics.IsEquivalent.isLittleO is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHSub.{max u1 u2} (α -> β) (Pi.instSub.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))) u v) v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHSub.{max u2 u1} (α -> β) (Pi.instSub.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))) u v) v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isLittleOₓ'. -/
 theorem IsEquivalent.isLittleO (h : u ~[l] v) : (u - v) =o[l] v :=
   h
 #align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isLittleO
 
+/- warning: asymptotics.is_equivalent.is_O -> Asymptotics.IsEquivalent.isBigO is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l u v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l u v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isBigOₓ'. -/
 theorem IsEquivalent.isBigO (h : u ~[l] v) : u =O[l] v :=
   (IsBigO.congr_of_sub h.IsBigO.symm).mp (isBigO_refl _ _)
 #align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isBigO
 
+/- warning: asymptotics.is_equivalent.is_O_symm -> Asymptotics.IsEquivalent.isBigO_symm is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l v u)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l v u)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symmₓ'. -/
 theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u :=
   by
   convert h.is_o.right_is_O_add
@@ -96,6 +116,12 @@ theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u :=
   simp
 #align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symm
 
+/- warning: asymptotics.is_equivalent.refl -> Asymptotics.IsEquivalent.refl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α}, Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u u
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α}, Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u u
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.refl Asymptotics.IsEquivalent.reflₓ'. -/
 @[refl]
 theorem IsEquivalent.refl : u ~[l] u :=
   by
@@ -103,33 +129,69 @@ theorem IsEquivalent.refl : u ~[l] u :=
   exact is_o_zero _ _
 #align asymptotics.is_equivalent.refl Asymptotics.IsEquivalent.refl
 
+/- warning: asymptotics.is_equivalent.symm -> Asymptotics.IsEquivalent.symm is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l v u)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l v u)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.symm Asymptotics.IsEquivalent.symmₓ'. -/
 @[symm]
 theorem IsEquivalent.symm (h : u ~[l] v) : v ~[l] u :=
   (h.IsLittleO.trans_isBigO h.isBigO_symm).symm
 #align asymptotics.is_equivalent.symm Asymptotics.IsEquivalent.symm
 
+/- warning: asymptotics.is_equivalent.trans -> Asymptotics.IsEquivalent.trans is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {l : Filter.{u1} α} {u : α -> β} {v : α -> β} {w : α -> β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u w)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {l : Filter.{u2} α} {u : α -> β} {v : α -> β} {w : α -> β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u w)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.trans Asymptotics.IsEquivalent.transₓ'. -/
 @[trans]
 theorem IsEquivalent.trans {l : Filter α} {u v w : α → β} (huv : u ~[l] v) (hvw : v ~[l] w) :
     u ~[l] w :=
   (huv.IsLittleO.trans_isBigO hvw.IsBigO).triangle hvw.IsLittleO
 #align asymptotics.is_equivalent.trans Asymptotics.IsEquivalent.trans
 
+/- warning: asymptotics.is_equivalent.congr_left -> Asymptotics.IsEquivalent.congr_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u1, u2} α β l u w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l w v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u2, u1} α β l u w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l w v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.congr_left Asymptotics.IsEquivalent.congr_leftₓ'. -/
 theorem IsEquivalent.congr_left {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (huw : u =ᶠ[l] w) :
     w ~[l] v :=
   huv.congr' (huw.sub (EventuallyEq.refl _ _)) (EventuallyEq.refl _ _)
 #align asymptotics.is_equivalent.congr_left Asymptotics.IsEquivalent.congr_left
 
+/- warning: asymptotics.is_equivalent.congr_right -> Asymptotics.IsEquivalent.congr_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u1, u2} α β l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u w)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Filter.EventuallyEq.{u2, u1} α β l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u w)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.congr_right Asymptotics.IsEquivalent.congr_rightₓ'. -/
 theorem IsEquivalent.congr_right {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (hvw : v =ᶠ[l] w) :
     u ~[l] w :=
   (huv.symm.congr_left hvw).symm
 #align asymptotics.is_equivalent.congr_right Asymptotics.IsEquivalent.congr_right
 
+/- warning: asymptotics.is_equivalent_zero_iff_eventually_zero -> Asymptotics.isEquivalent_zero_iff_eventually_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1))))))))))) (Filter.EventuallyEq.{u1, u2} α β l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))))))) (Filter.EventuallyEq.{u2, u1} α β l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1))))))))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_zero_iff_eventually_zero Asymptotics.isEquivalent_zero_iff_eventually_zeroₓ'. -/
 theorem isEquivalent_zero_iff_eventually_zero : u ~[l] 0 ↔ u =ᶠ[l] 0 :=
   by
   rw [is_equivalent, sub_zero]
   exact is_o_zero_right_iff
 #align asymptotics.is_equivalent_zero_iff_eventually_zero Asymptotics.isEquivalent_zero_iff_eventually_zero
 
+/- warning: asymptotics.is_equivalent_zero_iff_is_O_zero -> Asymptotics.isEquivalent_zero_iff_isBigO_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1))))))))))) (Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l u (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))))))) (Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l u (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.AsymptoticEquivalent._hyg.27 : α) => β) (fun (i : α) => NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1))))))))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zeroₓ'. -/
 theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β) :=
   by
   refine' ⟨is_equivalent.is_O, fun h => _⟩
@@ -137,6 +199,12 @@ theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β)
   exact ⟨{ x : α | u x = 0 }, is_O_zero_right_iff.mp h, fun x hx => hx⟩
 #align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zero
 
+/- warning: asymptotics.is_equivalent_const_iff_tendsto -> Asymptotics.isEquivalent_const_iff_tendsto is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α} {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))))) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (Function.const.{succ u2, succ u1} β α c)) (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α} {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (NormedAddCommGroup.toAddCommGroup.{u2} β _inst_1))))))))) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (Function.const.{succ u2, succ u1} β α c)) (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_const_iff_tendsto Asymptotics.isEquivalent_const_iff_tendstoₓ'. -/
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
   by
   rw [is_equivalent, is_o_const_iff h]
@@ -151,6 +219,12 @@ theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c
     simp
 #align asymptotics.is_equivalent_const_iff_tendsto Asymptotics.isEquivalent_const_iff_tendsto
 
+/- warning: asymptotics.is_equivalent.tendsto_const -> Asymptotics.IsEquivalent.tendsto_const is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {l : Filter.{u1} α} {c : β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u (Function.const.{succ u2, succ u1} β α c)) -> (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {l : Filter.{u2} α} {c : β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u (Function.const.{succ u1, succ u2} β α c)) -> (Filter.Tendsto.{u2, u1} α β u l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.tendsto_const Asymptotics.IsEquivalent.tendsto_constₓ'. -/
 theorem IsEquivalent.tendsto_const {c : β} (hu : u ~[l] const _ c) : Tendsto u l (𝓝 c) :=
   by
   rcases em <| c = 0 with ⟨rfl, h⟩
@@ -158,6 +232,12 @@ theorem IsEquivalent.tendsto_const {c : β} (hu : u ~[l] const _ c) : Tendsto u
   · exact (is_equivalent_const_iff_tendsto h).mp hu
 #align asymptotics.is_equivalent.tendsto_const Asymptotics.IsEquivalent.tendsto_const
 
+/- warning: asymptotics.is_equivalent.tendsto_nhds -> Asymptotics.IsEquivalent.tendsto_nhds is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α} {c : β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)) -> (Filter.Tendsto.{u1, u2} α β v l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α} {c : β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Filter.Tendsto.{u2, u1} α β u l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c)) -> (Filter.Tendsto.{u2, u1} α β v l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhdsₓ'. -/
 theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (𝓝 c)) :
     Tendsto v l (𝓝 c) := by
   by_cases h : c = 0
@@ -168,27 +248,63 @@ theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (
     exact huv.symm.trans hu
 #align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhds
 
+/- warning: asymptotics.is_equivalent.tendsto_nhds_iff -> Asymptotics.IsEquivalent.tendsto_nhds_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α} {c : β}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Iff (Filter.Tendsto.{u1, u2} α β u l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)) (Filter.Tendsto.{u1, u2} α β v l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} β _inst_1)))) c)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α} {c : β}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Iff (Filter.Tendsto.{u2, u1} α β u l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c)) (Filter.Tendsto.{u2, u1} α β v l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} β _inst_1)))) c)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.tendsto_nhds_iff Asymptotics.IsEquivalent.tendsto_nhds_iffₓ'. -/
 theorem IsEquivalent.tendsto_nhds_iff {c : β} (huv : u ~[l] v) :
     Tendsto u l (𝓝 c) ↔ Tendsto v l (𝓝 c) :=
   ⟨huv.tendsto_nhds, huv.symm.tendsto_nhds⟩
 #align asymptotics.is_equivalent.tendsto_nhds_iff Asymptotics.IsEquivalent.tendsto_nhds_iff
 
+/- warning: asymptotics.is_equivalent.add_is_o -> Asymptotics.IsEquivalent.add_isLittleO is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))) u w) v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHAdd.{max u2 u1} (α -> β) (Pi.instAdd.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (SubNegMonoid.toAddMonoid.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))))) u w) v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isLittleOₓ'. -/
 theorem IsEquivalent.add_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u + w ~[l] v := by
   simpa only [is_equivalent, add_sub_right_comm] using huv.add hwv
 #align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isLittleO
 
+/- warning: asymptotics.is_equivalent.sub_is_o -> Asymptotics.IsEquivalent.sub_isLittleO is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHSub.{max u1 u2} (α -> β) (Pi.instSub.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))) u w) v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l w v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHSub.{max u2 u1} (α -> β) (Pi.instSub.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))) u w) v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isLittleOₓ'. -/
 theorem IsEquivalent.sub_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u - w ~[l] v := by
   simpa only [sub_eq_add_neg] using huv.add_is_o hwv.neg_left
 #align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isLittleO
 
+/- warning: asymptotics.is_o.add_is_equivalent -> Asymptotics.IsLittleO.add_isEquivalent is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l u w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toHasAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))))) u v) w)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l u w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHAdd.{max u2 u1} (α -> β) (Pi.instAdd.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (SubNegMonoid.toAddMonoid.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))))) u v) w)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_o.add_is_equivalent Asymptotics.IsLittleO.add_isEquivalentₓ'. -/
 theorem IsLittleO.add_isEquivalent (hu : u =o[l] w) (hv : v ~[l] w) : u + v ~[l] w :=
   add_comm v u ▸ hv.add_isLittleO hu
 #align asymptotics.is_o.add_is_equivalent Asymptotics.IsLittleO.add_isEquivalent
 
+/- warning: asymptotics.is_o.is_equivalent -> Asymptotics.IsLittleO.isEquivalent is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) (NormedAddCommGroup.toHasNorm.{u2} β _inst_1) l (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHSub.{max u1 u2} (α -> β) (Pi.instSub.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))))) u v) v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedAddCommGroup.toNorm.{u1} β _inst_1) (NormedAddCommGroup.toNorm.{u1} β _inst_1) l (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHSub.{max u2 u1} (α -> β) (Pi.instSub.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (NormedAddGroup.toAddGroup.{u1} β (NormedAddCommGroup.toNormedAddGroup.{u1} β _inst_1)))))) u v) v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_o.is_equivalent Asymptotics.IsLittleO.isEquivalentₓ'. -/
 theorem IsLittleO.isEquivalent (huv : (u - v) =o[l] v) : u ~[l] v :=
   huv
 #align asymptotics.is_o.is_equivalent Asymptotics.IsLittleO.isEquivalent
 
+/- warning: asymptotics.is_equivalent.neg -> Asymptotics.IsEquivalent.neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l (fun (x : α) => Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))) (u x)) (fun (x : α) => Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (NormedAddGroup.toAddGroup.{u2} β (NormedAddCommGroup.toNormedAddGroup.{u2} β _inst_1)))) (v x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l (fun (x : α) => Neg.neg.{u1} β (NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))) (u x)) (fun (x : α) => Neg.neg.{u1} β (NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (NormedAddCommGroup.toAddCommGroup.{u1} β _inst_1)))))) (v x)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.neg Asymptotics.IsEquivalent.negₓ'. -/
 theorem IsEquivalent.neg (huv : u ~[l] v) : (fun x => -u x) ~[l] fun x => -v x :=
   by
   rw [is_equivalent]
@@ -205,6 +321,12 @@ section NormedField
 
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
+/- warning: asymptotics.is_equivalent_iff_exists_eq_mul -> Asymptotics.isEquivalent_iff_exists_eq_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, Iff (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) (fun (hφ : Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) => Filter.EventuallyEq.{u1, u2} α β l u (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) φ v))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mulₓ'. -/
 theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   by
@@ -218,11 +340,23 @@ theorem isEquivalent_iff_exists_eq_mul :
   · convert h.sub (eventually_eq.refl l v) <;> ext <;> simp [sub_mul]
 #align asymptotics.is_equivalent_iff_exists_eq_mul Asymptotics.isEquivalent_iff_exists_eq_mul
 
+/- warning: asymptotics.is_equivalent.exists_eq_mul -> Asymptotics.IsEquivalent.exists_eq_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) (fun (hφ : Filter.Tendsto.{u1, u2} α β φ l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) => Filter.EventuallyEq.{u1, u2} α β l u (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) φ v))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) -> (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (φ : α -> β) => Exists.{0} (Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) (fun (hφ : Filter.Tendsto.{u2, u1} α β φ l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) => Filter.EventuallyEq.{u2, u1} α β l u (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) φ v))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mulₓ'. -/
 theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
     ∃ (φ : α → β)(hφ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v :=
   isEquivalent_iff_exists_eq_mul.mp huv
 #align asymptotics.is_equivalent.exists_eq_mul Asymptotics.IsEquivalent.exists_eq_mul
 
+/- warning: asymptotics.is_equivalent_of_tendsto_one -> Asymptotics.isEquivalent_of_tendsto_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.Eventually.{u1} α (fun (x : α) => (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))))))) l) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => (Eq.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) -> (Eq.{succ u1} β (u x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1))))))))) l) -> (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_oneₓ'. -/
 theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
     (huv : Tendsto (u / v) l (𝓝 1)) : u ~[l] v :=
   by
@@ -230,11 +364,23 @@ theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
   refine' ⟨u / v, huv, hz.mono fun x hz' => (div_mul_cancel_of_imp hz').symm⟩
 #align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_one
 
+/- warning: asymptotics.is_equivalent_of_tendsto_one' -> Asymptotics.isEquivalent_of_tendsto_one' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (forall (x : α), (Eq.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1)))))))) -> (Eq.{succ u2} β (u x) (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β (NormedField.toField.{u2} β _inst_1))))))))) -> (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u2} β (NormedField.toField.{u2} β _inst_1)))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSeminormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (NonAssocRing.toOne.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))))) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v)
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_of_tendsto_one' Asymptotics.isEquivalent_of_tendsto_one'ₓ'. -/
 theorem isEquivalent_of_tendsto_one' (hz : ∀ x, v x = 0 → u x = 0) (huv : Tendsto (u / v) l (𝓝 1)) :
     u ~[l] v :=
   isEquivalent_of_tendsto_one (eventually_of_forall hz) huv
 #align asymptotics.is_equivalent_of_tendsto_one' Asymptotics.isEquivalent_of_tendsto_one'
 
+/- warning: asymptotics.is_equivalent_iff_tendsto_one -> Asymptotics.isEquivalent_iff_tendsto_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.Eventually.{u1} α (fun (x : α) => Ne.{succ u2} β (v x) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) (Filter.Tendsto.{u1, u2} α β (HDiv.hDiv.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHDiv.{max u1 u2} (α -> β) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))))) u v) l (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))))))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.Eventually.{u2} α (fun (x : α) => Ne.{succ u1} β (v x) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (Field.toSemifield.{u1} β (NormedField.toField.{u1} β _inst_1)))))))) l) -> (Iff (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) (Filter.Tendsto.{u2, u1} α β (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHDiv.{max u2 u1} (α -> β) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1)))) u v) l (nhds.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))) (OfNat.ofNat.{u1} β 1 (One.toOfNat1.{u1} β (NonAssocRing.toOne.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1))))))))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent_iff_tendsto_one Asymptotics.isEquivalent_iff_tendsto_oneₓ'. -/
 theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
     u ~[l] v ↔ Tendsto (u / v) l (𝓝 1) := by
   constructor
@@ -254,6 +400,12 @@ end NormedField
 
 section Smul
 
+/- warning: asymptotics.is_equivalent.smul -> Asymptotics.IsEquivalent.smul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {E : Type.{u2}} {𝕜 : Type.{u3}} [_inst_1 : NormedField.{u3} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u3, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {a : α -> 𝕜} {b : α -> 𝕜} {u : α -> E} {v : α -> E} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u3} α 𝕜 (NonUnitalNormedRing.toNormedAddCommGroup.{u3} 𝕜 (NormedRing.toNonUnitalNormedRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))) l a b) -> (Asymptotics.IsEquivalent.{u1, u2} α E _inst_2 l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α E _inst_2 l (fun (x : α) => SMul.smul.{u3, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u3, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u3, u2} 𝕜 E (MulZeroClass.toHasZero.{u3} 𝕜 (MulZeroOneClass.toMulZeroClass.{u3} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u3, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (a x) (u x)) (fun (x : α) => SMul.smul.{u3, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u3, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u3, u2} 𝕜 E (MulZeroClass.toHasZero.{u3} 𝕜 (MulZeroOneClass.toMulZeroClass.{u3} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (Ring.toSemiring.{u3} 𝕜 (NormedRing.toRing.{u3} 𝕜 (NormedCommRing.toNormedRing.{u3} 𝕜 (NormedField.toNormedCommRing.{u3} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u3, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (b x) (v x)))
+but is expected to have type
+  forall {α : Type.{u3}} {E : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {a : α -> 𝕜} {b : α -> 𝕜} {u : α -> E} {v : α -> E} {l : Filter.{u3} α}, (Asymptotics.IsEquivalent.{u3, u1} α 𝕜 (NonUnitalNormedRing.toNormedAddCommGroup.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1)))) l a b) -> (Asymptotics.IsEquivalent.{u3, u2} α E _inst_2 l u v) -> (Asymptotics.IsEquivalent.{u3, u2} α E _inst_2 l (fun (x : α) => HSMul.hSMul.{u1, u2, u2} 𝕜 E E (instHSMul.{u1, u2} 𝕜 E (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)))))) (a x) (u x)) (fun (x : α) => HSMul.hSMul.{u1, u2, u2} 𝕜 E E (instHSMul.{u1, u2} 𝕜 E (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)))))) (b x) (v x)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smulₓ'. -/
 theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
     {a b : α → 𝕜} {u v : α → E} {l : Filter α} (hab : a ~[l] b) (huv : u ~[l] v) :
     (fun x => a x • u x) ~[l] fun x => b x • v x :=
@@ -302,10 +454,22 @@ section mul_inv
 
 variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 
+/- warning: asymptotics.is_equivalent.mul -> Asymptotics.IsEquivalent.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) t v) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1))))))) u w))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) t v) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))))))) u w))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.mul Asymptotics.IsEquivalent.mulₓ'. -/
 theorem IsEquivalent.mul (htu : t ~[l] u) (hvw : v ~[l] w) : t * v ~[l] u * w :=
   htu.smul hvw
 #align asymptotics.is_equivalent.mul Asymptotics.IsEquivalent.mul
 
+/- warning: asymptotics.is_equivalent.inv -> Asymptotics.IsEquivalent.inv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l (fun (x : α) => Inv.inv.{u2} β (DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))) (u x)) (fun (x : α) => Inv.inv.{u2} β (DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1)))) (v x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l (fun (x : α) => Inv.inv.{u1} β (Field.toInv.{u1} β (NormedField.toField.{u1} β _inst_1)) (u x)) (fun (x : α) => Inv.inv.{u1} β (Field.toInv.{u1} β (NormedField.toField.{u1} β _inst_1)) (v x)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.inv Asymptotics.IsEquivalent.invₓ'. -/
 theorem IsEquivalent.inv (huv : u ~[l] v) : (fun x => (u x)⁻¹) ~[l] fun x => (v x)⁻¹ :=
   by
   rw [is_equivalent_iff_exists_eq_mul] at *
@@ -317,6 +481,12 @@ theorem IsEquivalent.inv (huv : u ~[l] v) : (fun x => (u x)⁻¹) ~[l] fun x =>
   simp [mul_inv]
 #align asymptotics.is_equivalent.inv Asymptotics.IsEquivalent.inv
 
+/- warning: asymptotics.is_equivalent.div -> Asymptotics.IsEquivalent.div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u2} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u1} α}, (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u1, u2} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u2} β (NormedRing.toNonUnitalNormedRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β _inst_1)))) l (fun (x : α) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1))))) (t x) (v x)) (fun (x : α) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β _inst_1))))) (u x) (w x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u1} β] {t : α -> β} {u : α -> β} {v : α -> β} {w : α -> β} {l : Filter.{u2} α}, (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l t u) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l v w) -> (Asymptotics.IsEquivalent.{u2, u1} α β (NonUnitalNormedRing.toNormedAddCommGroup.{u1} β (NormedRing.toNonUnitalNormedRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β _inst_1)))) l (fun (x : α) => HDiv.hDiv.{u1, u1, u1} β β β (instHDiv.{u1} β (Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1))) (t x) (v x)) (fun (x : α) => HDiv.hDiv.{u1, u1, u1} β β β (instHDiv.{u1} β (Field.toDiv.{u1} β (NormedField.toField.{u1} β _inst_1))) (u x) (w x)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.is_equivalent.div Asymptotics.IsEquivalent.divₓ'. -/
 theorem IsEquivalent.div (htu : t ~[l] u) (hvw : v ~[l] w) :
     (fun x => t x / v x) ~[l] fun x => u x / w x := by
   simpa only [div_eq_mul_inv] using htu.mul hvw.inv
@@ -328,17 +498,22 @@ section NormedLinearOrderedField
 
 variable {α β : Type _} [NormedLinearOrderedField β] {u v : α → β} {l : Filter α}
 
+#print Asymptotics.IsEquivalent.tendsto_atTop /-
 theorem IsEquivalent.tendsto_atTop [OrderTopology β] (huv : u ~[l] v) (hu : Tendsto u l atTop) :
     Tendsto v l atTop :=
   let ⟨φ, hφ, h⟩ := huv.symm.exists_eq_mul
   Tendsto.congr' h.symm (mul_comm u φ ▸ hu.atTop_mul zero_lt_one hφ)
 #align asymptotics.is_equivalent.tendsto_at_top Asymptotics.IsEquivalent.tendsto_atTop
+-/
 
+#print Asymptotics.IsEquivalent.tendsto_atTop_iff /-
 theorem IsEquivalent.tendsto_atTop_iff [OrderTopology β] (huv : u ~[l] v) :
     Tendsto u l atTop ↔ Tendsto v l atTop :=
   ⟨huv.tendsto_atTop, huv.symm.tendsto_atTop⟩
 #align asymptotics.is_equivalent.tendsto_at_top_iff Asymptotics.IsEquivalent.tendsto_atTop_iff
+-/
 
+#print Asymptotics.IsEquivalent.tendsto_atBot /-
 theorem IsEquivalent.tendsto_atBot [OrderTopology β] (huv : u ~[l] v) (hu : Tendsto u l atBot) :
     Tendsto v l atBot :=
   by
@@ -347,11 +522,14 @@ theorem IsEquivalent.tendsto_atBot [OrderTopology β] (huv : u ~[l] v) (hu : Ten
   ext
   simp
 #align asymptotics.is_equivalent.tendsto_at_bot Asymptotics.IsEquivalent.tendsto_atBot
+-/
 
+#print Asymptotics.IsEquivalent.tendsto_atBot_iff /-
 theorem IsEquivalent.tendsto_atBot_iff [OrderTopology β] (huv : u ~[l] v) :
     Tendsto u l atBot ↔ Tendsto v l atBot :=
   ⟨huv.tendsto_atBot, huv.symm.tendsto_atBot⟩
 #align asymptotics.is_equivalent.tendsto_at_bot_iff Asymptotics.IsEquivalent.tendsto_atBot_iff
+-/
 
 end NormedLinearOrderedField
 
@@ -363,6 +541,12 @@ open Asymptotics
 
 variable {α β : Type _} [NormedAddCommGroup β]
 
+/- warning: filter.eventually_eq.is_equivalent -> Filter.EventuallyEq.isEquivalent is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} β] {u : α -> β} {v : α -> β} {l : Filter.{u1} α}, (Filter.EventuallyEq.{u1, u2} α β l u v) -> (Asymptotics.IsEquivalent.{u1, u2} α β _inst_1 l u v)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} β] {u : α -> β} {v : α -> β} {l : Filter.{u2} α}, (Filter.EventuallyEq.{u2, u1} α β l u v) -> (Asymptotics.IsEquivalent.{u2, u1} α β _inst_1 l u v)
+Case conversion may be inaccurate. Consider using '#align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalentₓ'. -/
 theorem Filter.EventuallyEq.isEquivalent {u v : α → β} {l : Filter α} (h : u =ᶠ[l] v) : u ~[l] v :=
   IsEquivalent.congr_right (isLittleO_refl_left _ _) h
 #align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalent
Diff
@@ -81,20 +81,20 @@ scoped notation:50 u " ~[" l:50 "] " v:50 => Asymptotics.IsEquivalent l u v
 
 variable {u v w : α → β} {l : Filter α}
 
-theorem IsEquivalent.isOCat (h : u ~[l] v) : (u - v) =o[l] v :=
+theorem IsEquivalent.isLittleO (h : u ~[l] v) : (u - v) =o[l] v :=
   h
-#align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isOCat
+#align asymptotics.is_equivalent.is_o Asymptotics.IsEquivalent.isLittleO
 
-theorem IsEquivalent.isO (h : u ~[l] v) : u =O[l] v :=
-  (IsO.congr_of_sub h.IsO.symm).mp (isO_refl _ _)
-#align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isO
+theorem IsEquivalent.isBigO (h : u ~[l] v) : u =O[l] v :=
+  (IsBigO.congr_of_sub h.IsBigO.symm).mp (isBigO_refl _ _)
+#align asymptotics.is_equivalent.is_O Asymptotics.IsEquivalent.isBigO
 
-theorem IsEquivalent.isO_symm (h : u ~[l] v) : v =O[l] u :=
+theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u :=
   by
   convert h.is_o.right_is_O_add
   ext
   simp
-#align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isO_symm
+#align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symm
 
 @[refl]
 theorem IsEquivalent.refl : u ~[l] u :=
@@ -105,13 +105,13 @@ theorem IsEquivalent.refl : u ~[l] u :=
 
 @[symm]
 theorem IsEquivalent.symm (h : u ~[l] v) : v ~[l] u :=
-  (h.IsOCat.trans_isO h.isO_symm).symm
+  (h.IsLittleO.trans_isBigO h.isBigO_symm).symm
 #align asymptotics.is_equivalent.symm Asymptotics.IsEquivalent.symm
 
 @[trans]
 theorem IsEquivalent.trans {l : Filter α} {u v w : α → β} (huv : u ~[l] v) (hvw : v ~[l] w) :
     u ~[l] w :=
-  (huv.IsOCat.trans_isO hvw.IsO).triangle hvw.IsOCat
+  (huv.IsLittleO.trans_isBigO hvw.IsBigO).triangle hvw.IsLittleO
 #align asymptotics.is_equivalent.trans Asymptotics.IsEquivalent.trans
 
 theorem IsEquivalent.congr_left {u v w : α → β} {l : Filter α} (huv : u ~[l] v) (huw : u =ᶠ[l] w) :
@@ -130,12 +130,12 @@ theorem isEquivalent_zero_iff_eventually_zero : u ~[l] 0 ↔ u =ᶠ[l] 0 :=
   exact is_o_zero_right_iff
 #align asymptotics.is_equivalent_zero_iff_eventually_zero Asymptotics.isEquivalent_zero_iff_eventually_zero
 
-theorem isEquivalent_zero_iff_isO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β) :=
+theorem isEquivalent_zero_iff_isBigO_zero : u ~[l] 0 ↔ u =O[l] (0 : α → β) :=
   by
   refine' ⟨is_equivalent.is_O, fun h => _⟩
   rw [is_equivalent_zero_iff_eventually_zero, eventually_eq_iff_exists_mem]
   exact ⟨{ x : α | u x = 0 }, is_O_zero_right_iff.mp h, fun x hx => hx⟩
-#align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isO_zero
+#align asymptotics.is_equivalent_zero_iff_is_O_zero Asymptotics.isEquivalent_zero_iff_isBigO_zero
 
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) : u ~[l] const _ c ↔ Tendsto u l (𝓝 c) :=
   by
@@ -173,21 +173,21 @@ theorem IsEquivalent.tendsto_nhds_iff {c : β} (huv : u ~[l] v) :
   ⟨huv.tendsto_nhds, huv.symm.tendsto_nhds⟩
 #align asymptotics.is_equivalent.tendsto_nhds_iff Asymptotics.IsEquivalent.tendsto_nhds_iff
 
-theorem IsEquivalent.add_isOCat (huv : u ~[l] v) (hwv : w =o[l] v) : u + w ~[l] v := by
+theorem IsEquivalent.add_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u + w ~[l] v := by
   simpa only [is_equivalent, add_sub_right_comm] using huv.add hwv
-#align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isOCat
+#align asymptotics.is_equivalent.add_is_o Asymptotics.IsEquivalent.add_isLittleO
 
-theorem IsEquivalent.sub_isOCat (huv : u ~[l] v) (hwv : w =o[l] v) : u - w ~[l] v := by
+theorem IsEquivalent.sub_isLittleO (huv : u ~[l] v) (hwv : w =o[l] v) : u - w ~[l] v := by
   simpa only [sub_eq_add_neg] using huv.add_is_o hwv.neg_left
-#align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isOCat
+#align asymptotics.is_equivalent.sub_is_o Asymptotics.IsEquivalent.sub_isLittleO
 
-theorem IsOCat.add_isEquivalent (hu : u =o[l] w) (hv : v ~[l] w) : u + v ~[l] w :=
-  add_comm v u ▸ hv.add_isOCat hu
-#align asymptotics.is_o.add_is_equivalent Asymptotics.IsOCat.add_isEquivalent
+theorem IsLittleO.add_isEquivalent (hu : u =o[l] w) (hv : v ~[l] w) : u + v ~[l] w :=
+  add_comm v u ▸ hv.add_isLittleO hu
+#align asymptotics.is_o.add_is_equivalent Asymptotics.IsLittleO.add_isEquivalent
 
-theorem IsOCat.isEquivalent (huv : (u - v) =o[l] v) : u ~[l] v :=
+theorem IsLittleO.isEquivalent (huv : (u - v) =o[l] v) : u ~[l] v :=
   huv
-#align asymptotics.is_o.is_equivalent Asymptotics.IsOCat.isEquivalent
+#align asymptotics.is_o.is_equivalent Asymptotics.IsLittleO.isEquivalent
 
 theorem IsEquivalent.neg (huv : u ~[l] v) : (fun x => -u x) ~[l] fun x => -v x :=
   by
@@ -266,7 +266,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
         (eventually_eq.refl _ fun x => b x • v x)
     ext
     rw [Pi.mul_apply, mul_comm, mul_smul, ← smul_sub]
-  refine' (is_o_congr this.symm <| eventually_eq.rfl).mp ((is_O_refl b l).smul_isOCat _)
+  refine' (is_o_congr this.symm <| eventually_eq.rfl).mp ((is_O_refl b l).smul_isLittleO _)
   rcases huv.is_O.exists_pos with ⟨C, hC, hCuv⟩
   rw [is_equivalent] at *
   rw [is_o_iff] at *
@@ -364,6 +364,6 @@ open Asymptotics
 variable {α β : Type _} [NormedAddCommGroup β]
 
 theorem Filter.EventuallyEq.isEquivalent {u v : α → β} {l : Filter α} (h : u =ᶠ[l] v) : u ~[l] v :=
-  IsEquivalent.congr_right (isOCat_refl_left _ _) h
+  IsEquivalent.congr_right (isLittleO_refl_left _ _) h
 #align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalent
 
Diff
@@ -262,8 +262,8 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
   have :
     ((fun x : α => a x • u x) - fun x : α => b x • v x) =ᶠ[l] fun x => b x • (φ x • u x - v x) :=
     by
-    convert
-      (habφ.comp₂ (· • ·) <| eventually_eq.refl _ u).sub (eventually_eq.refl _ fun x => b x • v x)
+    convert(habφ.comp₂ (· • ·) <| eventually_eq.refl _ u).sub
+        (eventually_eq.refl _ fun x => b x • v x)
     ext
     rw [Pi.mul_apply, mul_comm, mul_smul, ← smul_sub]
   refine' (is_o_congr this.symm <| eventually_eq.rfl).mp ((is_O_refl b l).smul_isOCat _)
@@ -342,8 +342,8 @@ theorem IsEquivalent.tendsto_atTop_iff [OrderTopology β] (huv : u ~[l] v) :
 theorem IsEquivalent.tendsto_atBot [OrderTopology β] (huv : u ~[l] v) (hu : Tendsto u l atBot) :
     Tendsto v l atBot :=
   by
-  convert
-    tendsto_neg_at_top_at_bot.comp (huv.neg.tendsto_at_top <| tendsto_neg_at_bot_at_top.comp hu)
+  convert tendsto_neg_at_top_at_bot.comp
+      (huv.neg.tendsto_at_top <| tendsto_neg_at_bot_at_top.comp hu)
   ext
   simp
 #align asymptotics.is_equivalent.tendsto_at_bot Asymptotics.IsEquivalent.tendsto_atBot
Diff
@@ -280,7 +280,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
     calc
       ‖φ x - 1‖ * ‖u x‖ ≤ c / 2 / C * ‖u x‖ :=
         mul_le_mul_of_nonneg_right hφx.le (norm_nonneg <| u x)
-      _ ≤ c / 2 / C * (C * ‖v x‖) := mul_le_mul_of_nonneg_left hCuvx (div_pos (by linarith) hC).le
+      _ ≤ c / 2 / C * (C * ‖v x‖) := (mul_le_mul_of_nonneg_left hCuvx (div_pos (by linarith) hC).le)
       _ = c / 2 * ‖v x‖ := by
         field_simp [hC.ne.symm]
         ring
@@ -288,10 +288,10 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
   calc
     ‖((fun x : α => φ x • u x) - v) x‖ = ‖(φ x - 1) • u x + (u x - v x)‖ := by
       simp [sub_smul, sub_add]
-    _ ≤ ‖(φ x - 1) • u x‖ + ‖u x - v x‖ := norm_add_le _ _
+    _ ≤ ‖(φ x - 1) • u x‖ + ‖u x - v x‖ := (norm_add_le _ _)
     _ = ‖φ x - 1‖ * ‖u x‖ + ‖u x - v x‖ := by rw [norm_smul]
-    _ ≤ c / 2 * ‖v x‖ + ‖u x - v x‖ := add_le_add_right key _
-    _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := add_le_add_left huvx _
+    _ ≤ c / 2 * ‖v x‖ + ‖u x - v x‖ := (add_le_add_right key _)
+    _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := (add_le_add_left huvx _)
     _ = c * ‖v x‖ := by ring
     
 #align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smul

Changes in mathlib4

mathlib3
mathlib4
chore: superfluous parentheses part 2 (#12131)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -274,7 +274,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type*} [NormedField 𝕜] [NormedAddCommG
   calc
     ‖((fun x : α ↦ φ x • u x) - v) x‖ = ‖(φ x - 1) • u x + (u x - v x)‖ := by
       simp [sub_smul, sub_add]
-    _ ≤ ‖(φ x - 1) • u x‖ + ‖u x - v x‖ := (norm_add_le _ _)
+    _ ≤ ‖(φ x - 1) • u x‖ + ‖u x - v x‖ := norm_add_le _ _
     _ = ‖φ x - 1‖ * ‖u x‖ + ‖u x - v x‖ := by rw [norm_smul]
     _ ≤ c / 2 * ‖v x‖ + ‖u x - v x‖ := by gcongr
     _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := by gcongr; exact huvx
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -218,7 +218,7 @@ theorem IsEquivalent.exists_eq_mul (huv : u ~[l] v) :
 theorem isEquivalent_of_tendsto_one (hz : ∀ᶠ x in l, v x = 0 → u x = 0)
     (huv : Tendsto (u / v) l (𝓝 1)) : u ~[l] v := by
   rw [isEquivalent_iff_exists_eq_mul]
-  refine' ⟨u / v, huv, hz.mono fun x hz' ↦ (div_mul_cancel_of_imp hz').symm⟩
+  exact ⟨u / v, huv, hz.mono fun x hz' ↦ (div_mul_cancel_of_imp hz').symm⟩
 #align asymptotics.is_equivalent_of_tendsto_one Asymptotics.isEquivalent_of_tendsto_one
 
 theorem isEquivalent_of_tendsto_one' (hz : ∀ x, v x = 0 → u x = 0) (huv : Tendsto (u / v) l (𝓝 1)) :
doc: @[inherit_doc] on notations (#9942)

Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it.

Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port.

This PR is only intended as a first pass There are many more docstrings to add.

Diff
@@ -74,7 +74,7 @@ def IsEquivalent (l : Filter α) (u v : α → β) :=
   (u - v) =o[l] v
 #align asymptotics.is_equivalent Asymptotics.IsEquivalent
 
-scoped notation:50 u " ~[" l:50 "] " v:50 => Asymptotics.IsEquivalent l u v
+@[inherit_doc] scoped notation:50 u " ~[" l:50 "] " v:50 => Asymptotics.IsEquivalent l u v
 
 variable {u v w : α → β} {l : Filter α}
 
chore(Topology/Basic): re-use variables; rename a : X to x : X (#9993)

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -141,10 +141,10 @@ theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) :
     u ~[l] const _ c ↔ Tendsto u l (𝓝 c) := by
   simp (config := { unfoldPartialApp := true }) only [IsEquivalent, const, isLittleO_const_iff h]
   constructor <;> intro h
-  · have := h.sub (tendsto_const_nhds (a := -c))
+  · have := h.sub (tendsto_const_nhds (x := -c))
     simp only [Pi.sub_apply, sub_neg_eq_add, sub_add_cancel, zero_add] at this
     exact this
-  · have := h.sub (tendsto_const_nhds (a := c))
+  · have := h.sub (tendsto_const_nhds (x := c))
     rwa [sub_self] at this
 #align asymptotics.is_equivalent_const_iff_tendsto Asymptotics.isEquivalent_const_iff_tendsto
 
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -242,7 +242,7 @@ theorem isEquivalent_iff_tendsto_one (hz : ∀ᶠ x in l, v x ≠ 0) :
 
 end NormedField
 
-section Smul
+section SMul
 
 theorem IsEquivalent.smul {α E 𝕜 : Type*} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
     {a b : α → 𝕜} {u v : α → E} {l : Filter α} (hab : a ~[l] b) (huv : u ~[l] v) :
@@ -281,7 +281,7 @@ theorem IsEquivalent.smul {α E 𝕜 : Type*} [NormedField 𝕜] [NormedAddCommG
     _ = c * ‖v x‖ := by ring
 #align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smul
 
-end Smul
+end SMul
 
 section mul_inv
 
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -139,7 +139,7 @@ set_option linter.uppercaseLean3 false in
 
 theorem isEquivalent_const_iff_tendsto {c : β} (h : c ≠ 0) :
     u ~[l] const _ c ↔ Tendsto u l (𝓝 c) := by
-  simp_rw [IsEquivalent, const, isLittleO_const_iff h]
+  simp (config := { unfoldPartialApp := true }) only [IsEquivalent, const, isLittleO_const_iff h]
   constructor <;> intro h
   · have := h.sub (tendsto_const_nhds (a := -c))
     simp only [Pi.sub_apply, sub_neg_eq_add, sub_add_cancel, zero_add] at this
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
@@ -66,7 +66,7 @@ open Topology
 
 section NormedAddCommGroup
 
-variable {α β : Type _} [NormedAddCommGroup β]
+variable {α β : Type*} [NormedAddCommGroup β]
 
 /-- Two functions `u` and `v` are said to be asymptotically equivalent along a filter `l` when
     `u x - v x = o(v x)` as `x` converges along `l`. -/
@@ -196,7 +196,7 @@ open Asymptotics
 
 section NormedField
 
-variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
+variable {α β : Type*} [NormedField β] {t u v w : α → β} {l : Filter α}
 
 theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β) (_ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v := by
@@ -244,7 +244,7 @@ end NormedField
 
 section Smul
 
-theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
+theorem IsEquivalent.smul {α E 𝕜 : Type*} [NormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
     {a b : α → 𝕜} {u v : α → E} {l : Filter α} (hab : a ~[l] b) (huv : u ~[l] v) :
     (fun x ↦ a x • u x) ~[l] fun x ↦ b x • v x := by
   rcases hab.exists_eq_mul with ⟨φ, hφ, habφ⟩
@@ -285,7 +285,7 @@ end Smul
 
 section mul_inv
 
-variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
+variable {α β : Type*} [NormedField β] {t u v w : α → β} {l : Filter α}
 
 theorem IsEquivalent.mul (htu : t ~[l] u) (hvw : v ~[l] w) : t * v ~[l] u * w :=
   htu.smul hvw
@@ -309,7 +309,7 @@ end mul_inv
 
 section NormedLinearOrderedField
 
-variable {α β : Type _} [NormedLinearOrderedField β] {u v : α → β} {l : Filter α}
+variable {α β : Type*} [NormedLinearOrderedField β] {u v : α → β} {l : Filter α}
 
 theorem IsEquivalent.tendsto_atTop [OrderTopology β] (huv : u ~[l] v) (hu : Tendsto u l atTop) :
     Tendsto v l atTop :=
@@ -342,7 +342,7 @@ open Filter Asymptotics
 
 open Asymptotics
 
-variable {α β β₂ : Type _} [NormedAddCommGroup β] [Norm β₂] {l : Filter α}
+variable {α β β₂ : Type*} [NormedAddCommGroup β] [Norm β₂] {l : Filter α}
 
 theorem Filter.EventuallyEq.isEquivalent {u v : α → β} (h : u =ᶠ[l] v) : u ~[l] v :=
   IsEquivalent.congr_right (isLittleO_refl_left _ _) h
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) 2020 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module analysis.asymptotics.asymptotic_equivalent
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Asymptotics.Asymptotics
 import Mathlib.Analysis.Asymptotics.Theta
 import Mathlib.Analysis.Normed.Order.Basic
 
+#align_import analysis.asymptotics.asymptotic_equivalent from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
 /-!
 # Asymptotic equivalence
 
feat(Analysis/Asymptotics/AsymptoticEquivalent): add Trans instances for IsEquivalent (#5572)

This PR adds several Trans instances for the IsEquivalent relation, and a few missing lemmas on the same topic.

Co-authored-by: Frédéric Dupuis <31101893+dupuisf@users.noreply.github.com>

Diff
@@ -9,6 +9,7 @@ Authors: Anatole Dedecker
 ! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Asymptotics.Asymptotics
+import Mathlib.Analysis.Asymptotics.Theta
 import Mathlib.Analysis.Normed.Order.Basic
 
 /-!
@@ -94,6 +95,12 @@ theorem IsEquivalent.isBigO_symm (h : u ~[l] v) : v =O[l] u := by
 set_option linter.uppercaseLean3 false in
 #align asymptotics.is_equivalent.is_O_symm Asymptotics.IsEquivalent.isBigO_symm
 
+theorem IsEquivalent.isTheta (h : u ~[l] v) : u =Θ[l] v :=
+  ⟨h.isBigO, h.isBigO_symm⟩
+
+theorem IsEquivalent.isTheta_symm (h : u ~[l] v) : v =Θ[l] u :=
+  ⟨h.isBigO_symm, h.isBigO⟩
+
 @[refl]
 theorem IsEquivalent.refl : u ~[l] u := by
   rw [IsEquivalent, sub_self]
@@ -338,8 +345,88 @@ open Filter Asymptotics
 
 open Asymptotics
 
-variable {α β : Type _} [NormedAddCommGroup β]
+variable {α β β₂ : Type _} [NormedAddCommGroup β] [Norm β₂] {l : Filter α}
 
-theorem Filter.EventuallyEq.isEquivalent {u v : α → β} {l : Filter α} (h : u =ᶠ[l] v) : u ~[l] v :=
+theorem Filter.EventuallyEq.isEquivalent {u v : α → β} (h : u =ᶠ[l] v) : u ~[l] v :=
   IsEquivalent.congr_right (isLittleO_refl_left _ _) h
 #align filter.eventually_eq.is_equivalent Filter.EventuallyEq.isEquivalent
+
+@[trans]
+theorem Filter.EventuallyEq.trans_isEquivalent {f g₁ g₂ : α → β} (h : f =ᶠ[l] g₁)
+    (h₂ : g₁ ~[l] g₂) : f ~[l] g₂ :=
+  h.isEquivalent.trans h₂
+
+namespace Asymptotics
+
+instance transIsEquivalentIsEquivalent :
+    @Trans (α → β) (α → β) (α → β) (IsEquivalent l) (IsEquivalent l) (IsEquivalent l) where
+  trans := IsEquivalent.trans
+
+instance transEventuallyEqIsEquivalent :
+    @Trans (α → β) (α → β) (α → β) (EventuallyEq l) (IsEquivalent l) (IsEquivalent l) where
+  trans := EventuallyEq.trans_isEquivalent
+
+@[trans]
+theorem IsEquivalent.trans_eventuallyEq {f g₁ g₂ : α → β} (h : f ~[l] g₁)
+    (h₂ : g₁ =ᶠ[l] g₂) : f ~[l] g₂ :=
+  h.trans h₂.isEquivalent
+
+instance transIsEquivalentEventuallyEq :
+    @Trans (α → β) (α → β) (α → β) (IsEquivalent l) (EventuallyEq l) (IsEquivalent l) where
+  trans := IsEquivalent.trans_eventuallyEq
+
+@[trans]
+theorem IsEquivalent.trans_isBigO {f g₁ : α → β} {g₂ : α → β₂} (h : f ~[l] g₁) (h₂ : g₁ =O[l] g₂) :
+    f =O[l] g₂ :=
+  IsBigO.trans h.isBigO h₂
+
+instance transIsEquivalentIsBigO :
+    @Trans (α → β) (α → β) (α → β₂) (IsEquivalent l) (IsBigO l) (IsBigO l) where
+  trans := IsEquivalent.trans_isBigO
+
+@[trans]
+theorem IsBigO.trans_isEquivalent {f : α → β₂} {g₁ g₂ : α → β} (h : f =O[l] g₁) (h₂ : g₁ ~[l] g₂) :
+    f =O[l] g₂ :=
+  IsBigO.trans h h₂.isBigO
+
+instance transIsBigOIsEquivalent :
+    @Trans (α → β₂) (α → β) (α → β) (IsBigO l) (IsEquivalent l) (IsBigO l) where
+  trans := IsBigO.trans_isEquivalent
+
+@[trans]
+theorem IsEquivalent.trans_isLittleO {f g₁ : α → β} {g₂ : α → β₂} (h : f ~[l] g₁)
+    (h₂ : g₁ =o[l] g₂) : f =o[l] g₂ :=
+  IsBigO.trans_isLittleO h.isBigO h₂
+
+instance transIsEquivalentIsLittleO :
+    @Trans (α → β) (α → β) (α → β₂) (IsEquivalent l) (IsLittleO l) (IsLittleO l) where
+  trans := IsEquivalent.trans_isLittleO
+
+@[trans]
+theorem IsLittleO.trans_isEquivalent {f : α → β₂} {g₁ g₂ : α → β} (h : f =o[l] g₁)
+    (h₂ : g₁ ~[l] g₂) : f =o[l] g₂ :=
+  IsLittleO.trans_isBigO h h₂.isBigO
+
+instance transIsLittleOIsEquivalent :
+    @Trans (α → β₂) (α → β) (α → β) (IsLittleO l) (IsEquivalent l) (IsLittleO l) where
+  trans := IsLittleO.trans_isEquivalent
+
+@[trans]
+theorem IsEquivalent.trans_isTheta {f g₁ : α → β} {g₂ : α → β₂} (h : f ~[l] g₁)
+    (h₂ : g₁ =Θ[l] g₂) : f =Θ[l] g₂ :=
+  IsTheta.trans h.isTheta h₂
+
+instance transIsEquivalentIsTheta :
+    @Trans (α → β) (α → β) (α → β₂) (IsEquivalent l) (IsTheta l) (IsTheta l) where
+  trans := IsEquivalent.trans_isTheta
+
+@[trans]
+theorem IsTheta.trans_isEquivalent {f : α → β₂} {g₁ g₂ : α → β} (h : f =Θ[l] g₁)
+    (h₂ : g₁ ~[l] g₂) : f =Θ[l] g₂ :=
+  IsTheta.trans h h₂.isTheta
+
+instance transIsThetaIsEquivalent :
+    @Trans (α → β₂) (α → β) (α → β) (IsTheta l) (IsEquivalent l) (IsTheta l) where
+  trans := IsTheta.trans_isEquivalent
+
+end Asymptotics
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -154,9 +154,9 @@ theorem IsEquivalent.tendsto_nhds {c : β} (huv : u ~[l] v) (hu : Tendsto u l (
     Tendsto v l (𝓝 c) := by
   by_cases h : c = 0
   · subst c
-    rw [← isLittleO_one_iff ℝ] at hu⊢
+    rw [← isLittleO_one_iff ℝ] at hu ⊢
     simpa using (huv.symm.isLittleO.trans hu).add hu
-  · rw [← isEquivalent_const_iff_tendsto h] at hu⊢
+  · rw [← isEquivalent_const_iff_tendsto h] at hu ⊢
     exact huv.symm.trans hu
 #align asymptotics.is_equivalent.tendsto_nhds Asymptotics.IsEquivalent.tendsto_nhds
 
feat: golf using gcongr throughout the library (#4702)

100 sample uses of the new tactic gcongr, added in #3965.

Diff
@@ -262,10 +262,8 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
   refine' hφ.mp (huv.mp <| hCuv.mono fun x hCuvx huvx hφx ↦ _)
   have key :=
     calc
-      ‖φ x - 1‖ * ‖u x‖ ≤ c / 2 / C * ‖u x‖ :=
-        mul_le_mul_of_nonneg_right hφx.le (norm_nonneg <| u x)
-      _ ≤ c / 2 / C * (C * ‖v x‖) :=
-        (mul_le_mul_of_nonneg_left hCuvx (div_pos (div_pos hc zero_lt_two) hC).le)
+      ‖φ x - 1‖ * ‖u x‖ ≤ c / 2 / C * ‖u x‖ := by gcongr
+      _ ≤ c / 2 / C * (C * ‖v x‖) := by gcongr
       _ = c / 2 * ‖v x‖ := by
         field_simp [hC.ne.symm]
         ring
@@ -274,8 +272,8 @@ theorem IsEquivalent.smul {α E 𝕜 : Type _} [NormedField 𝕜] [NormedAddComm
       simp [sub_smul, sub_add]
     _ ≤ ‖(φ x - 1) • u x‖ + ‖u x - v x‖ := (norm_add_le _ _)
     _ = ‖φ x - 1‖ * ‖u x‖ + ‖u x - v x‖ := by rw [norm_smul]
-    _ ≤ c / 2 * ‖v x‖ + ‖u x - v x‖ := (add_le_add_right key _)
-    _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := (add_le_add_left huvx _)
+    _ ≤ c / 2 * ‖v x‖ + ‖u x - v x‖ := by gcongr
+    _ ≤ c / 2 * ‖v x‖ + c / 2 * ‖v x‖ := by gcongr; exact huvx
     _ = c * ‖v x‖ := by ring
 #align asymptotics.is_equivalent.smul Asymptotics.IsEquivalent.smul
 
chore: update std 05-22 (#4248)

The main breaking change is that tac <;> [t1, t2] is now written tac <;> [t1; t2], to avoid clashing with tactics like cases and use that take comma-separated lists.

Diff
@@ -197,7 +197,7 @@ variable {α β : Type _} [NormedField β] {t u v w : α → β} {l : Filter α}
 theorem isEquivalent_iff_exists_eq_mul :
     u ~[l] v ↔ ∃ (φ : α → β) (_ : Tendsto φ l (𝓝 1)), u =ᶠ[l] φ * v := by
   rw [IsEquivalent, isLittleO_iff_exists_eq_mul]
-  constructor <;> rintro ⟨φ, hφ, h⟩ <;> [refine' ⟨φ + 1, _, _⟩, refine' ⟨φ - 1, _, _⟩]
+  constructor <;> rintro ⟨φ, hφ, h⟩ <;> [refine' ⟨φ + 1, _, _⟩; refine' ⟨φ - 1, _, _⟩]
   · conv in 𝓝 _ => rw [← zero_add (1 : β)]
     exact hφ.add tendsto_const_nhds
   · convert h.add (EventuallyEq.refl l v) <;> simp [add_mul]
feat: port Analysis.Asymptotics.AsymptoticEquivalent (#3417)

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: ADedecker <anatolededecker@gmail.com>

Dependencies 10 + 615

616 files ported (98.4%)
271162 lines ported (98.1%)
Show graph

The unported dependencies are

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