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.Orderpow_mono → pow_right_monopow_le_pow → pow_le_pow_rightpow_le_pow_of_le_left → pow_le_pow_leftpow_lt_pow_of_lt_left → pow_lt_pow_leftstrictMonoOn_pow → pow_left_strictMonoOnpow_strictMono_right → pow_right_strictMonopow_lt_pow → pow_lt_pow_rightpow_lt_pow_iff → pow_lt_pow_iff_rightpow_le_pow_iff → pow_le_pow_iff_rightself_lt_pow → lt_self_powstrictAnti_pow → pow_right_strictAntipow_lt_pow_iff_of_lt_one → pow_lt_pow_iff_right_of_lt_onepow_lt_pow_of_lt_one → pow_lt_pow_right_of_lt_onelt_of_pow_lt_pow → lt_of_pow_lt_pow_leftle_of_pow_le_pow → le_of_pow_le_pow_leftpow_lt_pow₀ → pow_lt_pow_right₀Algebra.GroupPower.CovariantClasspow_le_pow_of_le_left' → pow_le_pow_left'nsmul_le_nsmul_of_le_right → nsmul_le_nsmul_rightpow_lt_pow' → pow_lt_pow_right'nsmul_lt_nsmul → nsmul_lt_nsmul_leftpow_strictMono_left → pow_right_strictMono'nsmul_strictMono_right → nsmul_left_strictMonoStrictMono.pow_right' → StrictMono.pow_constStrictMono.nsmul_left → StrictMono.const_nsmulpow_strictMono_right' → pow_left_strictMononsmul_strictMono_left → nsmul_right_strictMonoMonotone.pow_right → Monotone.pow_constMonotone.nsmul_left → Monotone.const_nsmullt_of_pow_lt_pow' → lt_of_pow_lt_pow_left'lt_of_nsmul_lt_nsmul → lt_of_nsmul_lt_nsmul_rightpow_le_pow' → pow_le_pow_right'nsmul_le_nsmul → nsmul_le_nsmul_leftpow_le_pow_of_le_one' → pow_le_pow_right_of_le_one'nsmul_le_nsmul_of_nonpos → nsmul_le_nsmul_left_of_nonposle_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_leftpow_lt_pow_iff' → pow_lt_pow_iff_right'nsmul_lt_nsmul_iff → nsmul_lt_nsmul_iff_leftData.Nat.PowNat.pow_lt_pow_of_lt_left → Nat.pow_lt_pow_leftNat.pow_le_iff_le_left → Nat.pow_le_pow_iff_leftNat.pow_lt_iff_lt_left → Nat.pow_lt_pow_iff_leftpow_le_pow_iff_leftpow_lt_pow_iff_leftpow_right_injectivepow_right_injNat.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ₛ → sSupinfₛ → sInfsupᵢ → iSupinfᵢ → iInfbsupₛ → bsSupbinfₛ → bsInfbsupᵢ → biSupbinfᵢ → biInfcsupₛ → csSupcinfₛ → csInfcsupᵢ → ciSupcinfᵢ → ciInfunionₛ → sUnioninterₛ → sInterunionᵢ → iUnioninterᵢ → iInterbunionₛ → bsUnionbinterₛ → bsInterbunionᵢ → biUnionbinterᵢ → biInterCo-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