order.filter.archimedean
⟷
Mathlib.Order.Filter.Archimedean
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -33,18 +33,18 @@ theorem Nat.comap_cast_atTop [StrictOrderedSemiring R] [Archimedean R] :
#align nat.comap_coe_at_top Nat.comap_cast_atTop
-/
-#print tendsto_nat_cast_atTop_iff /-
-theorem tendsto_nat_cast_atTop_iff [StrictOrderedSemiring R] [Archimedean R] {f : α → ℕ}
+#print tendsto_natCast_atTop_iff /-
+theorem tendsto_natCast_atTop_iff [StrictOrderedSemiring R] [Archimedean R] {f : α → ℕ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop :=
tendsto_atTop_embedding (fun a₁ a₂ => Nat.cast_le) exists_nat_ge
-#align tendsto_coe_nat_at_top_iff tendsto_nat_cast_atTop_iff
+#align tendsto_coe_nat_at_top_iff tendsto_natCast_atTop_iff
-/
-#print tendsto_nat_cast_atTop_atTop /-
-theorem tendsto_nat_cast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
+#print tendsto_natCast_atTop_atTop /-
+theorem tendsto_natCast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
Tendsto (coe : ℕ → R) atTop atTop :=
Nat.mono_cast.tendsto_atTop_atTop exists_nat_ge
-#align tendsto_coe_nat_at_top_at_top tendsto_nat_cast_atTop_atTop
+#align tendsto_coe_nat_at_top_at_top tendsto_natCast_atTop_atTop
-/
#print Int.comap_cast_atTop /-
@@ -67,27 +67,27 @@ theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
#align int.comap_coe_at_bot Int.comap_cast_atBot
-/
-#print tendsto_int_cast_atTop_iff /-
-theorem tendsto_int_cast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
- {l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
+#print tendsto_intCast_atTop_iff /-
+theorem tendsto_intCast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ} {l : Filter α} :
+ Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← tendsto_comap_iff, Int.comap_cast_atTop]
-#align tendsto_coe_int_at_top_iff tendsto_int_cast_atTop_iff
+#align tendsto_coe_int_at_top_iff tendsto_intCast_atTop_iff
-/
-#print tendsto_int_cast_atBot_iff /-
-theorem tendsto_int_cast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
- {l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
+#print tendsto_intCast_atBot_iff /-
+theorem tendsto_intCast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ} {l : Filter α} :
+ Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← tendsto_comap_iff, Int.comap_cast_atBot]
-#align tendsto_coe_int_at_bot_iff tendsto_int_cast_atBot_iff
+#align tendsto_coe_int_at_bot_iff tendsto_intCast_atBot_iff
-/
-#print tendsto_int_cast_atTop_atTop /-
-theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
+#print tendsto_intCast_atTop_atTop /-
+theorem tendsto_intCast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
Tendsto (coe : ℤ → R) atTop atTop :=
Int.cast_mono.tendsto_atTop_atTop fun b =>
let ⟨n, hn⟩ := exists_nat_ge b
⟨n, by exact_mod_cast hn⟩
-#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTop
+#align tendsto_coe_int_at_top_at_top tendsto_intCast_atTop_atTop
-/
#print Rat.comap_cast_atTop /-
@@ -110,18 +110,18 @@ theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
#align rat.comap_coe_at_bot Rat.comap_cast_atBot
-/
-#print tendsto_rat_cast_atTop_iff /-
-theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
+#print tendsto_ratCast_atTop_iff /-
+theorem tendsto_ratCast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← tendsto_comap_iff, Rat.comap_cast_atTop]
-#align tendsto_coe_rat_at_top_iff tendsto_rat_cast_atTop_iff
+#align tendsto_coe_rat_at_top_iff tendsto_ratCast_atTop_iff
-/
-#print tendsto_rat_cast_atBot_iff /-
-theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
+#print tendsto_ratCast_atBot_iff /-
+theorem tendsto_ratCast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← tendsto_comap_iff, Rat.comap_cast_atBot]
-#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iff
+#align tendsto_coe_rat_at_bot_iff tendsto_ratCast_atBot_iff
-/
#print atTop_hasCountableBasis_of_archimedean /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -182,7 +182,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
by
apply tendsto_at_top.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
- rw [nsmul_eq_mul'] at hn
+ rw [nsmul_eq_mul'] at hn
filter_upwards [tendsto_at_top.1 hf (n * max b 0)] with x hx
calc
b ≤ 1 * max b 0 := by rw [one_mul]; exact le_max_left _ _
@@ -202,7 +202,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
by
apply tendsto_at_top.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
- have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
+ have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
filter_upwards [tendsto_at_top.1 hf (max b 0 * n)] with x hx
calc
b ≤ max b 0 * 1 := by rw [mul_one]; exact le_max_left _ _
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -259,7 +259,7 @@ theorem Tendsto.atTop_nsmul_const {f : α → ℕ} (hr : 0 < r) (hf : Tendsto f
by
refine' tendsto_at_top.mpr fun s => _
obtain ⟨n : ℕ, hn : s ≤ n • r⟩ := Archimedean.arch s hr
- exact (tendsto_at_top.mp hf n).mono fun a ha => hn.trans (nsmul_le_nsmul hr.le ha)
+ exact (tendsto_at_top.mp hf n).mono fun a ha => hn.trans (nsmul_le_nsmul_left hr.le ha)
#align filter.tendsto.at_top_nsmul_const Filter.Tendsto.atTop_nsmul_const
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2019 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-/
-import Mathbin.Algebra.Order.Archimedean
-import Mathbin.Order.Filter.AtTopBot
+import Algebra.Order.Archimedean
+import Order.Filter.AtTopBot
#align_import order.filter.archimedean from "leanprover-community/mathlib"@"4d392a6c9c4539cbeca399b3ee0afea398fbd2eb"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2019 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-
-! This file was ported from Lean 3 source module order.filter.archimedean
-! leanprover-community/mathlib commit 4d392a6c9c4539cbeca399b3ee0afea398fbd2eb
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Order.Archimedean
import Mathbin.Order.Filter.AtTopBot
+#align_import order.filter.archimedean from "leanprover-community/mathlib"@"4d392a6c9c4539cbeca399b3ee0afea398fbd2eb"
+
/-!
# `at_top` filter and archimedean (semi)rings/fields
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -50,6 +50,7 @@ theorem tendsto_nat_cast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
#align tendsto_coe_nat_at_top_at_top tendsto_nat_cast_atTop_atTop
-/
+#print Int.comap_cast_atTop /-
@[simp]
theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
comap (coe : ℤ → R) atTop = atTop :=
@@ -57,7 +58,9 @@ theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
let ⟨n, hn⟩ := exists_nat_ge r
⟨n, by exact_mod_cast hn⟩
#align int.comap_coe_at_top Int.comap_cast_atTop
+-/
+#print Int.comap_cast_atBot /-
@[simp]
theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
comap (coe : ℤ → R) atBot = atBot :=
@@ -65,24 +68,32 @@ theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
let ⟨n, hn⟩ := exists_nat_ge (-r)
⟨-n, by simpa [neg_le] using hn⟩
#align int.comap_coe_at_bot Int.comap_cast_atBot
+-/
+#print tendsto_int_cast_atTop_iff /-
theorem tendsto_int_cast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← tendsto_comap_iff, Int.comap_cast_atTop]
#align tendsto_coe_int_at_top_iff tendsto_int_cast_atTop_iff
+-/
+#print tendsto_int_cast_atBot_iff /-
theorem tendsto_int_cast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← tendsto_comap_iff, Int.comap_cast_atBot]
#align tendsto_coe_int_at_bot_iff tendsto_int_cast_atBot_iff
+-/
+#print tendsto_int_cast_atTop_atTop /-
theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
Tendsto (coe : ℤ → R) atTop atTop :=
Int.cast_mono.tendsto_atTop_atTop fun b =>
let ⟨n, hn⟩ := exists_nat_ge b
⟨n, by exact_mod_cast hn⟩
#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTop
+-/
+#print Rat.comap_cast_atTop /-
@[simp]
theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
comap (coe : ℚ → R) atTop = atTop :=
@@ -90,7 +101,9 @@ theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
let ⟨n, hn⟩ := exists_nat_ge r
⟨n, by simpa⟩
#align rat.comap_coe_at_top Rat.comap_cast_atTop
+-/
+#print Rat.comap_cast_atBot /-
@[simp]
theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
comap (coe : ℚ → R) atBot = atBot :=
@@ -98,17 +111,23 @@ theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
let ⟨n, hn⟩ := exists_nat_ge (-r)
⟨-n, by simpa [neg_le]⟩
#align rat.comap_coe_at_bot Rat.comap_cast_atBot
+-/
+#print tendsto_rat_cast_atTop_iff /-
theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← tendsto_comap_iff, Rat.comap_cast_atTop]
#align tendsto_coe_rat_at_top_iff tendsto_rat_cast_atTop_iff
+-/
+#print tendsto_rat_cast_atBot_iff /-
theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← tendsto_comap_iff, Rat.comap_cast_atBot]
#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iff
+-/
+#print atTop_hasCountableBasis_of_archimedean /-
theorem atTop_hasCountableBasis_of_archimedean [LinearOrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasCountableBasis (fun n : ℕ => True) fun n => Ici n :=
{ Countable := to_countable _
@@ -119,7 +138,9 @@ theorem atTop_hasCountableBasis_of_archimedean [LinearOrderedSemiring R] [Archim
⟨n, trivial, Ici_subset_Ici.2 hn⟩)
fun n hn => ⟨n, trivial, Subset.rfl⟩ }
#align at_top_countable_basis_of_archimedean atTop_hasCountableBasis_of_archimedean
+-/
+#print atBot_hasCountableBasis_of_archimedean /-
theorem atBot_hasCountableBasis_of_archimedean [LinearOrderedRing R] [Archimedean R] :
(atBot : Filter R).HasCountableBasis (fun m : ℤ => True) fun m => Iic m :=
{ Countable := to_countable _
@@ -130,11 +151,14 @@ theorem atBot_hasCountableBasis_of_archimedean [LinearOrderedRing R] [Archimedea
⟨m, trivial, Iic_subset_Iic.2 hm.le⟩)
fun m hm => ⟨m, trivial, Subset.rfl⟩ }
#align at_bot_countable_basis_of_archimedean atBot_hasCountableBasis_of_archimedean
+-/
+#print atTop_isCountablyGenerated_of_archimedean /-
instance (priority := 100) atTop_isCountablyGenerated_of_archimedean [LinearOrderedSemiring R]
[Archimedean R] : (atTop : Filter R).IsCountablyGenerated :=
atTop_hasCountableBasis_of_archimedean.IsCountablyGenerated
#align at_top_countably_generated_of_archimedean atTop_isCountablyGenerated_of_archimedean
+-/
#print atBot_isCountablyGenerated_of_archimedean /-
instance (priority := 100) atBot_isCountablyGenerated_of_archimedean [LinearOrderedRing R]
@@ -151,6 +175,7 @@ section LinearOrderedSemiring
variable [LinearOrderedSemiring R] [Archimedean R]
+#print Filter.Tendsto.const_mul_atTop' /-
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
constant (on the left) also tends to infinity. The archimedean assumption is convenient to get a
statement that works on `ℕ`, `ℤ` and `ℝ`, although not necessary (a version in ordered fields is
@@ -168,7 +193,9 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
_ = r * (n * max b 0) := by rw [mul_assoc]
_ ≤ r * f x := mul_le_mul_of_nonneg_left hx (le_of_lt hr)
#align filter.tendsto.const_mul_at_top' Filter.Tendsto.const_mul_atTop'
+-/
+#print Filter.Tendsto.atTop_mul_const' /-
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
constant (on the right) also tends to infinity. The archimedean assumption is convenient to get a
statement that works on `ℕ`, `ℤ` and `ℝ`, although not necessary (a version in ordered fields is
@@ -186,6 +213,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
_ = max b 0 * n * r := by rw [mul_assoc]
_ ≤ f x * r := mul_le_mul_of_nonneg_right hx (le_of_lt hr)
#align filter.tendsto.at_top_mul_const' Filter.Tendsto.atTop_mul_const'
+-/
end LinearOrderedSemiring
@@ -193,13 +221,16 @@ section LinearOrderedRing
variable [LinearOrderedRing R] [Archimedean R]
+#print Filter.Tendsto.atTop_mul_neg_const' /-
/-- See also `filter.tendsto.at_top_mul_neg_const` for a version of this lemma for
`linear_ordered_field`s which does not require the `archimedean` assumption. -/
theorem Tendsto.atTop_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x * r) l atBot := by
simpa only [tendsto_neg_at_top_iff, mul_neg] using hf.at_top_mul_const' (neg_pos.mpr hr)
#align filter.tendsto.at_top_mul_neg_const' Filter.Tendsto.atTop_mul_neg_const'
+-/
+#print Filter.Tendsto.atBot_mul_const' /-
/-- See also `filter.tendsto.at_bot_mul_const` for a version of this lemma for
`linear_ordered_field`s which does not require the `archimedean` assumption. -/
theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
@@ -208,13 +239,16 @@ theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
simp only [← tendsto_neg_at_top_iff, ← neg_mul] at hf ⊢
exact hf.at_top_mul_const' hr
#align filter.tendsto.at_bot_mul_const' Filter.Tendsto.atBot_mul_const'
+-/
+#print Filter.Tendsto.atBot_mul_neg_const' /-
/-- See also `filter.tendsto.at_bot_mul_neg_const` for a version of this lemma for
`linear_ordered_field`s which does not require the `archimedean` assumption. -/
theorem Tendsto.atBot_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x * r) l atTop := by
simpa only [mul_neg, tendsto_neg_at_bot_iff] using hf.at_bot_mul_const' (neg_pos.2 hr)
#align filter.tendsto.at_bot_mul_neg_const' Filter.Tendsto.atBot_mul_neg_const'
+-/
end LinearOrderedRing
@@ -222,6 +256,7 @@ section LinearOrderedCancelAddCommMonoid
variable [LinearOrderedCancelAddCommMonoid R] [Archimedean R]
+#print Filter.Tendsto.atTop_nsmul_const /-
theorem Tendsto.atTop_nsmul_const {f : α → ℕ} (hr : 0 < r) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atTop :=
by
@@ -229,6 +264,7 @@ theorem Tendsto.atTop_nsmul_const {f : α → ℕ} (hr : 0 < r) (hf : Tendsto f
obtain ⟨n : ℕ, hn : s ≤ n • r⟩ := Archimedean.arch s hr
exact (tendsto_at_top.mp hf n).mono fun a ha => hn.trans (nsmul_le_nsmul hr.le ha)
#align filter.tendsto.at_top_nsmul_const Filter.Tendsto.atTop_nsmul_const
+-/
end LinearOrderedCancelAddCommMonoid
@@ -236,10 +272,13 @@ section LinearOrderedAddCommGroup
variable [LinearOrderedAddCommGroup R] [Archimedean R]
+#print Filter.Tendsto.atTop_nsmul_neg_const /-
theorem Tendsto.atTop_nsmul_neg_const {f : α → ℕ} (hr : r < 0) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atBot := by simpa using hf.at_top_nsmul_const (neg_pos.2 hr)
#align filter.tendsto.at_top_nsmul_neg_const Filter.Tendsto.atTop_nsmul_neg_const
+-/
+#print Filter.Tendsto.atTop_zsmul_const /-
theorem Tendsto.atTop_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atTop :=
by
@@ -248,21 +287,28 @@ theorem Tendsto.atTop_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f
replace hn : s ≤ (n : ℤ) • r; · simpa
exact (tendsto_at_top.mp hf n).mono fun a ha => hn.trans (zsmul_le_zsmul hr.le ha)
#align filter.tendsto.at_top_zsmul_const Filter.Tendsto.atTop_zsmul_const
+-/
+#print Filter.Tendsto.atTop_zsmul_neg_const /-
theorem Tendsto.atTop_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atBot := by simpa using hf.at_top_zsmul_const (neg_pos.2 hr)
#align filter.tendsto.at_top_zsmul_neg_const Filter.Tendsto.atTop_zsmul_neg_const
+-/
+#print Filter.Tendsto.atBot_zsmul_const /-
theorem Tendsto.atBot_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x • r) l atBot :=
by
simp only [← tendsto_neg_at_top_iff, ← neg_zsmul] at hf ⊢
exact hf.at_top_zsmul_const hr
#align filter.tendsto.at_bot_zsmul_const Filter.Tendsto.atBot_zsmul_const
+-/
+#print Filter.Tendsto.atBot_zsmul_neg_const /-
theorem Tendsto.atBot_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x • r) l atTop := by simpa using hf.at_bot_zsmul_const (neg_pos.2 hr)
#align filter.tendsto.at_bot_zsmul_neg_const Filter.Tendsto.atBot_zsmul_neg_const
+-/
end LinearOrderedAddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -167,7 +167,6 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
_ ≤ r * n * max b 0 := (mul_le_mul_of_nonneg_right hn (le_max_right _ _))
_ = r * (n * max b 0) := by rw [mul_assoc]
_ ≤ r * f x := mul_le_mul_of_nonneg_left hx (le_of_lt hr)
-
#align filter.tendsto.const_mul_at_top' Filter.Tendsto.const_mul_atTop'
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
@@ -186,7 +185,6 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
_ ≤ max b 0 * (n * r) := (mul_le_mul_of_nonneg_left hn' (le_max_right _ _))
_ = max b 0 * n * r := by rw [mul_assoc]
_ ≤ f x * r := mul_le_mul_of_nonneg_right hx (le_of_lt hr)
-
#align filter.tendsto.at_top_mul_const' Filter.Tendsto.atTop_mul_const'
end LinearOrderedSemiring
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -161,7 +161,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
apply tendsto_at_top.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
rw [nsmul_eq_mul'] at hn
- filter_upwards [tendsto_at_top.1 hf (n * max b 0)]with x hx
+ filter_upwards [tendsto_at_top.1 hf (n * max b 0)] with x hx
calc
b ≤ 1 * max b 0 := by rw [one_mul]; exact le_max_left _ _
_ ≤ r * n * max b 0 := (mul_le_mul_of_nonneg_right hn (le_max_right _ _))
@@ -180,7 +180,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
apply tendsto_at_top.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
- filter_upwards [tendsto_at_top.1 hf (max b 0 * n)]with x hx
+ filter_upwards [tendsto_at_top.1 hf (max b 0 * n)] with x hx
calc
b ≤ max b 0 * 1 := by rw [mul_one]; exact le_max_left _ _
_ ≤ max b 0 * (n * r) := (mul_le_mul_of_nonneg_left hn' (le_max_right _ _))
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -96,7 +96,7 @@ theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
comap (coe : ℚ → R) atBot = atBot :=
comap_embedding_atBot (fun _ _ => Rat.cast_le) fun r =>
let ⟨n, hn⟩ := exists_nat_ge (-r)
- ⟨-n, by simpa [neg_le] ⟩
+ ⟨-n, by simpa [neg_le]⟩
#align rat.comap_coe_at_bot Rat.comap_cast_atBot
theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
@@ -160,7 +160,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
by
apply tendsto_at_top.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
- rw [nsmul_eq_mul'] at hn
+ rw [nsmul_eq_mul'] at hn
filter_upwards [tendsto_at_top.1 hf (n * max b 0)]with x hx
calc
b ≤ 1 * max b 0 := by rw [one_mul]; exact le_max_left _ _
@@ -179,7 +179,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
by
apply tendsto_at_top.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
- have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
+ have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
filter_upwards [tendsto_at_top.1 hf (max b 0 * n)]with x hx
calc
b ≤ max b 0 * 1 := by rw [mul_one]; exact le_max_left _ _
@@ -207,7 +207,7 @@ theorem Tendsto.atTop_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atTop) :
theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x * r) l atBot :=
by
- simp only [← tendsto_neg_at_top_iff, ← neg_mul] at hf⊢
+ simp only [← tendsto_neg_at_top_iff, ← neg_mul] at hf ⊢
exact hf.at_top_mul_const' hr
#align filter.tendsto.at_bot_mul_const' Filter.Tendsto.atBot_mul_const'
@@ -258,7 +258,7 @@ theorem Tendsto.atTop_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendst
theorem Tendsto.atBot_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x • r) l atBot :=
by
- simp only [← tendsto_neg_at_top_iff, ← neg_zsmul] at hf⊢
+ simp only [← tendsto_neg_at_top_iff, ← neg_zsmul] at hf ⊢
exact hf.at_top_zsmul_const hr
#align filter.tendsto.at_bot_zsmul_const Filter.Tendsto.atBot_zsmul_const
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -50,12 +50,6 @@ theorem tendsto_nat_cast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
#align tendsto_coe_nat_at_top_at_top tendsto_nat_cast_atTop_atTop
-/
-/- warning: int.comap_coe_at_top -> Int.comap_cast_atTop is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R _inst_1)))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))
-Case conversion may be inaccurate. Consider using '#align int.comap_coe_at_top Int.comap_cast_atTopₓ'. -/
@[simp]
theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
comap (coe : ℤ → R) atTop = atTop :=
@@ -64,12 +58,6 @@ theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
⟨n, by exact_mod_cast hn⟩
#align int.comap_coe_at_top Int.comap_cast_atTop
-/- warning: int.comap_coe_at_bot -> Int.comap_cast_atBot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))) (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R _inst_1)))) (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))
-Case conversion may be inaccurate. Consider using '#align int.comap_coe_at_bot Int.comap_cast_atBotₓ'. -/
@[simp]
theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
comap (coe : ℤ → R) atBot = atBot :=
@@ -78,34 +66,16 @@ theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
⟨-n, by simpa [neg_le] using hn⟩
#align int.comap_coe_at_bot Int.comap_cast_atBot
-/- warning: tendsto_coe_int_at_top_iff -> tendsto_int_cast_atTop_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int R (HasLiftT.mk.{1, succ u2} Int R (CoeTCₓ.coe.{1, succ u2} Int R (Int.castCoe.{u2} R (AddGroupWithOne.toHasIntCast.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1))))))) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R _inst_1))))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Int.cast.{u2} R (Ring.toIntCast.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1)) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R _inst_1)))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
-Case conversion may be inaccurate. Consider using '#align tendsto_coe_int_at_top_iff tendsto_int_cast_atTop_iffₓ'. -/
theorem tendsto_int_cast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← tendsto_comap_iff, Int.comap_cast_atTop]
#align tendsto_coe_int_at_top_iff tendsto_int_cast_atTop_iff
-/- warning: tendsto_coe_int_at_bot_iff -> tendsto_int_cast_atBot_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int R (HasLiftT.mk.{1, succ u2} Int R (CoeTCₓ.coe.{1, succ u2} Int R (Int.castCoe.{u2} R (AddGroupWithOne.toHasIntCast.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1))))))) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R _inst_1))))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Int.cast.{u2} R (Ring.toIntCast.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1)) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R _inst_1)))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
-Case conversion may be inaccurate. Consider using '#align tendsto_coe_int_at_bot_iff tendsto_int_cast_atBot_iffₓ'. -/
theorem tendsto_int_cast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← tendsto_comap_iff, Int.comap_cast_atBot]
#align tendsto_coe_int_at_bot_iff tendsto_int_cast_atBot_iff
-/- warning: tendsto_coe_int_at_top_at_top -> tendsto_int_cast_atTop_atTop is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.Tendsto.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.Tendsto.{0, u1} Int R (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTopₓ'. -/
theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
Tendsto (coe : ℤ → R) atTop atTop :=
Int.cast_mono.tendsto_atTop_atTop fun b =>
@@ -113,12 +83,6 @@ theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
⟨n, by exact_mod_cast hn⟩
#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTop
-/- warning: rat.comap_coe_at_top -> Rat.comap_cast_atTop is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u1} Rat R (CoeTCₓ.coe.{1, succ u1} Rat R (Rat.castCoe.{u1} R (DivisionRing.toHasRatCast.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))))) (Filter.atTop.{0} Rat Rat.preorder)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (OrderedCommSemiring.toOrderedSemiring.{u1} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R (Rat.cast.{u1} R (LinearOrderedField.toRatCast.{u1} R _inst_1)) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (Filter.atTop.{0} Rat Rat.instPreorderRat)
-Case conversion may be inaccurate. Consider using '#align rat.comap_coe_at_top Rat.comap_cast_atTopₓ'. -/
@[simp]
theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
comap (coe : ℚ → R) atTop = atTop :=
@@ -127,12 +91,6 @@ theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
⟨n, by simpa⟩
#align rat.comap_coe_at_top Rat.comap_cast_atTop
-/- warning: rat.comap_coe_at_bot -> Rat.comap_cast_atBot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u1} Rat R (CoeTCₓ.coe.{1, succ u1} Rat R (Rat.castCoe.{u1} R (DivisionRing.toHasRatCast.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))))) (Filter.atBot.{0} Rat Rat.preorder)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (OrderedCommSemiring.toOrderedSemiring.{u1} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R (Rat.cast.{u1} R (LinearOrderedField.toRatCast.{u1} R _inst_1)) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (Filter.atBot.{0} Rat Rat.instPreorderRat)
-Case conversion may be inaccurate. Consider using '#align rat.comap_coe_at_bot Rat.comap_cast_atBotₓ'. -/
@[simp]
theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
comap (coe : ℚ → R) atBot = atBot :=
@@ -141,34 +99,16 @@ theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
⟨-n, by simpa [neg_le] ⟩
#align rat.comap_coe_at_bot Rat.comap_cast_atBot
-/- warning: tendsto_coe_rat_at_top_iff -> tendsto_rat_cast_atTop_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u2} Rat R (CoeTCₓ.coe.{1, succ u2} Rat R (Rat.castCoe.{u2} R (DivisionRing.toHasRatCast.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atTop.{0} Rat Rat.preorder))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (OrderedCommSemiring.toOrderedSemiring.{u2} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Rat.cast.{u2} R (LinearOrderedField.toRatCast.{u2} R _inst_1) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atTop.{0} Rat Rat.instPreorderRat))
-Case conversion may be inaccurate. Consider using '#align tendsto_coe_rat_at_top_iff tendsto_rat_cast_atTop_iffₓ'. -/
theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← tendsto_comap_iff, Rat.comap_cast_atTop]
#align tendsto_coe_rat_at_top_iff tendsto_rat_cast_atTop_iff
-/- warning: tendsto_coe_rat_at_bot_iff -> tendsto_rat_cast_atBot_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u2} Rat R (CoeTCₓ.coe.{1, succ u2} Rat R (Rat.castCoe.{u2} R (DivisionRing.toHasRatCast.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atBot.{0} Rat Rat.preorder))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (OrderedCommSemiring.toOrderedSemiring.{u2} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Rat.cast.{u2} R (LinearOrderedField.toRatCast.{u2} R _inst_1) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atBot.{0} Rat Rat.instPreorderRat))
-Case conversion may be inaccurate. Consider using '#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iffₓ'. -/
theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← tendsto_comap_iff, Rat.comap_cast_atBot]
#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iff
-/- warning: at_top_countable_basis_of_archimedean -> atTop_hasCountableBasis_of_archimedean is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedSemiring.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.HasCountableBasis.{u1, 0} R Nat (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (fun (n : Nat) => True) (fun (n : Nat) => Set.Ici.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) n))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedSemiring.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R _inst_1))], Filter.HasCountableBasis.{u1, 0} R Nat (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedSemiring.toPartialOrder.{u1} R _inst_1))) (fun (n : Nat) => True) (fun (n : Nat) => Set.Ici.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedSemiring.toPartialOrder.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R _inst_1)) n))
-Case conversion may be inaccurate. Consider using '#align at_top_countable_basis_of_archimedean atTop_hasCountableBasis_of_archimedeanₓ'. -/
theorem atTop_hasCountableBasis_of_archimedean [LinearOrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasCountableBasis (fun n : ℕ => True) fun n => Ici n :=
{ Countable := to_countable _
@@ -180,12 +120,6 @@ theorem atTop_hasCountableBasis_of_archimedean [LinearOrderedSemiring R] [Archim
fun n hn => ⟨n, trivial, Subset.rfl⟩ }
#align at_top_countable_basis_of_archimedean atTop_hasCountableBasis_of_archimedean
-/- warning: at_bot_countable_basis_of_archimedean -> atBot_hasCountableBasis_of_archimedean is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))))], Filter.HasCountableBasis.{u1, 0} R Int (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))))) (fun (m : Int) => True) (fun (m : Int) => Set.Iic.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))))))) m))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R _inst_1))))], Filter.HasCountableBasis.{u1, 0} R Int (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))) (fun (m : Int) => True) (fun (m : Int) => Set.Iic.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))) (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))) m))
-Case conversion may be inaccurate. Consider using '#align at_bot_countable_basis_of_archimedean atBot_hasCountableBasis_of_archimedeanₓ'. -/
theorem atBot_hasCountableBasis_of_archimedean [LinearOrderedRing R] [Archimedean R] :
(atBot : Filter R).HasCountableBasis (fun m : ℤ => True) fun m => Iic m :=
{ Countable := to_countable _
@@ -197,12 +131,6 @@ theorem atBot_hasCountableBasis_of_archimedean [LinearOrderedRing R] [Archimedea
fun m hm => ⟨m, trivial, Subset.rfl⟩ }
#align at_bot_countable_basis_of_archimedean atBot_hasCountableBasis_of_archimedean
-/- warning: at_top_countably_generated_of_archimedean -> atTop_isCountablyGenerated_of_archimedean is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedSemiring.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.IsCountablyGenerated.{u1} R (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedSemiring.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R _inst_1))], Filter.IsCountablyGenerated.{u1} R (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedSemiring.toPartialOrder.{u1} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align at_top_countably_generated_of_archimedean atTop_isCountablyGenerated_of_archimedeanₓ'. -/
instance (priority := 100) atTop_isCountablyGenerated_of_archimedean [LinearOrderedSemiring R]
[Archimedean R] : (atTop : Filter R).IsCountablyGenerated :=
atTop_hasCountableBasis_of_archimedean.IsCountablyGenerated
@@ -223,12 +151,6 @@ section LinearOrderedSemiring
variable [LinearOrderedSemiring R] [Archimedean R]
-/- warning: filter.tendsto.const_mul_at_top' -> Filter.Tendsto.const_mul_atTop' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) r (f x)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) r (f x)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.const_mul_at_top' Filter.Tendsto.const_mul_atTop'ₓ'. -/
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
constant (on the left) also tends to infinity. The archimedean assumption is convenient to get a
statement that works on `ℕ`, `ℤ` and `ℝ`, although not necessary (a version in ordered fields is
@@ -248,12 +170,6 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
#align filter.tendsto.const_mul_at_top' Filter.Tendsto.const_mul_atTop'
-/- warning: filter.tendsto.at_top_mul_const' -> Filter.Tendsto.atTop_mul_const' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_mul_const' Filter.Tendsto.atTop_mul_const'ₓ'. -/
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
constant (on the right) also tends to infinity. The archimedean assumption is convenient to get a
statement that works on `ℕ`, `ℤ` and `ℝ`, although not necessary (a version in ordered fields is
@@ -279,12 +195,6 @@ section LinearOrderedRing
variable [LinearOrderedRing R] [Archimedean R]
-/- warning: filter.tendsto.at_top_mul_neg_const' -> Filter.Tendsto.atTop_mul_neg_const' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1)))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_mul_neg_const' Filter.Tendsto.atTop_mul_neg_const'ₓ'. -/
/-- See also `filter.tendsto.at_top_mul_neg_const` for a version of this lemma for
`linear_ordered_field`s which does not require the `archimedean` assumption. -/
theorem Tendsto.atTop_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atTop) :
@@ -292,12 +202,6 @@ theorem Tendsto.atTop_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atTop) :
simpa only [tendsto_neg_at_top_iff, mul_neg] using hf.at_top_mul_const' (neg_pos.mpr hr)
#align filter.tendsto.at_top_mul_neg_const' Filter.Tendsto.atTop_mul_neg_const'
-/- warning: filter.tendsto.at_bot_mul_const' -> Filter.Tendsto.atBot_mul_const' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_mul_const' Filter.Tendsto.atBot_mul_const'ₓ'. -/
/-- See also `filter.tendsto.at_bot_mul_const` for a version of this lemma for
`linear_ordered_field`s which does not require the `archimedean` assumption. -/
theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
@@ -307,12 +211,6 @@ theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
exact hf.at_top_mul_const' hr
#align filter.tendsto.at_bot_mul_const' Filter.Tendsto.atBot_mul_const'
-/- warning: filter.tendsto.at_bot_mul_neg_const' -> Filter.Tendsto.atBot_mul_neg_const' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1)))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_mul_neg_const' Filter.Tendsto.atBot_mul_neg_const'ₓ'. -/
/-- See also `filter.tendsto.at_bot_mul_neg_const` for a version of this lemma for
`linear_ordered_field`s which does not require the `archimedean` assumption. -/
theorem Tendsto.atBot_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atBot) :
@@ -326,12 +224,6 @@ section LinearOrderedCancelAddCommMonoid
variable [LinearOrderedCancelAddCommMonoid R] [Archimedean R]
-/- warning: filter.tendsto.at_top_nsmul_const -> Filter.Tendsto.atTop_nsmul_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedCancelAddCommMonoid.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedCancelAddCommMonoid.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R _inst_1))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (AddRightCancelMonoid.toZero.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))))))) r) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Nat R R (instHSMul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_nsmul_const Filter.Tendsto.atTop_nsmul_constₓ'. -/
theorem Tendsto.atTop_nsmul_const {f : α → ℕ} (hr : 0 < r) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atTop :=
by
@@ -346,22 +238,10 @@ section LinearOrderedAddCommGroup
variable [LinearOrderedAddCommGroup R] [Archimedean R]
-/- warning: filter.tendsto.at_top_nsmul_neg_const -> Filter.Tendsto.atTop_nsmul_neg_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Nat R R (instHSMul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_nsmul_neg_const Filter.Tendsto.atTop_nsmul_neg_constₓ'. -/
theorem Tendsto.atTop_nsmul_neg_const {f : α → ℕ} (hr : r < 0) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atBot := by simpa using hf.at_top_nsmul_const (neg_pos.2 hr)
#align filter.tendsto.at_top_nsmul_neg_const Filter.Tendsto.atTop_nsmul_neg_const
-/- warning: filter.tendsto.at_top_zsmul_const -> Filter.Tendsto.atTop_zsmul_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_zsmul_const Filter.Tendsto.atTop_zsmul_constₓ'. -/
theorem Tendsto.atTop_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atTop :=
by
@@ -371,22 +251,10 @@ theorem Tendsto.atTop_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f
exact (tendsto_at_top.mp hf n).mono fun a ha => hn.trans (zsmul_le_zsmul hr.le ha)
#align filter.tendsto.at_top_zsmul_const Filter.Tendsto.atTop_zsmul_const
-/- warning: filter.tendsto.at_top_zsmul_neg_const -> Filter.Tendsto.atTop_zsmul_neg_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_zsmul_neg_const Filter.Tendsto.atTop_zsmul_neg_constₓ'. -/
theorem Tendsto.atTop_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendsto f l atTop) :
Tendsto (fun x => f x • r) l atBot := by simpa using hf.at_top_zsmul_const (neg_pos.2 hr)
#align filter.tendsto.at_top_zsmul_neg_const Filter.Tendsto.atTop_zsmul_neg_const
-/- warning: filter.tendsto.at_bot_zsmul_const -> Filter.Tendsto.atBot_zsmul_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_zsmul_const Filter.Tendsto.atBot_zsmul_constₓ'. -/
theorem Tendsto.atBot_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x • r) l atBot :=
by
@@ -394,12 +262,6 @@ theorem Tendsto.atBot_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f
exact hf.at_top_zsmul_const hr
#align filter.tendsto.at_bot_zsmul_const Filter.Tendsto.atBot_zsmul_const
-/- warning: filter.tendsto.at_bot_zsmul_neg_const -> Filter.Tendsto.atBot_zsmul_neg_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_zsmul_neg_const Filter.Tendsto.atBot_zsmul_neg_constₓ'. -/
theorem Tendsto.atBot_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x • r) l atTop := by simpa using hf.at_bot_zsmul_const (neg_pos.2 hr)
#align filter.tendsto.at_bot_zsmul_neg_const Filter.Tendsto.atBot_zsmul_neg_const
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -241,9 +241,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
rw [nsmul_eq_mul'] at hn
filter_upwards [tendsto_at_top.1 hf (n * max b 0)]with x hx
calc
- b ≤ 1 * max b 0 := by
- rw [one_mul]
- exact le_max_left _ _
+ b ≤ 1 * max b 0 := by rw [one_mul]; exact le_max_left _ _
_ ≤ r * n * max b 0 := (mul_le_mul_of_nonneg_right hn (le_max_right _ _))
_ = r * (n * max b 0) := by rw [mul_assoc]
_ ≤ r * f x := mul_le_mul_of_nonneg_left hx (le_of_lt hr)
@@ -268,9 +266,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
filter_upwards [tendsto_at_top.1 hf (max b 0 * n)]with x hx
calc
- b ≤ max b 0 * 1 := by
- rw [mul_one]
- exact le_max_left _ _
+ b ≤ max b 0 * 1 := by rw [mul_one]; exact le_max_left _ _
_ ≤ max b 0 * (n * r) := (mul_le_mul_of_nonneg_left hn' (le_max_right _ _))
_ = max b 0 * n * r := by rw [mul_assoc]
_ ≤ f x * r := mul_le_mul_of_nonneg_right hx (le_of_lt hr)
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -225,7 +225,7 @@ variable [LinearOrderedSemiring R] [Archimedean R]
/- warning: filter.tendsto.const_mul_at_top' -> Filter.Tendsto.const_mul_atTop' is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) r (f x)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) r (f x)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) r (f x)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.const_mul_at_top' Filter.Tendsto.const_mul_atTop'ₓ'. -/
@@ -252,7 +252,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
/- warning: filter.tendsto.at_top_mul_const' -> Filter.Tendsto.atTop_mul_const' is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedSemiring.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_mul_const' Filter.Tendsto.atTop_mul_const'ₓ'. -/
@@ -285,7 +285,7 @@ variable [LinearOrderedRing R] [Archimedean R]
/- warning: filter.tendsto.at_top_mul_neg_const' -> Filter.Tendsto.atTop_mul_neg_const' is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1)))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_mul_neg_const' Filter.Tendsto.atTop_mul_neg_const'ₓ'. -/
@@ -298,7 +298,7 @@ theorem Tendsto.atTop_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atTop) :
/- warning: filter.tendsto.at_bot_mul_const' -> Filter.Tendsto.atBot_mul_const' is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))))) r) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_mul_const' Filter.Tendsto.atBot_mul_const'ₓ'. -/
@@ -313,7 +313,7 @@ theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
/- warning: filter.tendsto.at_bot_mul_neg_const' -> Filter.Tendsto.atBot_mul_neg_const' is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {f : α -> R} {r : R} [_inst_1 : LinearOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1))))], (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toLinearOrderedSemiring.{u2} R _inst_1)))))))) -> (Filter.Tendsto.{u1, u2} α R f l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_mul_neg_const' Filter.Tendsto.atBot_mul_neg_const'ₓ'. -/
@@ -332,7 +332,7 @@ variable [LinearOrderedCancelAddCommMonoid R] [Archimedean R]
/- warning: filter.tendsto.at_top_nsmul_const -> Filter.Tendsto.atTop_nsmul_const is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedCancelAddCommMonoid.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedCancelAddCommMonoid.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedCancelAddCommMonoid.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R _inst_1))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (AddRightCancelMonoid.toZero.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))))))) r) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Nat R R (instHSMul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (AddRightCancelMonoid.toAddMonoid.{u2} R (AddCancelMonoid.toAddRightCancelMonoid.{u2} R (AddCancelCommMonoid.toAddCancelMonoid.{u2} R (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1))))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedCancelAddCommMonoid.toPartialOrder.{u2} R (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_nsmul_const Filter.Tendsto.atTop_nsmul_constₓ'. -/
@@ -352,7 +352,7 @@ variable [LinearOrderedAddCommGroup R] [Archimedean R]
/- warning: filter.tendsto.at_top_nsmul_neg_const -> Filter.Tendsto.atTop_nsmul_neg_const is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Nat}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) -> (Filter.Tendsto.{u1, 0} α Nat f l (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Nat R R (instHSMul.{0, u2} Nat R (AddMonoid.SMul.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_nsmul_neg_const Filter.Tendsto.atTop_nsmul_neg_constₓ'. -/
@@ -362,7 +362,7 @@ theorem Tendsto.atTop_nsmul_neg_const {f : α → ℕ} (hr : r < 0) (hf : Tendst
/- warning: filter.tendsto.at_top_zsmul_const -> Filter.Tendsto.atTop_zsmul_const is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_zsmul_const Filter.Tendsto.atTop_zsmul_constₓ'. -/
@@ -377,7 +377,7 @@ theorem Tendsto.atTop_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f
/- warning: filter.tendsto.at_top_zsmul_neg_const -> Filter.Tendsto.atTop_zsmul_neg_const is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_top_zsmul_neg_const Filter.Tendsto.atTop_zsmul_neg_constₓ'. -/
@@ -387,7 +387,7 @@ theorem Tendsto.atTop_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendst
/- warning: filter.tendsto.at_bot_zsmul_const -> Filter.Tendsto.atBot_zsmul_const is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))) r) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_zsmul_const Filter.Tendsto.atBot_zsmul_constₓ'. -/
@@ -400,7 +400,7 @@ theorem Tendsto.atBot_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f
/- warning: filter.tendsto.at_bot_zsmul_neg_const -> Filter.Tendsto.atBot_zsmul_neg_const is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
+ forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toHasLt.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (SubNegMonoid.toAddMonoid.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => SMul.smul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} {l : Filter.{u1} α} {r : R} [_inst_1 : LinearOrderedAddCommGroup.{u2} R] [_inst_2 : Archimedean.{u2} R (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} R (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u2} R (LinearOrderedAddCommGroup.toLinearOrderedAddCancelCommMonoid.{u2} R _inst_1)))] {f : α -> Int}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (NegZeroClass.toZero.{u2} R (SubNegZeroMonoid.toNegZeroClass.{u2} R (SubtractionMonoid.toSubNegZeroMonoid.{u2} R (SubtractionCommMonoid.toSubtractionMonoid.{u2} R (AddCommGroup.toDivisionAddCommMonoid.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))))))) -> (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) -> (Filter.Tendsto.{u1, u2} α R (fun (x : α) => HSMul.hSMul.{0, u2, u2} Int R R (instHSMul.{0, u2} Int R (SubNegMonoid.SMulInt.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddCommGroup.toAddGroup.{u2} R (OrderedAddCommGroup.toAddCommGroup.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))) (f x) r) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{u2} R _inst_1)))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.at_bot_zsmul_neg_const Filter.Tendsto.atBot_zsmul_neg_constₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -52,7 +52,7 @@ theorem tendsto_nat_cast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
/- warning: int.comap_coe_at_top -> Int.comap_cast_atTop is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R _inst_1)))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))
Case conversion may be inaccurate. Consider using '#align int.comap_coe_at_top Int.comap_cast_atTopₓ'. -/
@@ -66,7 +66,7 @@ theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
/- warning: int.comap_coe_at_bot -> Int.comap_cast_atBot is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))) (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))) (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Eq.{1} (Filter.{0} Int) (Filter.comap.{0, u1} Int R (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R _inst_1)))) (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))
Case conversion may be inaccurate. Consider using '#align int.comap_coe_at_bot Int.comap_cast_atBotₓ'. -/
@@ -80,7 +80,7 @@ theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
/- warning: tendsto_coe_int_at_top_iff -> tendsto_int_cast_atTop_iff is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int R (HasLiftT.mk.{1, succ u2} Int R (CoeTCₓ.coe.{1, succ u2} Int R (Int.castCoe.{u2} R (AddGroupWithOne.toHasIntCast.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1))))))) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R _inst_1))))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int R (HasLiftT.mk.{1, succ u2} Int R (CoeTCₓ.coe.{1, succ u2} Int R (Int.castCoe.{u2} R (AddGroupWithOne.toHasIntCast.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1))))))) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R _inst_1))))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Int.cast.{u2} R (Ring.toIntCast.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1)) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R _inst_1)))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
Case conversion may be inaccurate. Consider using '#align tendsto_coe_int_at_top_iff tendsto_int_cast_atTop_iffₓ'. -/
@@ -91,7 +91,7 @@ theorem tendsto_int_cast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α
/- warning: tendsto_coe_int_at_bot_iff -> tendsto_int_cast_atBot_iff is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int R (HasLiftT.mk.{1, succ u2} Int R (CoeTCₓ.coe.{1, succ u2} Int R (Int.castCoe.{u2} R (AddGroupWithOne.toHasIntCast.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1))))))) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R _inst_1))))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))))
+ forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int R (HasLiftT.mk.{1, succ u2} Int R (CoeTCₓ.coe.{1, succ u2} Int R (Int.castCoe.{u2} R (AddGroupWithOne.toHasIntCast.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1))))))) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R _inst_1))))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))))
but is expected to have type
forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : StrictOrderedRing.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R _inst_1)))] {f : α -> Int} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Int.cast.{u2} R (Ring.toIntCast.{u2} R (StrictOrderedRing.toRing.{u2} R _inst_1)) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R _inst_1)))) (Filter.Tendsto.{u1, 0} α Int f l (Filter.atBot.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))
Case conversion may be inaccurate. Consider using '#align tendsto_coe_int_at_bot_iff tendsto_int_cast_atBot_iffₓ'. -/
@@ -102,7 +102,7 @@ theorem tendsto_int_cast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α
/- warning: tendsto_coe_int_at_top_at_top -> tendsto_int_cast_atTop_atTop is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.Tendsto.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.Tendsto.{0, u1} Int R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1)))))))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R _inst_1))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : StrictOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R _inst_1)))], Filter.Tendsto.{0, u1} Int R (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R _inst_1))) (Filter.atTop.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R _inst_1)))
Case conversion may be inaccurate. Consider using '#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTopₓ'. -/
@@ -182,7 +182,7 @@ theorem atTop_hasCountableBasis_of_archimedean [LinearOrderedSemiring R] [Archim
/- warning: at_bot_countable_basis_of_archimedean -> atBot_hasCountableBasis_of_archimedean is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))))], Filter.HasCountableBasis.{u1, 0} R Int (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))))) (fun (m : Int) => True) (fun (m : Int) => Set.Iic.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))))))) m))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))))], Filter.HasCountableBasis.{u1, 0} R Int (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))))) (fun (m : Int) => True) (fun (m : Int) => Set.Iic.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int R (HasLiftT.mk.{1, succ u1} Int R (CoeTCₓ.coe.{1, succ u1} Int R (Int.castCoe.{u1} R (AddGroupWithOne.toHasIntCast.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))))))) m))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedRing.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R _inst_1))))], Filter.HasCountableBasis.{u1, 0} R Int (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1)))) (fun (m : Int) => True) (fun (m : Int) => Set.Iic.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))) (Int.cast.{u1} R (Ring.toIntCast.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R _inst_1))) m))
Case conversion may be inaccurate. Consider using '#align at_bot_countable_basis_of_archimedean atBot_hasCountableBasis_of_archimedeanₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -117,7 +117,7 @@ theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u1} Rat R (CoeTCₓ.coe.{1, succ u1} Rat R (Rat.castCoe.{u1} R (DivisionRing.toHasRatCast.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))))) (Filter.atTop.{0} Rat Rat.preorder)
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (OrderedCommSemiring.toOrderedSemiring.{u1} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R (RatCast.ratCast.{u1} R (LinearOrderedField.toRatCast.{u1} R _inst_1)) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (Filter.atTop.{0} Rat Rat.instPreorderRat)
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (OrderedCommSemiring.toOrderedSemiring.{u1} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R (Rat.cast.{u1} R (LinearOrderedField.toRatCast.{u1} R _inst_1)) (Filter.atTop.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (Filter.atTop.{0} Rat Rat.instPreorderRat)
Case conversion may be inaccurate. Consider using '#align rat.comap_coe_at_top Rat.comap_cast_atTopₓ'. -/
@[simp]
theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
@@ -131,7 +131,7 @@ theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedSemiring.{u1} R (StrictOrderedRing.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u1} Rat R (CoeTCₓ.coe.{1, succ u1} Rat R (Rat.castCoe.{u1} R (DivisionRing.toHasRatCast.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))))) (Filter.atBot.{0} Rat Rat.preorder)
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (OrderedCommSemiring.toOrderedSemiring.{u1} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R (RatCast.ratCast.{u1} R (LinearOrderedField.toRatCast.{u1} R _inst_1)) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (Filter.atBot.{0} Rat Rat.instPreorderRat)
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : Archimedean.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R (OrderedCommSemiring.toOrderedSemiring.{u1} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))], Eq.{1} (Filter.{0} Rat) (Filter.comap.{0, u1} Rat R (Rat.cast.{u1} R (LinearOrderedField.toRatCast.{u1} R _inst_1)) (Filter.atBot.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (Filter.atBot.{0} Rat Rat.instPreorderRat)
Case conversion may be inaccurate. Consider using '#align rat.comap_coe_at_bot Rat.comap_cast_atBotₓ'. -/
@[simp]
theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
@@ -145,7 +145,7 @@ theorem Rat.comap_cast_atBot [LinearOrderedField R] [Archimedean R] :
lean 3 declaration is
forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u2} Rat R (CoeTCₓ.coe.{1, succ u2} Rat R (Rat.castCoe.{u2} R (DivisionRing.toHasRatCast.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atTop.{0} Rat Rat.preorder))
but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (OrderedCommSemiring.toOrderedSemiring.{u2} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => RatCast.ratCast.{u2} R (LinearOrderedField.toRatCast.{u2} R _inst_1) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atTop.{0} Rat Rat.instPreorderRat))
+ forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (OrderedCommSemiring.toOrderedSemiring.{u2} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Rat.cast.{u2} R (LinearOrderedField.toRatCast.{u2} R _inst_1) (f n)) l (Filter.atTop.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atTop.{0} Rat Rat.instPreorderRat))
Case conversion may be inaccurate. Consider using '#align tendsto_coe_rat_at_top_iff tendsto_rat_cast_atTop_iffₓ'. -/
theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
@@ -156,7 +156,7 @@ theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f :
lean 3 declaration is
forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (StrictOrderedSemiring.toOrderedSemiring.{u2} R (StrictOrderedRing.toStrictOrderedSemiring.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => (fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat R (HasLiftT.mk.{1, succ u2} Rat R (CoeTCₓ.coe.{1, succ u2} Rat R (Rat.castCoe.{u2} R (DivisionRing.toHasRatCast.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedAddCommGroup.toPartialOrder.{u2} R (StrictOrderedRing.toOrderedAddCommGroup.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atBot.{0} Rat Rat.preorder))
but is expected to have type
- forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (OrderedCommSemiring.toOrderedSemiring.{u2} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => RatCast.ratCast.{u2} R (LinearOrderedField.toRatCast.{u2} R _inst_1) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atBot.{0} Rat Rat.instPreorderRat))
+ forall {α : Type.{u1}} {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] [_inst_2 : Archimedean.{u2} R (OrderedSemiring.toOrderedAddCommMonoid.{u2} R (OrderedCommSemiring.toOrderedSemiring.{u2} R (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))] {f : α -> Rat} {l : Filter.{u1} α}, Iff (Filter.Tendsto.{u1, u2} α R (fun (n : α) => Rat.cast.{u2} R (LinearOrderedField.toRatCast.{u2} R _inst_1) (f n)) l (Filter.atBot.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1))))))) (Filter.Tendsto.{u1, 0} α Rat f l (Filter.atBot.{0} Rat Rat.instPreorderRat))
Case conversion may be inaccurate. Consider using '#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iffₓ'. -/
theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -244,7 +244,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
b ≤ 1 * max b 0 := by
rw [one_mul]
exact le_max_left _ _
- _ ≤ r * n * max b 0 := mul_le_mul_of_nonneg_right hn (le_max_right _ _)
+ _ ≤ r * n * max b 0 := (mul_le_mul_of_nonneg_right hn (le_max_right _ _))
_ = r * (n * max b 0) := by rw [mul_assoc]
_ ≤ r * f x := mul_le_mul_of_nonneg_left hx (le_of_lt hr)
@@ -271,7 +271,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
b ≤ max b 0 * 1 := by
rw [mul_one]
exact le_max_left _ _
- _ ≤ max b 0 * (n * r) := mul_le_mul_of_nonneg_left hn' (le_max_right _ _)
+ _ ≤ max b 0 * (n * r) := (mul_le_mul_of_nonneg_left hn' (le_max_right _ _))
_ = max b 0 * n * r := by rw [mul_assoc]
_ ≤ f x * r := mul_le_mul_of_nonneg_right hx (le_of_lt hr)
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
nat_cast
/int_cast
/rat_cast
to natCast
/intCast
/ratCast
(#11486)
Now that I am defining NNRat.cast
, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast
/intCast
/ratCast
over nat_cast
/int_cast
/rat_cast
, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.
@@ -29,19 +29,19 @@ theorem Nat.comap_cast_atTop [StrictOrderedSemiring R] [Archimedean R] :
comap_embedding_atTop (fun _ _ => Nat.cast_le) exists_nat_ge
#align nat.comap_coe_at_top Nat.comap_cast_atTop
-theorem tendsto_nat_cast_atTop_iff [StrictOrderedSemiring R] [Archimedean R] {f : α → ℕ}
+theorem tendsto_natCast_atTop_iff [StrictOrderedSemiring R] [Archimedean R] {f : α → ℕ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop :=
tendsto_atTop_embedding (fun _ _ => Nat.cast_le) exists_nat_ge
-#align tendsto_coe_nat_at_top_iff tendsto_nat_cast_atTop_iff
+#align tendsto_coe_nat_at_top_iff tendsto_natCast_atTop_iff
-theorem tendsto_nat_cast_atTop_atTop [OrderedSemiring R] [Archimedean R] :
+theorem tendsto_natCast_atTop_atTop [OrderedSemiring R] [Archimedean R] :
Tendsto ((↑) : ℕ → R) atTop atTop :=
Nat.mono_cast.tendsto_atTop_atTop exists_nat_ge
-#align tendsto_coe_nat_at_top_at_top tendsto_nat_cast_atTop_atTop
+#align tendsto_coe_nat_at_top_at_top tendsto_natCast_atTop_atTop
-theorem Filter.Eventually.nat_cast_atTop [OrderedSemiring R] [Archimedean R] {p : R → Prop}
+theorem Filter.Eventually.natCast_atTop [OrderedSemiring R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℕ) in atTop, p n :=
- tendsto_nat_cast_atTop_atTop.eventually h
+ tendsto_natCast_atTop_atTop.eventually h
@[simp] theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
comap ((↑) : ℤ → R) atTop = atTop :=
@@ -57,26 +57,26 @@ theorem Int.comap_cast_atBot [StrictOrderedRing R] [Archimedean R] :
⟨-n, by simpa [neg_le] using hn⟩
#align int.comap_coe_at_bot Int.comap_cast_atBot
-theorem tendsto_int_cast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
+theorem tendsto_intCast_atTop_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← @Int.comap_cast_atTop R, tendsto_comap_iff]; rfl
-#align tendsto_coe_int_at_top_iff tendsto_int_cast_atTop_iff
+#align tendsto_coe_int_at_top_iff tendsto_intCast_atTop_iff
-theorem tendsto_int_cast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
+theorem tendsto_intCast_atBot_iff [StrictOrderedRing R] [Archimedean R] {f : α → ℤ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← @Int.comap_cast_atBot R, tendsto_comap_iff]; rfl
-#align tendsto_coe_int_at_bot_iff tendsto_int_cast_atBot_iff
+#align tendsto_coe_int_at_bot_iff tendsto_intCast_atBot_iff
-theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
+theorem tendsto_intCast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
Tendsto ((↑) : ℤ → R) atTop atTop :=
- tendsto_int_cast_atTop_iff.2 tendsto_id
-#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTop
+ tendsto_intCast_atTop_iff.2 tendsto_id
+#align tendsto_coe_int_at_top_at_top tendsto_intCast_atTop_atTop
-theorem Filter.Eventually.int_cast_atTop [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
+theorem Filter.Eventually.intCast_atTop [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℤ) in atTop, p n := by
rw [← Int.comap_cast_atTop (R := R)]; exact h.comap _
-theorem Filter.Eventually.int_cast_atBot [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
+theorem Filter.Eventually.intCast_atBot [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℤ) in atBot, p n := by
rw [← Int.comap_cast_atBot (R := R)]; exact h.comap _
@@ -94,28 +94,28 @@ theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
⟨-n, by simpa [neg_le]⟩
#align rat.comap_coe_at_bot Rat.comap_cast_atBot
-theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
+theorem tendsto_ratCast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atTop ↔ Tendsto f l atTop := by
rw [← @Rat.comap_cast_atTop R, tendsto_comap_iff]; rfl
-#align tendsto_coe_rat_at_top_iff tendsto_rat_cast_atTop_iff
+#align tendsto_coe_rat_at_top_iff tendsto_ratCast_atTop_iff
-theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
+theorem tendsto_ratCast_atBot_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
{l : Filter α} : Tendsto (fun n => (f n : R)) l atBot ↔ Tendsto f l atBot := by
rw [← @Rat.comap_cast_atBot R, tendsto_comap_iff]; rfl
-#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iff
+#align tendsto_coe_rat_at_bot_iff tendsto_ratCast_atBot_iff
-theorem Filter.Eventually.rat_cast_atTop [LinearOrderedField R] [Archimedean R] {p : R → Prop}
+theorem Filter.Eventually.ratCast_atTop [LinearOrderedField R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℚ) in atTop, p n := by
rw [← Rat.comap_cast_atTop (R := R)]; exact h.comap _
-theorem Filter.Eventually.rat_cast_atBot [LinearOrderedField R] [Archimedean R] {p : R → Prop}
+theorem Filter.Eventually.ratCast_atBot [LinearOrderedField R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℚ) in atBot, p n := by
rw [← Rat.comap_cast_atBot (R := R)]; exact h.comap _
-- Porting note (#10756): new lemma
theorem atTop_hasAntitoneBasis_of_archimedean [OrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n :=
- hasAntitoneBasis_atTop.comp_mono Nat.mono_cast tendsto_nat_cast_atTop_atTop
+ hasAntitoneBasis_atTop.comp_mono Nat.mono_cast tendsto_natCast_atTop_atTop
theorem atTop_hasCountableBasis_of_archimedean [StrictOrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasCountableBasis (fun _ : ℕ => True) fun n => Ici n :=
@@ -112,7 +112,7 @@ theorem Filter.Eventually.rat_cast_atBot [LinearOrderedField R] [Archimedean R]
(h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℚ) in atBot, p n := by
rw [← Rat.comap_cast_atBot (R := R)]; exact h.comap _
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
theorem atTop_hasAntitoneBasis_of_archimedean [OrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n :=
hasAntitoneBasis_atTop.comp_mono Nat.mono_cast tendsto_nat_cast_atTop_atTop
@@ -122,7 +122,7 @@ theorem atTop_hasCountableBasis_of_archimedean [StrictOrderedSemiring R] [Archim
⟨atTop_hasAntitoneBasis_of_archimedean.1, to_countable _⟩
#align at_top_countable_basis_of_archimedean atTop_hasCountableBasis_of_archimedean
--- Porting note: todo: generalize to a `StrictOrderedRing`
+-- Porting note (#11215): TODO: generalize to a `StrictOrderedRing`
theorem atBot_hasCountableBasis_of_archimedean [LinearOrderedRing R] [Archimedean R] :
(atBot : Filter R).HasCountableBasis (fun _ : ℤ => True) fun m => Iic m :=
{ countable := to_countable _
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -112,7 +112,7 @@ theorem Filter.Eventually.rat_cast_atBot [LinearOrderedField R] [Archimedean R]
(h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℚ) in atBot, p n := by
rw [← Rat.comap_cast_atBot (R := R)]; exact h.comap _
--- porting note: new lemma
+-- Porting note: new lemma
theorem atTop_hasAntitoneBasis_of_archimedean [OrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n :=
hasAntitoneBasis_atTop.comp_mono Nat.mono_cast tendsto_nat_cast_atTop_atTop
@@ -122,7 +122,7 @@ theorem atTop_hasCountableBasis_of_archimedean [StrictOrderedSemiring R] [Archim
⟨atTop_hasAntitoneBasis_of_archimedean.1, to_countable _⟩
#align at_top_countable_basis_of_archimedean atTop_hasCountableBasis_of_archimedean
--- porting note: todo: generalize to a `StrictOrderedRing`
+-- Porting note: todo: generalize to a `StrictOrderedRing`
theorem atBot_hasCountableBasis_of_archimedean [LinearOrderedRing R] [Archimedean R] :
(atBot : Filter R).HasCountableBasis (fun _ : ℤ => True) fun m => Iic m :=
{ countable := to_countable _
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -243,7 +243,7 @@ theorem Tendsto.atTop_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f
Tendsto (fun x => f x • r) l atTop := by
refine' tendsto_atTop.mpr fun s => _
obtain ⟨n : ℕ, hn : s ≤ n • r⟩ := Archimedean.arch s hr
- replace hn : s ≤ (n : ℤ) • r; · simpa
+ replace hn : s ≤ (n : ℤ) • r := by simpa
exact (tendsto_atTop.mp hf n).mono fun a ha => hn.trans (zsmul_le_zsmul hr.le ha)
#align filter.tendsto.at_top_zsmul_const Filter.Tendsto.atTop_zsmul_const
@@ -91,7 +91,7 @@ theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
comap ((↑) : ℚ → R) atBot = atBot :=
comap_embedding_atBot (fun _ _ => Rat.cast_le) fun r =>
let ⟨n, hn⟩ := exists_nat_ge (-r)
- ⟨-n, by simpa [neg_le] ⟩
+ ⟨-n, by simpa [neg_le]⟩
#align rat.comap_coe_at_bot Rat.comap_cast_atBot
theorem tendsto_rat_cast_atTop_iff [LinearOrderedField R] [Archimedean R] {f : α → ℚ}
The names for lemmas about monotonicity of (a ^ ·)
and (· ^ n)
were a mess. This PR tidies up everything related by following the naming convention for (a * ·)
and (· * b)
. Namely, (a ^ ·)
is pow_right
and (· ^ n)
is pow_left
in lemma names. All lemma renames follow the corresponding multiplication lemma names closely.
Algebra.GroupPower.Order
pow_mono
→ pow_right_mono
pow_le_pow
→ pow_le_pow_right
pow_le_pow_of_le_left
→ pow_le_pow_left
pow_lt_pow_of_lt_left
→ pow_lt_pow_left
strictMonoOn_pow
→ pow_left_strictMonoOn
pow_strictMono_right
→ pow_right_strictMono
pow_lt_pow
→ pow_lt_pow_right
pow_lt_pow_iff
→ pow_lt_pow_iff_right
pow_le_pow_iff
→ pow_le_pow_iff_right
self_lt_pow
→ lt_self_pow
strictAnti_pow
→ pow_right_strictAnti
pow_lt_pow_iff_of_lt_one
→ pow_lt_pow_iff_right_of_lt_one
pow_lt_pow_of_lt_one
→ pow_lt_pow_right_of_lt_one
lt_of_pow_lt_pow
→ lt_of_pow_lt_pow_left
le_of_pow_le_pow
→ le_of_pow_le_pow_left
pow_lt_pow₀
→ pow_lt_pow_right₀
Algebra.GroupPower.CovariantClass
pow_le_pow_of_le_left'
→ pow_le_pow_left'
nsmul_le_nsmul_of_le_right
→ nsmul_le_nsmul_right
pow_lt_pow'
→ pow_lt_pow_right'
nsmul_lt_nsmul
→ nsmul_lt_nsmul_left
pow_strictMono_left
→ pow_right_strictMono'
nsmul_strictMono_right
→ nsmul_left_strictMono
StrictMono.pow_right'
→ StrictMono.pow_const
StrictMono.nsmul_left
→ StrictMono.const_nsmul
pow_strictMono_right'
→ pow_left_strictMono
nsmul_strictMono_left
→ nsmul_right_strictMono
Monotone.pow_right
→ Monotone.pow_const
Monotone.nsmul_left
→ Monotone.const_nsmul
lt_of_pow_lt_pow'
→ lt_of_pow_lt_pow_left'
lt_of_nsmul_lt_nsmul
→ lt_of_nsmul_lt_nsmul_right
pow_le_pow'
→ pow_le_pow_right'
nsmul_le_nsmul
→ nsmul_le_nsmul_left
pow_le_pow_of_le_one'
→ pow_le_pow_right_of_le_one'
nsmul_le_nsmul_of_nonpos
→ nsmul_le_nsmul_left_of_nonpos
le_of_pow_le_pow'
→ le_of_pow_le_pow_left'
le_of_nsmul_le_nsmul'
→ le_of_nsmul_le_nsmul_right'
pow_le_pow_iff'
→ pow_le_pow_iff_right'
nsmul_le_nsmul_iff
→ nsmul_le_nsmul_iff_left
pow_lt_pow_iff'
→ pow_lt_pow_iff_right'
nsmul_lt_nsmul_iff
→ nsmul_lt_nsmul_iff_left
Data.Nat.Pow
Nat.pow_lt_pow_of_lt_left
→ Nat.pow_lt_pow_left
Nat.pow_le_iff_le_left
→ Nat.pow_le_pow_iff_left
Nat.pow_lt_iff_lt_left
→ Nat.pow_lt_pow_iff_left
pow_le_pow_iff_left
pow_lt_pow_iff_left
pow_right_injective
pow_right_inj
Nat.pow_le_pow_left
to have the correct name since Nat.pow_le_pow_of_le_left
is in Std.Nat.pow_le_pow_right
to have the correct name since Nat.pow_le_pow_of_le_right
is in Std.self_le_pow
was a duplicate of le_self_pow
.Nat.pow_lt_pow_of_lt_right
is defeq to pow_lt_pow_right
.Nat.pow_right_strictMono
is defeq to pow_right_strictMono
.Nat.pow_le_iff_le_right
is defeq to pow_le_pow_iff_right
.Nat.pow_lt_iff_lt_right
is defeq to pow_lt_pow_iff_right
.0 < n
or 1 ≤ n
to n ≠ 0
.Nat
lemmas have been protected
.@@ -226,7 +226,7 @@ theorem Tendsto.atTop_nsmul_const {f : α → ℕ} (hr : 0 < r) (hf : Tendsto f
Tendsto (fun x => f x • r) l atTop := by
refine' tendsto_atTop.mpr fun s => _
obtain ⟨n : ℕ, hn : s ≤ n • r⟩ := Archimedean.arch s hr
- exact (tendsto_atTop.mp hf n).mono fun a ha => hn.trans (nsmul_le_nsmul hr.le ha)
+ exact (tendsto_atTop.mp hf n).mono fun a ha => hn.trans (nsmul_le_nsmul_left hr.le ha)
#align filter.tendsto.at_top_nsmul_const Filter.Tendsto.atTop_nsmul_const
end LinearOrderedCancelAddCommMonoid
@@ -74,11 +74,11 @@ theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
theorem Filter.Eventually.int_cast_atTop [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℤ) in atTop, p n := by
- rw [←Int.comap_cast_atTop (R := R)]; exact h.comap _
+ rw [← Int.comap_cast_atTop (R := R)]; exact h.comap _
theorem Filter.Eventually.int_cast_atBot [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℤ) in atBot, p n := by
- rw [←Int.comap_cast_atBot (R := R)]; exact h.comap _
+ rw [← Int.comap_cast_atBot (R := R)]; exact h.comap _
@[simp]
theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
@@ -106,11 +106,11 @@ theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f :
theorem Filter.Eventually.rat_cast_atTop [LinearOrderedField R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℚ) in atTop, p n := by
- rw [←Rat.comap_cast_atTop (R := R)]; exact h.comap _
+ rw [← Rat.comap_cast_atTop (R := R)]; exact h.comap _
theorem Filter.Eventually.rat_cast_atBot [LinearOrderedField R] [Archimedean R] {p : R → Prop}
(h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℚ) in atBot, p n := by
- rw [←Rat.comap_cast_atBot (R := R)]; exact h.comap _
+ rw [← Rat.comap_cast_atBot (R := R)]; exact h.comap _
-- porting note: new lemma
theorem atTop_hasAntitoneBasis_of_archimedean [OrderedSemiring R] [Archimedean R] :
exact_mod_cast
tactic with mod_cast
elaborator where possible (#8404)
We still have the exact_mod_cast
tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast
are the ones that don't work using the term elaborator by itself.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -46,7 +46,7 @@ theorem Filter.Eventually.nat_cast_atTop [OrderedSemiring R] [Archimedean R] {p
@[simp] theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
comap ((↑) : ℤ → R) atTop = atTop :=
comap_embedding_atTop (fun _ _ => Int.cast_le) fun r =>
- let ⟨n, hn⟩ := exists_nat_ge r; ⟨n, by exact_mod_cast hn⟩
+ let ⟨n, hn⟩ := exists_nat_ge r; ⟨n, mod_cast hn⟩
#align int.comap_coe_at_top Int.comap_cast_atTop
@[simp]
Filter.hasAntitoneBasis_atTop
;Filter.HasAntitoneBasis.iInf_principal
;ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self
->
ProbabilityTheory.measure_eq_zero_or_one_of_indepSet_self
.MeasureTheory.tendsto_measure_iUnion
;MeasureTheory.tendsto_measure_iInter
;Monotone.directed_le
, Monotone.directed_ge
;Antitone.directed_le
, Antitone.directed_ge
;directed_of_sup
, renamed to directed_of_isDirected_le
;directed_of_inf
, renamed to directed_of_isDirected_ge
;tendsto_nat_cast_atTop_atTop
;Filter.Eventually.nat_cast_atTop
;atTop_hasAntitoneBasis_of_archimedean
;@@ -34,14 +34,14 @@ theorem tendsto_nat_cast_atTop_iff [StrictOrderedSemiring R] [Archimedean R] {f
tendsto_atTop_embedding (fun _ _ => Nat.cast_le) exists_nat_ge
#align tendsto_coe_nat_at_top_iff tendsto_nat_cast_atTop_iff
-theorem tendsto_nat_cast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
+theorem tendsto_nat_cast_atTop_atTop [OrderedSemiring R] [Archimedean R] :
Tendsto ((↑) : ℕ → R) atTop atTop :=
- tendsto_nat_cast_atTop_iff.2 tendsto_id
+ Nat.mono_cast.tendsto_atTop_atTop exists_nat_ge
#align tendsto_coe_nat_at_top_at_top tendsto_nat_cast_atTop_atTop
-theorem Filter.Eventually.nat_cast_atTop [StrictOrderedSemiring R] [Archimedean R] {p : R → Prop}
- (h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℕ) in atTop, p n := by
- rw [←Nat.comap_cast_atTop (R := R)]; exact h.comap _
+theorem Filter.Eventually.nat_cast_atTop [OrderedSemiring R] [Archimedean R] {p : R → Prop}
+ (h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℕ) in atTop, p n :=
+ tendsto_nat_cast_atTop_atTop.eventually h
@[simp] theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
comap ((↑) : ℤ → R) atTop = atTop :=
@@ -113,15 +113,9 @@ theorem Filter.Eventually.rat_cast_atBot [LinearOrderedField R] [Archimedean R]
rw [←Rat.comap_cast_atBot (R := R)]; exact h.comap _
-- porting note: new lemma
-theorem atTop_hasAntitoneBasis_of_archimedean [StrictOrderedSemiring R] [Archimedean R] :
- (atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n where
- antitone := fun _ _ h => Ici_subset_Ici.2 (Nat.mono_cast h)
- mem_iff' _t := ⟨fun ht => iInf_sets_induct ht ⟨0, trivial, subset_univ _⟩
- fun {x _ _} h₁ ⟨n, _, hn⟩ =>
- let ⟨m, hm⟩ := exists_nat_ge x
- ⟨max m n, trivial, fun _y hy => ⟨h₁ (hm.trans ((Nat.cast_le.2 (le_max_left _ _)).trans hy)),
- hn <| (Nat.cast_le.2 (le_max_right _ _)).trans hy⟩⟩,
- fun ⟨_n, _, hn⟩ => mem_of_superset (Ici_mem_atTop _) hn⟩
+theorem atTop_hasAntitoneBasis_of_archimedean [OrderedSemiring R] [Archimedean R] :
+ (atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n :=
+ hasAntitoneBasis_atTop.comp_mono Nat.mono_cast tendsto_nat_cast_atTop_atTop
theorem atTop_hasCountableBasis_of_archimedean [StrictOrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasCountableBasis (fun _ : ℕ => True) fun n => Ici n :=
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -165,7 +165,7 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
refine' tendsto_atTop.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
rw [nsmul_eq_mul'] at hn
- filter_upwards [tendsto_atTop.1 hf (n * max b 0)]with x hx
+ filter_upwards [tendsto_atTop.1 hf (n * max b 0)] with x hx
calc
b ≤ 1 * max b 0 := by
{ rw [one_mul]
@@ -184,7 +184,7 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
refine' tendsto_atTop.2 fun b => _
obtain ⟨n : ℕ, hn : 1 ≤ n • r⟩ := Archimedean.arch 1 hr
have hn' : 1 ≤ (n : R) * r := by rwa [nsmul_eq_mul] at hn
- filter_upwards [tendsto_atTop.1 hf (max b 0 * n)]with x hx
+ filter_upwards [tendsto_atTop.1 hf (max b 0 * n)] with x hx
calc
b ≤ max b 0 * 1 := by
{ rw [mul_one]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -19,7 +19,7 @@ well as version of these two results for `ℤ` (and a ring `R`) and `ℚ` (and a
-/
-variable {α R : Type _}
+variable {α R : Type*}
open Filter Set Function
@@ -2,16 +2,13 @@
Copyright (c) 2019 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-
-! This file was ported from Lean 3 source module order.filter.archimedean
-! leanprover-community/mathlib commit 8631e2d5ea77f6c13054d9151d82b83069680cb1
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Order.Archimedean
import Mathlib.Order.Filter.AtTopBot
import Mathlib.Tactic.GCongr
+#align_import order.filter.archimedean from "leanprover-community/mathlib"@"8631e2d5ea77f6c13054d9151d82b83069680cb1"
+
/-!
# `Filter.atTop` filter and archimedean (semi)rings/fields
@@ -42,6 +42,10 @@ theorem tendsto_nat_cast_atTop_atTop [StrictOrderedSemiring R] [Archimedean R] :
tendsto_nat_cast_atTop_iff.2 tendsto_id
#align tendsto_coe_nat_at_top_at_top tendsto_nat_cast_atTop_atTop
+theorem Filter.Eventually.nat_cast_atTop [StrictOrderedSemiring R] [Archimedean R] {p : R → Prop}
+ (h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℕ) in atTop, p n := by
+ rw [←Nat.comap_cast_atTop (R := R)]; exact h.comap _
+
@[simp] theorem Int.comap_cast_atTop [StrictOrderedRing R] [Archimedean R] :
comap ((↑) : ℤ → R) atTop = atTop :=
comap_embedding_atTop (fun _ _ => Int.cast_le) fun r =>
@@ -71,6 +75,14 @@ theorem tendsto_int_cast_atTop_atTop [StrictOrderedRing R] [Archimedean R] :
tendsto_int_cast_atTop_iff.2 tendsto_id
#align tendsto_coe_int_at_top_at_top tendsto_int_cast_atTop_atTop
+theorem Filter.Eventually.int_cast_atTop [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
+ (h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℤ) in atTop, p n := by
+ rw [←Int.comap_cast_atTop (R := R)]; exact h.comap _
+
+theorem Filter.Eventually.int_cast_atBot [StrictOrderedRing R] [Archimedean R] {p : R → Prop}
+ (h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℤ) in atBot, p n := by
+ rw [←Int.comap_cast_atBot (R := R)]; exact h.comap _
+
@[simp]
theorem Rat.comap_cast_atTop [LinearOrderedField R] [Archimedean R] :
comap ((↑) : ℚ → R) atTop = atTop :=
@@ -95,6 +107,14 @@ theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f :
rw [← @Rat.comap_cast_atBot R, tendsto_comap_iff]; rfl
#align tendsto_coe_rat_at_bot_iff tendsto_rat_cast_atBot_iff
+theorem Filter.Eventually.rat_cast_atTop [LinearOrderedField R] [Archimedean R] {p : R → Prop}
+ (h : ∀ᶠ (x:R) in atTop, p x) : ∀ᶠ (n:ℚ) in atTop, p n := by
+ rw [←Rat.comap_cast_atTop (R := R)]; exact h.comap _
+
+theorem Filter.Eventually.rat_cast_atBot [LinearOrderedField R] [Archimedean R] {p : R → Prop}
+ (h : ∀ᶠ (x:R) in atBot, p x) : ∀ᶠ (n:ℚ) in atBot, p n := by
+ rw [←Rat.comap_cast_atBot (R := R)]; exact h.comap _
+
-- porting note: new lemma
theorem atTop_hasAntitoneBasis_of_archimedean [StrictOrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n where
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
@@ -194,7 +194,7 @@ theorem Tendsto.atTop_mul_neg_const' (hr : r < 0) (hf : Tendsto f l atTop) :
`LinearOrderedField`s which does not require the `Archimedean` assumption. -/
theorem Tendsto.atBot_mul_const' (hr : 0 < r) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x * r) l atBot := by
- simp only [← tendsto_neg_atTop_iff, ← neg_mul] at hf⊢
+ simp only [← tendsto_neg_atTop_iff, ← neg_mul] at hf ⊢
exact hf.atTop_mul_const' hr
#align filter.tendsto.at_bot_mul_const' Filter.Tendsto.atBot_mul_const'
@@ -242,7 +242,7 @@ theorem Tendsto.atTop_zsmul_neg_const {f : α → ℤ} (hr : r < 0) (hf : Tendst
theorem Tendsto.atBot_zsmul_const {f : α → ℤ} (hr : 0 < r) (hf : Tendsto f l atBot) :
Tendsto (fun x => f x • r) l atBot := by
- simp only [← tendsto_neg_atTop_iff, ← neg_zsmul] at hf⊢
+ simp only [← tendsto_neg_atTop_iff, ← neg_zsmul] at hf ⊢
exact hf.atTop_zsmul_const hr
#align filter.tendsto.at_bot_zsmul_const Filter.Tendsto.atBot_zsmul_const
@@ -10,6 +10,7 @@ Authors: Johannes Hölzl, Yury Kudryashov
-/
import Mathlib.Algebra.Order.Archimedean
import Mathlib.Order.Filter.AtTopBot
+import Mathlib.Tactic.GCongr
/-!
# `Filter.atTop` filter and archimedean (semi)rings/fields
@@ -152,9 +153,9 @@ theorem Tendsto.const_mul_atTop' (hr : 0 < r) (hf : Tendsto f l atTop) :
b ≤ 1 * max b 0 := by
{ rw [one_mul]
exact le_max_left _ _ }
- _ ≤ r * n * max b 0 := mul_le_mul_of_nonneg_right hn (le_max_right _ _)
+ _ ≤ r * n * max b 0 := by gcongr
_ = r * (n * max b 0) := by rw [mul_assoc]
- _ ≤ r * f x := mul_le_mul_of_nonneg_left hx (le_of_lt hr)
+ _ ≤ r * f x := by gcongr
#align filter.tendsto.const_mul_at_top' Filter.Tendsto.const_mul_atTop'
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
@@ -171,9 +172,9 @@ theorem Tendsto.atTop_mul_const' (hr : 0 < r) (hf : Tendsto f l atTop) :
b ≤ max b 0 * 1 := by
{ rw [mul_one]
exact le_max_left _ _ }
- _ ≤ max b 0 * (n * r) := mul_le_mul_of_nonneg_left hn' (le_max_right _ _)
+ _ ≤ max b 0 * (n * r) := by gcongr
_ = max b 0 * n * r := by rw [mul_assoc]
- _ ≤ f x * r := mul_le_mul_of_nonneg_right hx (le_of_lt hr)
+ _ ≤ f x * r := by gcongr
#align filter.tendsto.at_top_mul_const' Filter.Tendsto.atTop_mul_const'
end LinearOrderedSemiring
sSup
/iSup
(#3938)
As discussed on Zulip
supₛ
→ sSup
infₛ
→ sInf
supᵢ
→ iSup
infᵢ
→ iInf
bsupₛ
→ bsSup
binfₛ
→ bsInf
bsupᵢ
→ biSup
binfᵢ
→ biInf
csupₛ
→ csSup
cinfₛ
→ csInf
csupᵢ
→ ciSup
cinfᵢ
→ ciInf
unionₛ
→ sUnion
interₛ
→ sInter
unionᵢ
→ iUnion
interᵢ
→ iInter
bunionₛ
→ bsUnion
binterₛ
→ bsInter
bunionᵢ
→ biUnion
binterᵢ
→ biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -98,7 +98,7 @@ theorem tendsto_rat_cast_atBot_iff [LinearOrderedField R] [Archimedean R] {f :
theorem atTop_hasAntitoneBasis_of_archimedean [StrictOrderedSemiring R] [Archimedean R] :
(atTop : Filter R).HasAntitoneBasis fun n : ℕ => Ici n where
antitone := fun _ _ h => Ici_subset_Ici.2 (Nat.mono_cast h)
- mem_iff' _t := ⟨fun ht => infᵢ_sets_induct ht ⟨0, trivial, subset_univ _⟩
+ mem_iff' _t := ⟨fun ht => iInf_sets_induct ht ⟨0, trivial, subset_univ _⟩
fun {x _ _} h₁ ⟨n, _, hn⟩ =>
let ⟨m, hm⟩ := exists_nat_ge x
⟨max m n, trivial, fun _y hy => ⟨h₁ (hm.trans ((Nat.cast_le.2 (le_max_left _ _)).trans hy)),
The unported dependencies are