analysis.asymptotics.superpolynomial_decay
⟷
Mathlib.Analysis.Asymptotics.SuperpolynomialDecay
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -5,7 +5,7 @@ Authors: Devon Tuma
-/
import Analysis.Asymptotics.Asymptotics
import Analysis.Normed.Order.Basic
-import Data.Polynomial.Eval
+import Algebra.Polynomial.Eval
import Topology.Algebra.Order.LiminfLimsup
#align_import analysis.asymptotics.superpolynomial_decay from "leanprover-community/mathlib"@"4f4a1c875d0baa92ab5d92f3fb1bb258ad9f3e5b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -125,7 +125,7 @@ theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (k * f) := fun z =>
tendsto_nhds.2 fun s hs hs0 =>
l.sets_of_superset ((tendsto_nhds.1 (hf <| z + 1)) s hs hs0) fun x hx => by
- simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ'] using hx
+ simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ] using hx
#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mul
-/
@@ -142,7 +142,7 @@ theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n
by
induction' n with n hn
· simpa only [one_mul, pow_zero] using hf
- · simpa only [pow_succ, mul_assoc] using hn.param_mul
+ · simpa only [pow_succ', mul_assoc] using hn.param_mul
#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mul
-/
@@ -283,7 +283,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
((eventually_map.1 hm).mp _)
refine' (hk.eventually_ne_at_top 0).mono fun x hk0 hx => _
refine' Eq.trans_le _ (mul_le_mul_of_nonneg_left hx <| abs_nonneg (k x)⁻¹)
- rw [← abs_mul, ← mul_assoc, pow_succ, ← mul_assoc, inv_mul_cancel hk0, one_mul]
+ rw [← abs_mul, ← mul_assoc, pow_succ', ← mul_assoc, inv_mul_cancel hk0, one_mul]
#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder
-/
@@ -291,7 +291,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) :=
by
- refine' ⟨fun h z => _, fun h n => by simpa only [zpow_coe_nat] using h (n : ℤ)⟩
+ refine' ⟨fun h z => _, fun h n => by simpa only [zpow_natCast] using h (n : ℤ)⟩
by_cases hz : 0 ≤ z
· lift z to ℕ using hz
simpa using h z
@@ -361,7 +361,7 @@ theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ
induction' n with n hn
· simp
·
- simpa [pow_succ, ← mul_comm k, mul_assoc,
+ simpa [pow_succ', ← mul_comm k, mul_assoc,
superpolynomial_decay_param_mul_iff (k ^ n * f) hk] using hn
#align asymptotics.superpolynomial_decay_param_pow_mul_iff Asymptotics.superpolynomialDecay_param_pow_mul_iff
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -291,7 +291,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) :=
by
- refine' ⟨fun h z => _, fun h n => by simpa only [zpow_ofNat] using h (n : ℤ)⟩
+ refine' ⟨fun h z => _, fun h n => by simpa only [zpow_coe_nat] using h (n : ℤ)⟩
by_cases hz : 0 ≤ z
· lift z to ℕ using hz
simpa using h z
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Devon Tuma. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Devon Tuma
-/
-import Mathbin.Analysis.Asymptotics.Asymptotics
-import Mathbin.Analysis.Normed.Order.Basic
-import Mathbin.Data.Polynomial.Eval
-import Mathbin.Topology.Algebra.Order.LiminfLimsup
+import Analysis.Asymptotics.Asymptotics
+import Analysis.Normed.Order.Basic
+import Data.Polynomial.Eval
+import Topology.Algebra.Order.LiminfLimsup
#align_import analysis.asymptotics.superpolynomial_decay from "leanprover-community/mathlib"@"4f4a1c875d0baa92ab5d92f3fb1bb258ad9f3e5b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Devon Tuma. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Devon Tuma
-
-! This file was ported from Lean 3 source module analysis.asymptotics.superpolynomial_decay
-! leanprover-community/mathlib commit 4f4a1c875d0baa92ab5d92f3fb1bb258ad9f3e5b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Asymptotics.Asymptotics
import Mathbin.Analysis.Normed.Order.Basic
import Mathbin.Data.Polynomial.Eval
import Mathbin.Topology.Algebra.Order.LiminfLimsup
+#align_import analysis.asymptotics.superpolynomial_decay from "leanprover-community/mathlib"@"4f4a1c875d0baa92ab5d92f3fb1bb258ad9f3e5b"
+
/-!
# Super-Polynomial Function Decay
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -74,53 +74,72 @@ section CommSemiring
variable [TopologicalSpace β] [CommSemiring β]
+#print Asymptotics.SuperpolynomialDecay.congr' /-
theorem SuperpolynomialDecay.congr' (hf : SuperpolynomialDecay l k f) (hfg : f =ᶠ[l] g) :
SuperpolynomialDecay l k g := fun z =>
(hf z).congr' (EventuallyEq.mul (EventuallyEq.refl l _) hfg)
#align asymptotics.superpolynomial_decay.congr' Asymptotics.SuperpolynomialDecay.congr'
+-/
+#print Asymptotics.SuperpolynomialDecay.congr /-
theorem SuperpolynomialDecay.congr (hf : SuperpolynomialDecay l k f) (hfg : ∀ x, f x = g x) :
SuperpolynomialDecay l k g := fun z =>
(hf z).congr fun x => (congr_arg fun a => k x ^ z * a) <| hfg x
#align asymptotics.superpolynomial_decay.congr Asymptotics.SuperpolynomialDecay.congr
+-/
+#print Asymptotics.superpolynomialDecay_zero /-
@[simp]
theorem superpolynomialDecay_zero (l : Filter α) (k : α → β) : SuperpolynomialDecay l k 0 :=
fun z => by simpa only [Pi.zero_apply, MulZeroClass.mul_zero] using tendsto_const_nhds
#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zero
+-/
+#print Asymptotics.SuperpolynomialDecay.add /-
theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f + g) := fun z => by
simpa only [mul_add, add_zero, Pi.add_apply] using (hf z).add (hg z)
#align asymptotics.superpolynomial_decay.add Asymptotics.SuperpolynomialDecay.add
+-/
+#print Asymptotics.SuperpolynomialDecay.mul /-
theorem SuperpolynomialDecay.mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f * g) := fun z => by
simpa only [mul_assoc, one_mul, MulZeroClass.mul_zero, pow_zero] using (hf z).mul (hg 0)
#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mul
+-/
+#print Asymptotics.SuperpolynomialDecay.mul_const /-
theorem SuperpolynomialDecay.mul_const [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => f n * c := fun z => by
simpa only [← mul_assoc, MulZeroClass.zero_mul] using tendsto.mul_const c (hf z)
#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_const
+-/
+#print Asymptotics.SuperpolynomialDecay.const_mul /-
theorem SuperpolynomialDecay.const_mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => c * f n :=
(hf.mul_const c).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.const_mul Asymptotics.SuperpolynomialDecay.const_mul
+-/
+#print Asymptotics.SuperpolynomialDecay.param_mul /-
theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (k * f) := fun z =>
tendsto_nhds.2 fun s hs hs0 =>
l.sets_of_superset ((tendsto_nhds.1 (hf <| z + 1)) s hs hs0) fun x hx => by
simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ'] using hx
#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mul
+-/
+#print Asymptotics.SuperpolynomialDecay.mul_param /-
theorem SuperpolynomialDecay.mul_param (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (f * k) :=
hf.param_mul.congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param Asymptotics.SuperpolynomialDecay.mul_param
+-/
+#print Asymptotics.SuperpolynomialDecay.param_pow_mul /-
theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n : ℕ) :
SuperpolynomialDecay l k (k ^ n * f) :=
by
@@ -128,24 +147,31 @@ theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n
· simpa only [one_mul, pow_zero] using hf
· simpa only [pow_succ, mul_assoc] using hn.param_mul
#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mul
+-/
+#print Asymptotics.SuperpolynomialDecay.mul_param_pow /-
theorem SuperpolynomialDecay.mul_param_pow (hf : SuperpolynomialDecay l k f) (n : ℕ) :
SuperpolynomialDecay l k (f * k ^ n) :=
(hf.param_pow_mul n).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param_pow Asymptotics.SuperpolynomialDecay.mul_param_pow
+-/
+#print Asymptotics.SuperpolynomialDecay.polynomial_mul /-
theorem SuperpolynomialDecay.polynomial_mul [ContinuousAdd β] [ContinuousMul β]
(hf : SuperpolynomialDecay l k f) (p : β[X]) :
SuperpolynomialDecay l k fun x => (p.eval <| k x) * f x :=
Polynomial.induction_on' p (fun p q hp hq => by simpa [add_mul] using hp.add hq) fun n c => by
simpa [mul_assoc] using (hf.param_pow_mul n).const_mul c
#align asymptotics.superpolynomial_decay.polynomial_mul Asymptotics.SuperpolynomialDecay.polynomial_mul
+-/
+#print Asymptotics.SuperpolynomialDecay.mul_polynomial /-
theorem SuperpolynomialDecay.mul_polynomial [ContinuousAdd β] [ContinuousMul β]
(hf : SuperpolynomialDecay l k f) (p : β[X]) :
SuperpolynomialDecay l k fun x => f x * (p.eval <| k x) :=
(hf.polynomial_mul p).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_polynomial Asymptotics.SuperpolynomialDecay.mul_polynomial
+-/
end CommSemiring
@@ -153,6 +179,7 @@ section OrderedCommSemiring
variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
+#print Asymptotics.SuperpolynomialDecay.trans_eventuallyLE /-
theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
(hg' : SuperpolynomialDecay l k g') (hfg : g ≤ᶠ[l] f) (hfg' : f ≤ᶠ[l] g') :
SuperpolynomialDecay l k f := fun z =>
@@ -160,6 +187,7 @@ theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : Super
(hfg.mp (hk.mono fun x hx hx' => mul_le_mul_of_nonneg_left hx' (pow_nonneg hx z)))
(hfg'.mp (hk.mono fun x hx hx' => mul_le_mul_of_nonneg_left hx' (pow_nonneg hx z)))
#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLE
+-/
end OrderedCommSemiring
@@ -169,20 +197,25 @@ variable [TopologicalSpace β] [LinearOrderedCommRing β] [OrderTopology β]
variable (l k f)
+#print Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero /-
theorem superpolynomialDecay_iff_abs_tendsto_zero :
SuperpolynomialDecay l k f ↔ ∀ n : ℕ, Tendsto (fun a : α => |k a ^ n * f a|) l (𝓝 0) :=
⟨fun h z => (tendsto_zero_iff_abs_tendsto_zero _).1 (h z), fun h z =>
(tendsto_zero_iff_abs_tendsto_zero _).2 (h z)⟩
#align asymptotics.superpolynomial_decay_iff_abs_tendsto_zero Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero
+-/
+#print Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_abs /-
theorem superpolynomialDecay_iff_superpolynomialDecay_abs :
SuperpolynomialDecay l k f ↔ SuperpolynomialDecay l (fun a => |k a|) fun a => |f a| :=
(superpolynomialDecay_iff_abs_tendsto_zero l k f).trans
(by simp_rw [superpolynomial_decay, abs_mul, abs_pow])
#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_abs Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_abs
+-/
variable {l k f}
+#print Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le /-
theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : abs ∘ g ≤ᶠ[l] abs ∘ f) : SuperpolynomialDecay l k g :=
by
@@ -195,11 +228,14 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
_ ≤ |k x ^ z| * |f x| := (mul_le_mul le_rfl hx (abs_nonneg _) (abs_nonneg _))
_ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
+-/
+#print Asymptotics.SuperpolynomialDecay.trans_abs_le /-
theorem SuperpolynomialDecay.trans_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : ∀ x, |g x| ≤ |f x|) : SuperpolynomialDecay l k g :=
hf.trans_eventually_abs_le (eventually_of_forall hfg)
#align asymptotics.superpolynomial_decay.trans_abs_le Asymptotics.SuperpolynomialDecay.trans_abs_le
+-/
end LinearOrderedCommRing
@@ -207,17 +243,21 @@ section Field
variable [TopologicalSpace β] [Field β] (l k f)
+#print Asymptotics.superpolynomialDecay_mul_const_iff /-
theorem superpolynomialDecay_mul_const_iff [ContinuousMul β] {c : β} (hc0 : c ≠ 0) :
(SuperpolynomialDecay l k fun n => f n * c) ↔ SuperpolynomialDecay l k f :=
⟨fun h => (h.mul_const c⁻¹).congr fun x => by simp [mul_assoc, mul_inv_cancel hc0], fun h =>
h.mul_const c⟩
#align asymptotics.superpolynomial_decay_mul_const_iff Asymptotics.superpolynomialDecay_mul_const_iff
+-/
+#print Asymptotics.superpolynomialDecay_const_mul_iff /-
theorem superpolynomialDecay_const_mul_iff [ContinuousMul β] {c : β} (hc0 : c ≠ 0) :
(SuperpolynomialDecay l k fun n => c * f n) ↔ SuperpolynomialDecay l k f :=
⟨fun h => (h.const_mul c⁻¹).congr fun x => by simp [← mul_assoc, inv_mul_cancel hc0], fun h =>
h.const_mul c⟩
#align asymptotics.superpolynomial_decay_const_mul_iff Asymptotics.superpolynomialDecay_const_mul_iff
+-/
variable {l k f}
@@ -229,6 +269,7 @@ variable [TopologicalSpace β] [LinearOrderedField β] [OrderTopology β]
variable (f)
+#print Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder /-
theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℕ, IsBoundedUnder (· ≤ ·) l fun a : α => |k a ^ z * f a| :=
by
@@ -247,7 +288,9 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
refine' Eq.trans_le _ (mul_le_mul_of_nonneg_left hx <| abs_nonneg (k x)⁻¹)
rw [← abs_mul, ← mul_assoc, pow_succ, ← mul_assoc, inv_mul_cancel hk0, one_mul]
#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder
+-/
+#print Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero /-
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) :=
by
@@ -260,9 +303,11 @@ theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
have h : tendsto f l (𝓝 0) := by simpa using h 0
exact MulZeroClass.zero_mul (0 : β) ▸ this.mul h
#align asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero
+-/
variable {f}
+#print Asymptotics.SuperpolynomialDecay.param_zpow_mul /-
theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => k a ^ z * f a :=
by
@@ -270,24 +315,32 @@ theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
refine' fun z' => (hf <| z' + z).congr' ((hk.eventually_ne_at_top 0).mono fun x hx => _)
simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mul
+-/
+#print Asymptotics.SuperpolynomialDecay.mul_param_zpow /-
theorem SuperpolynomialDecay.mul_param_zpow (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => f a * k a ^ z :=
(hf.param_zpow_mul hk z).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param_zpow Asymptotics.SuperpolynomialDecay.mul_param_zpow
+-/
+#print Asymptotics.SuperpolynomialDecay.inv_param_mul /-
theorem SuperpolynomialDecay.inv_param_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) : SuperpolynomialDecay l k (k⁻¹ * f) := by
simpa using hf.param_zpow_mul hk (-1)
#align asymptotics.superpolynomial_decay.inv_param_mul Asymptotics.SuperpolynomialDecay.inv_param_mul
+-/
+#print Asymptotics.SuperpolynomialDecay.param_inv_mul /-
theorem SuperpolynomialDecay.param_inv_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) : SuperpolynomialDecay l k (f * k⁻¹) :=
(hf.inv_param_mul hk).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.param_inv_mul Asymptotics.SuperpolynomialDecay.param_inv_mul
+-/
variable (f)
+#print Asymptotics.superpolynomialDecay_param_mul_iff /-
theorem superpolynomialDecay_param_mul_iff (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k (k * f) ↔ SuperpolynomialDecay l k f :=
⟨fun h =>
@@ -295,12 +348,16 @@ theorem superpolynomialDecay_param_mul_iff (hk : Tendsto k l atTop) :
((hk.eventually_ne_atTop 0).mono fun x hx => by simp [← mul_assoc, inv_mul_cancel hx]),
fun h => h.param_mul⟩
#align asymptotics.superpolynomial_decay_param_mul_iff Asymptotics.superpolynomialDecay_param_mul_iff
+-/
+#print Asymptotics.superpolynomialDecay_mul_param_iff /-
theorem superpolynomialDecay_mul_param_iff (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k (f * k) ↔ SuperpolynomialDecay l k f := by
simpa [mul_comm k] using superpolynomial_decay_param_mul_iff f hk
#align asymptotics.superpolynomial_decay_mul_param_iff Asymptotics.superpolynomialDecay_mul_param_iff
+-/
+#print Asymptotics.superpolynomialDecay_param_pow_mul_iff /-
theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ) :
SuperpolynomialDecay l k (k ^ n * f) ↔ SuperpolynomialDecay l k f :=
by
@@ -310,11 +367,14 @@ theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ
simpa [pow_succ, ← mul_comm k, mul_assoc,
superpolynomial_decay_param_mul_iff (k ^ n * f) hk] using hn
#align asymptotics.superpolynomial_decay_param_pow_mul_iff Asymptotics.superpolynomialDecay_param_pow_mul_iff
+-/
+#print Asymptotics.superpolynomialDecay_mul_param_pow_iff /-
theorem superpolynomialDecay_mul_param_pow_iff (hk : Tendsto k l atTop) (n : ℕ) :
SuperpolynomialDecay l k (f * k ^ n) ↔ SuperpolynomialDecay l k f := by
simpa [mul_comm f] using superpolynomial_decay_param_pow_mul_iff f hk n
#align asymptotics.superpolynomial_decay_mul_param_pow_iff Asymptotics.superpolynomialDecay_mul_param_pow_iff
+-/
variable {f}
@@ -326,21 +386,26 @@ variable [NormedLinearOrderedField β]
variable (l k f)
+#print Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero /-
theorem superpolynomialDecay_iff_norm_tendsto_zero :
SuperpolynomialDecay l k f ↔ ∀ n : ℕ, Tendsto (fun a : α => ‖k a ^ n * f a‖) l (𝓝 0) :=
⟨fun h z => tendsto_zero_iff_norm_tendsto_zero.1 (h z), fun h z =>
tendsto_zero_iff_norm_tendsto_zero.2 (h z)⟩
#align asymptotics.superpolynomial_decay_iff_norm_tendsto_zero Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero
+-/
+#print Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm /-
theorem superpolynomialDecay_iff_superpolynomialDecay_norm :
SuperpolynomialDecay l k f ↔ SuperpolynomialDecay l (fun a => ‖k a‖) fun a => ‖f a‖ :=
(superpolynomialDecay_iff_norm_tendsto_zero l k f).trans (by simp [superpolynomial_decay])
#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_norm Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm
+-/
variable {l k}
variable [OrderTopology β]
+#print Asymptotics.superpolynomialDecay_iff_isBigO /-
theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =O[l] fun a : α => k a ^ z :=
by
@@ -359,7 +424,9 @@ theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
simp only [one_mul, neg_add z 1, zpow_add₀ ha0, ← mul_assoc, zpow_neg,
mul_inv_cancel (zpow_ne_zero z ha0), zpow_one]
#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isBigO
+-/
+#print Asymptotics.superpolynomialDecay_iff_isLittleO /-
theorem superpolynomialDecay_iff_isLittleO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =o[l] fun a : α => k a ^ z :=
by
@@ -373,6 +440,7 @@ theorem superpolynomialDecay_iff_isLittleO (hk : Tendsto k l atTop) :
refine' this.trans_is_O (is_O.of_bound 1 (hk0.mono fun x hkx => le_of_eq _))
rw [one_mul, zpow_sub_one₀ hkx, mul_comm (k x), mul_assoc, inv_mul_cancel hkx, mul_one]
#align asymptotics.superpolynomial_decay_iff_is_o Asymptotics.superpolynomialDecay_iff_isLittleO
+-/
end NormedLinearOrderedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -194,7 +194,6 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
|k x ^ z * g x| = |k x ^ z| * |g x| := abs_mul (k x ^ z) (g x)
_ ≤ |k x ^ z| * |f x| := (mul_le_mul le_rfl hx (abs_nonneg _) (abs_nonneg _))
_ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
-
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
theorem SuperpolynomialDecay.trans_abs_le (hf : SuperpolynomialDecay l k f)
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -186,7 +186,7 @@ variable {l k f}
theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : abs ∘ g ≤ᶠ[l] abs ∘ f) : SuperpolynomialDecay l k g :=
by
- rw [superpolynomial_decay_iff_abs_tendsto_zero] at hf⊢
+ rw [superpolynomial_decay_iff_abs_tendsto_zero] at hf ⊢
refine' fun z =>
tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds (hf z)
(eventually_of_forall fun x => abs_nonneg _) (hfg.mono fun x hx => _)
@@ -267,7 +267,7 @@ variable {f}
theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => k a ^ z * f a :=
by
- rw [superpolynomial_decay_iff_zpow_tendsto_zero _ hk] at hf⊢
+ rw [superpolynomial_decay_iff_zpow_tendsto_zero _ hk] at hf ⊢
refine' fun z' => (hf <| z' + z).congr' ((hk.eventually_ne_at_top 0).mono fun x hx => _)
simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mul
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -55,7 +55,7 @@ https://ncatlab.org/nlab/show/rapidly+decreasing+function
namespace Asymptotics
-open Topology Polynomial
+open scoped Topology Polynomial
open Filter
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -74,89 +74,41 @@ section CommSemiring
variable [TopologicalSpace β] [CommSemiring β]
-/- warning: asymptotics.superpolynomial_decay.congr' -> Asymptotics.SuperpolynomialDecay.congr' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Filter.EventuallyEq.{u1, u2} α β l f g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (Filter.EventuallyEq.{u2, u1} α β l f g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k g)
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.congr' Asymptotics.SuperpolynomialDecay.congr'ₓ'. -/
theorem SuperpolynomialDecay.congr' (hf : SuperpolynomialDecay l k f) (hfg : f =ᶠ[l] g) :
SuperpolynomialDecay l k g := fun z =>
(hf z).congr' (EventuallyEq.mul (EventuallyEq.refl l _) hfg)
#align asymptotics.superpolynomial_decay.congr' Asymptotics.SuperpolynomialDecay.congr'
-/- warning: asymptotics.superpolynomial_decay.congr -> Asymptotics.SuperpolynomialDecay.congr is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (x : α), Eq.{succ u2} β (f x) (g x)) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (forall (x : α), Eq.{succ u1} β (f x) (g x)) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k g)
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.congr Asymptotics.SuperpolynomialDecay.congrₓ'. -/
theorem SuperpolynomialDecay.congr (hf : SuperpolynomialDecay l k f) (hfg : ∀ x, f x = g x) :
SuperpolynomialDecay l k g := fun z =>
(hf z).congr fun x => (congr_arg fun a => k x ^ z * a) <| hfg x
#align asymptotics.superpolynomial_decay.congr Asymptotics.SuperpolynomialDecay.congr
-/- warning: asymptotics.superpolynomial_decay_zero -> Asymptotics.superpolynomialDecay_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] (l : Filter.{u1} α) (k : α -> β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))))))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β] (l : Filter.{u2} α) (k : α -> β), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.20 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zeroₓ'. -/
@[simp]
theorem superpolynomialDecay_zero (l : Filter α) (k : α → β) : SuperpolynomialDecay l k 0 :=
fun z => by simpa only [Pi.zero_apply, MulZeroClass.mul_zero] using tendsto_const_nhds
#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zero
-/- warning: asymptotics.superpolynomial_decay.add -> Asymptotics.SuperpolynomialDecay.add is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f g))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f g))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.add Asymptotics.SuperpolynomialDecay.addₓ'. -/
theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f + g) := fun z => by
simpa only [mul_add, add_zero, Pi.add_apply] using (hf z).add (hg z)
#align asymptotics.superpolynomial_decay.add Asymptotics.SuperpolynomialDecay.add
-/- warning: asymptotics.superpolynomial_decay.mul -> Asymptotics.SuperpolynomialDecay.mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f g))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) f g))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mulₓ'. -/
theorem SuperpolynomialDecay.mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f * g) := fun z => by
simpa only [mul_assoc, one_mul, MulZeroClass.mul_zero, pow_zero] using (hf z).mul (hg 0)
#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mul
-/- warning: asymptotics.superpolynomial_decay.mul_const -> Asymptotics.SuperpolynomialDecay.mul_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) (f n) c))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) (f n) c))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_constₓ'. -/
theorem SuperpolynomialDecay.mul_const [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => f n * c := fun z => by
simpa only [← mul_assoc, MulZeroClass.zero_mul] using tendsto.mul_const c (hf z)
#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_const
-/- warning: asymptotics.superpolynomial_decay.const_mul -> Asymptotics.SuperpolynomialDecay.const_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) c (f n)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) c (f n)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.const_mul Asymptotics.SuperpolynomialDecay.const_mulₓ'. -/
theorem SuperpolynomialDecay.const_mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => c * f n :=
(hf.mul_const c).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.const_mul Asymptotics.SuperpolynomialDecay.const_mul
-/- warning: asymptotics.superpolynomial_decay.param_mul -> Asymptotics.SuperpolynomialDecay.param_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) k f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mulₓ'. -/
theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (k * f) := fun z =>
tendsto_nhds.2 fun s hs hs0 =>
@@ -164,23 +116,11 @@ theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ'] using hx
#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mul
-/- warning: asymptotics.superpolynomial_decay.mul_param -> Asymptotics.SuperpolynomialDecay.mul_param is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f k))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) f k))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_param Asymptotics.SuperpolynomialDecay.mul_paramₓ'. -/
theorem SuperpolynomialDecay.mul_param (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (f * k) :=
hf.param_mul.congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param Asymptotics.SuperpolynomialDecay.mul_param
-/- warning: asymptotics.superpolynomial_decay.param_pow_mul -> Asymptotics.SuperpolynomialDecay.param_pow_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (MonoidWithZero.toMonoid.{u2} β (Semiring.toMonoidWithZero.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) k n) f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) k n) f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mulₓ'. -/
theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n : ℕ) :
SuperpolynomialDecay l k (k ^ n * f) :=
by
@@ -189,23 +129,11 @@ theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n
· simpa only [pow_succ, mul_assoc] using hn.param_mul
#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mul
-/- warning: asymptotics.superpolynomial_decay.mul_param_pow -> Asymptotics.SuperpolynomialDecay.mul_param_pow is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (MonoidWithZero.toMonoid.{u2} β (Semiring.toMonoidWithZero.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) k n)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) f (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) k n)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_param_pow Asymptotics.SuperpolynomialDecay.mul_param_powₓ'. -/
theorem SuperpolynomialDecay.mul_param_pow (hf : SuperpolynomialDecay l k f) (n : ℕ) :
SuperpolynomialDecay l k (f * k ^ n) :=
(hf.param_pow_mul n).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param_pow Asymptotics.SuperpolynomialDecay.mul_param_pow
-/- warning: asymptotics.superpolynomial_decay.polynomial_mul -> Asymptotics.SuperpolynomialDecay.polynomial_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p) (f x)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p) (f x)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.polynomial_mul Asymptotics.SuperpolynomialDecay.polynomial_mulₓ'. -/
theorem SuperpolynomialDecay.polynomial_mul [ContinuousAdd β] [ContinuousMul β]
(hf : SuperpolynomialDecay l k f) (p : β[X]) :
SuperpolynomialDecay l k fun x => (p.eval <| k x) * f x :=
@@ -213,12 +141,6 @@ theorem SuperpolynomialDecay.polynomial_mul [ContinuousAdd β] [ContinuousMul β
simpa [mul_assoc] using (hf.param_pow_mul n).const_mul c
#align asymptotics.superpolynomial_decay.polynomial_mul Asymptotics.SuperpolynomialDecay.polynomial_mul
-/- warning: asymptotics.superpolynomial_decay.mul_polynomial -> Asymptotics.SuperpolynomialDecay.mul_polynomial is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) (f x) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) (f x) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_polynomial Asymptotics.SuperpolynomialDecay.mul_polynomialₓ'. -/
theorem SuperpolynomialDecay.mul_polynomial [ContinuousAdd β] [ContinuousMul β]
(hf : SuperpolynomialDecay l k f) (p : β[X]) :
SuperpolynomialDecay l k fun x => f x * (p.eval <| k x) :=
@@ -231,12 +153,6 @@ section OrderedCommSemiring
variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
-/- warning: asymptotics.superpolynomial_decay.trans_eventually_le -> Asymptotics.SuperpolynomialDecay.trans_eventuallyLE is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : OrderedCommSemiring.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))], (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (OrderedSemiring.toSemiring.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2)))))))))) k) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g') -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l g f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k f)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21854 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLEₓ'. -/
theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
(hg' : SuperpolynomialDecay l k g') (hfg : g ≤ᶠ[l] f) (hfg' : f ≤ᶠ[l] g') :
SuperpolynomialDecay l k f := fun z =>
@@ -253,24 +169,12 @@ variable [TopologicalSpace β] [LinearOrderedCommRing β] [OrderTopology β]
variable (l k f)
-/- warning: asymptotics.superpolynomial_decay_iff_abs_tendsto_zero -> Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) (forall (n : Nat), Filter.Tendsto.{u1, u2} α β (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (k a) n) (f a))) l (nhds.{u2} β _inst_1 (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))))))))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) (forall (n : Nat), Filter.Tendsto.{u2, u1} α β (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (StrictOrderedSemiring.toSemiring.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2)))))))) (k a) n) (f a))) l (nhds.{u1} β _inst_1 (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} β (IsDomain.toCancelCommMonoidWithZero.{u1} β (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) (LinearOrderedRing.isDomain.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_abs_tendsto_zero Asymptotics.superpolynomialDecay_iff_abs_tendsto_zeroₓ'. -/
theorem superpolynomialDecay_iff_abs_tendsto_zero :
SuperpolynomialDecay l k f ↔ ∀ n : ℕ, Tendsto (fun a : α => |k a ^ n * f a|) l (𝓝 0) :=
⟨fun h z => (tendsto_zero_iff_abs_tendsto_zero _).1 (h z), fun h z =>
(tendsto_zero_iff_abs_tendsto_zero _).2 (h z)⟩
#align asymptotics.superpolynomial_decay_iff_abs_tendsto_zero Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero
-/- warning: asymptotics.superpolynomial_decay_iff_superpolynomial_decay_abs -> Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_abs is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (k a)) (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (f a)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (k a)) (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (f a)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_abs Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_absₓ'. -/
theorem superpolynomialDecay_iff_superpolynomialDecay_abs :
SuperpolynomialDecay l k f ↔ SuperpolynomialDecay l (fun a => |k a|) fun a => |f a| :=
(superpolynomialDecay_iff_abs_tendsto_zero l k f).trans
@@ -279,12 +183,6 @@ theorem superpolynomialDecay_iff_superpolynomialDecay_abs :
variable {l k f}
-/- warning: asymptotics.superpolynomial_decay.trans_eventually_abs_le -> Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) l (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) g) (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))) l (Function.comp.{succ u2, succ u1, succ u1} α β β (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))) g) (Function.comp.{succ u2, succ u1, succ u1} α β β (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k g)
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_leₓ'. -/
theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : abs ∘ g ≤ᶠ[l] abs ∘ f) : SuperpolynomialDecay l k g :=
by
@@ -299,12 +197,6 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
-/- warning: asymptotics.superpolynomial_decay.trans_abs_le -> Asymptotics.SuperpolynomialDecay.trans_abs_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (g x)) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))) (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (g x)) (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k g)
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_abs_le Asymptotics.SuperpolynomialDecay.trans_abs_leₓ'. -/
theorem SuperpolynomialDecay.trans_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : ∀ x, |g x| ≤ |f x|) : SuperpolynomialDecay l k g :=
hf.trans_eventually_abs_le (eventually_of_forall hfg)
@@ -316,24 +208,12 @@ section Field
variable [TopologicalSpace β] [Field β] (l k f)
-/- warning: asymptotics.superpolynomial_decay_mul_const_iff -> Asymptotics.superpolynomialDecay_mul_const_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))) (f n) c)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))) (f n) c)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_mul_const_iff Asymptotics.superpolynomialDecay_mul_const_iffₓ'. -/
theorem superpolynomialDecay_mul_const_iff [ContinuousMul β] {c : β} (hc0 : c ≠ 0) :
(SuperpolynomialDecay l k fun n => f n * c) ↔ SuperpolynomialDecay l k f :=
⟨fun h => (h.mul_const c⁻¹).congr fun x => by simp [mul_assoc, mul_inv_cancel hc0], fun h =>
h.mul_const c⟩
#align asymptotics.superpolynomial_decay_mul_const_iff Asymptotics.superpolynomialDecay_mul_const_iff
-/- warning: asymptotics.superpolynomial_decay_const_mul_iff -> Asymptotics.superpolynomialDecay_const_mul_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))) c (f n))) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))) c (f n))) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_const_mul_iff Asymptotics.superpolynomialDecay_const_mul_iffₓ'. -/
theorem superpolynomialDecay_const_mul_iff [ContinuousMul β] {c : β} (hc0 : c ≠ 0) :
(SuperpolynomialDecay l k fun n => c * f n) ↔ SuperpolynomialDecay l k f :=
⟨fun h => (h.const_mul c⁻¹).congr fun x => by simp [← mul_assoc, inv_mul_cancel hc0], fun h =>
@@ -350,12 +230,6 @@ variable [TopologicalSpace β] [LinearOrderedField β] [OrderTopology β]
variable (f)
-/- warning: asymptotics.superpolynomial_decay_iff_abs_is_bounded_under -> Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u2, u1} β α (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (k a) z) (f a)))))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u1, u2} β α (fun (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1979 : β) (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 : β) => LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))) x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1979 x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2)))))))) (k a) z) (f a)))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnderₓ'. -/
theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℕ, IsBoundedUnder (· ≤ ·) l fun a : α => |k a ^ z * f a| :=
by
@@ -375,12 +249,6 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
rw [← abs_mul, ← mul_assoc, pow_succ, ← mul_assoc, inv_mul_cancel hk0, one_mul]
#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder
-/- warning: asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero -> Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Int), Filter.Tendsto.{u1, u2} α β (fun (a : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) (k a) z) (f a)) l (nhds.{u2} β _inst_1 (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))))))))))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Int), Filter.Tendsto.{u2, u1} α β (fun (a : α) => HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))) (k a) z) (f a)) l (nhds.{u1} β _inst_1 (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))))))))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zeroₓ'. -/
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) :=
by
@@ -396,12 +264,6 @@ theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
variable {f}
-/- warning: asymptotics.superpolynomial_decay.param_zpow_mul -> Asymptotics.SuperpolynomialDecay.param_zpow_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) (k a) z) (f a)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))) (k a) z) (f a)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mulₓ'. -/
theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => k a ^ z * f a :=
by
@@ -410,34 +272,16 @@ theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mul
-/- warning: asymptotics.superpolynomial_decay.mul_param_zpow -> Asymptotics.SuperpolynomialDecay.mul_param_zpow is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (f a) (HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) (k a) z)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (f a) (HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))) (k a) z)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_param_zpow Asymptotics.SuperpolynomialDecay.mul_param_zpowₓ'. -/
theorem SuperpolynomialDecay.mul_param_zpow (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => f a * k a ^ z :=
(hf.param_zpow_mul hk z).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param_zpow Asymptotics.SuperpolynomialDecay.mul_param_zpow
-/- warning: asymptotics.superpolynomial_decay.inv_param_mul -> Asymptotics.SuperpolynomialDecay.inv_param_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) k) f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) (Inv.inv.{max u2 u1} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedField.toInv.{u1} β _inst_2)) k) f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.inv_param_mul Asymptotics.SuperpolynomialDecay.inv_param_mulₓ'. -/
theorem SuperpolynomialDecay.inv_param_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) : SuperpolynomialDecay l k (k⁻¹ * f) := by
simpa using hf.param_zpow_mul hk (-1)
#align asymptotics.superpolynomial_decay.inv_param_mul Asymptotics.SuperpolynomialDecay.inv_param_mul
-/- warning: asymptotics.superpolynomial_decay.param_inv_mul -> Asymptotics.SuperpolynomialDecay.param_inv_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) f (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) k)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) f (Inv.inv.{max u2 u1} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedField.toInv.{u1} β _inst_2)) k)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_inv_mul Asymptotics.SuperpolynomialDecay.param_inv_mulₓ'. -/
theorem SuperpolynomialDecay.param_inv_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) : SuperpolynomialDecay l k (f * k⁻¹) :=
(hf.inv_param_mul hk).congr fun _ => mul_comm _ _
@@ -445,12 +289,6 @@ theorem SuperpolynomialDecay.param_inv_mul (hk : Tendsto k l atTop)
variable (f)
-/- warning: asymptotics.superpolynomial_decay_param_mul_iff -> Asymptotics.superpolynomialDecay_param_mul_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) k f)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) k f)) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_param_mul_iff Asymptotics.superpolynomialDecay_param_mul_iffₓ'. -/
theorem superpolynomialDecay_param_mul_iff (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k (k * f) ↔ SuperpolynomialDecay l k f :=
⟨fun h =>
@@ -459,23 +297,11 @@ theorem superpolynomialDecay_param_mul_iff (hk : Tendsto k l atTop) :
fun h => h.param_mul⟩
#align asymptotics.superpolynomial_decay_param_mul_iff Asymptotics.superpolynomialDecay_param_mul_iff
-/- warning: asymptotics.superpolynomial_decay_mul_param_iff -> Asymptotics.superpolynomialDecay_mul_param_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) f k)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) f k)) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_mul_param_iff Asymptotics.superpolynomialDecay_mul_param_iffₓ'. -/
theorem superpolynomialDecay_mul_param_iff (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k (f * k) ↔ SuperpolynomialDecay l k f := by
simpa [mul_comm k] using superpolynomial_decay_param_mul_iff f hk
#align asymptotics.superpolynomial_decay_mul_param_iff Asymptotics.superpolynomialDecay_mul_param_iff
-/- warning: asymptotics.superpolynomial_decay_param_pow_mul_iff -> Asymptotics.superpolynomialDecay_param_pow_mul_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) k n) f)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))))))))) k n) f)) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_param_pow_mul_iff Asymptotics.superpolynomialDecay_param_pow_mul_iffₓ'. -/
theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ) :
SuperpolynomialDecay l k (k ^ n * f) ↔ SuperpolynomialDecay l k f :=
by
@@ -486,12 +312,6 @@ theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ
superpolynomial_decay_param_mul_iff (k ^ n * f) hk] using hn
#align asymptotics.superpolynomial_decay_param_pow_mul_iff Asymptotics.superpolynomialDecay_param_pow_mul_iff
-/- warning: asymptotics.superpolynomial_decay_mul_param_pow_iff -> Asymptotics.superpolynomialDecay_mul_param_pow_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) f (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) k n))) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) f (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))))))))) k n))) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_mul_param_pow_iff Asymptotics.superpolynomialDecay_mul_param_pow_iffₓ'. -/
theorem superpolynomialDecay_mul_param_pow_iff (hk : Tendsto k l atTop) (n : ℕ) :
SuperpolynomialDecay l k (f * k ^ n) ↔ SuperpolynomialDecay l k f := by
simpa [mul_comm f] using superpolynomial_decay_param_pow_mul_iff f hk n
@@ -507,24 +327,12 @@ variable [NormedLinearOrderedField β]
variable (l k f)
-/- warning: asymptotics.superpolynomial_decay_iff_norm_tendsto_zero -> Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (forall (n : Nat), Filter.Tendsto.{u1, 0} α Real (fun (a : α) => Norm.norm.{u2} β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (k a) n) (f a))) l (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (forall (n : Nat), Filter.Tendsto.{u2, 0} α Real (fun (a : α) => Norm.norm.{u1} β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1)))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1))))))))) (k a) n) (f a))) l (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_norm_tendsto_zero Asymptotics.superpolynomialDecay_iff_norm_tendsto_zeroₓ'. -/
theorem superpolynomialDecay_iff_norm_tendsto_zero :
SuperpolynomialDecay l k f ↔ ∀ n : ℕ, Tendsto (fun a : α => ‖k a ^ n * f a‖) l (𝓝 0) :=
⟨fun h z => tendsto_zero_iff_norm_tendsto_zero.1 (h z), fun h z =>
tendsto_zero_iff_norm_tendsto_zero.2 (h z)⟩
#align asymptotics.superpolynomial_decay_iff_norm_tendsto_zero Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero
-/- warning: asymptotics.superpolynomial_decay_iff_superpolynomial_decay_norm -> Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (Asymptotics.SuperpolynomialDecay.{u1, 0} α Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.commSemiring l (fun (a : α) => Norm.norm.{u2} β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (k a)) (fun (a : α) => Norm.norm.{u2} β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (f a)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (Asymptotics.SuperpolynomialDecay.{u2, 0} α Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.instCommSemiringReal l (fun (a : α) => Norm.norm.{u1} β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (k a)) (fun (a : α) => Norm.norm.{u1} β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (f a)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_norm Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_normₓ'. -/
theorem superpolynomialDecay_iff_superpolynomialDecay_norm :
SuperpolynomialDecay l k f ↔ SuperpolynomialDecay l (fun a => ‖k a‖) fun a => ‖f a‖ :=
(superpolynomialDecay_iff_norm_tendsto_zero l k f).trans (by simp [superpolynomial_decay])
@@ -534,12 +342,6 @@ variable {l k}
variable [OrderTopology β]
-/- warning: asymptotics.superpolynomial_decay_iff_is_O -> Asymptotics.superpolynomialDecay_iff_isBigO is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β] [_inst_2 : OrderTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) l f (fun (a : α) => HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1)))))) (k a) z)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β] [_inst_2 : OrderTopology.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1))))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (NormedLinearOrderedField.toNorm.{u1} β _inst_1) l f (fun (a : α) => HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (NormedDivisionRing.toDivisionRing.{u1} β (NormedField.toNormedDivisionRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1)))))) (k a) z)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isBigOₓ'. -/
theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =O[l] fun a : α => k a ^ z :=
by
@@ -559,12 +361,6 @@ theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
mul_inv_cancel (zpow_ne_zero z ha0), zpow_one]
#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isBigO
-/- warning: asymptotics.superpolynomial_decay_iff_is_o -> Asymptotics.superpolynomialDecay_iff_isLittleO is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β] [_inst_2 : OrderTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) l f (fun (a : α) => HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1)))))) (k a) z)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β] [_inst_2 : OrderTopology.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1))))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (NormedLinearOrderedField.toNorm.{u1} β _inst_1) l f (fun (a : α) => HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (NormedDivisionRing.toDivisionRing.{u1} β (NormedField.toNormedDivisionRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1)))))) (k a) z)))
-Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_is_o Asymptotics.superpolynomialDecay_iff_isLittleOₓ'. -/
theorem superpolynomialDecay_iff_isLittleO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =o[l] fun a : α => k a ^ z :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -233,7 +233,7 @@ variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
/- warning: asymptotics.superpolynomial_decay.trans_eventually_le -> Asymptotics.SuperpolynomialDecay.trans_eventuallyLE is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : OrderedCommSemiring.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))], (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (OrderedSemiring.toSemiring.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2)))))))))) k) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g') -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l g f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k f)
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : OrderedCommSemiring.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))], (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (OrderedSemiring.toSemiring.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2)))))))))) k) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g') -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l g f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k f)
but is expected to have type
forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21854 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLEₓ'. -/
@@ -281,7 +281,7 @@ variable {l k f}
/- warning: asymptotics.superpolynomial_decay.trans_eventually_abs_le -> Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) l (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) g) (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) l (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) g) (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
but is expected to have type
forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))) l (Function.comp.{succ u2, succ u1, succ u1} α β β (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))) g) (Function.comp.{succ u2, succ u1, succ u1} α β β (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k g)
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_leₓ'. -/
@@ -301,7 +301,7 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
/- warning: asymptotics.superpolynomial_decay.trans_abs_le -> Asymptotics.SuperpolynomialDecay.trans_abs_le is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (g x)) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (g x)) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
but is expected to have type
forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))) (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (g x)) (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k g)
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_abs_le Asymptotics.SuperpolynomialDecay.trans_abs_leₓ'. -/
@@ -352,7 +352,7 @@ variable (f)
/- warning: asymptotics.superpolynomial_decay_iff_abs_is_bounded_under -> Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u2, u1} β α (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (k a) z) (f a)))))
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u2, u1} β α (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (k a) z) (f a)))))
but is expected to have type
forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u1, u2} β α (fun (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1979 : β) (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 : β) => LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))) x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1979 x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2)))))))) (k a) z) (f a)))))
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnderₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -235,7 +235,7 @@ variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : OrderedCommSemiring.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))], (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (OrderedSemiring.toSemiring.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2)))))))))) k) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g') -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l g f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k f)
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21851 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21854 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLEₓ'. -/
theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
(hg' : SuperpolynomialDecay l k g') (hfg : g ≤ᶠ[l] f) (hfg' : f ≤ᶠ[l] g') :
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -235,7 +235,7 @@ variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : OrderedCommSemiring.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))], (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (OrderedSemiring.toSemiring.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2)))))))))) k) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g') -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l g f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k f)
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21857 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21851 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLEₓ'. -/
theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
(hg' : SuperpolynomialDecay l k g') (hfg : g ≤ᶠ[l] f) (hfg' : f ≤ᶠ[l] g') :
@@ -354,7 +354,7 @@ variable (f)
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u2, u1} β α (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (k a) z) (f a)))))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u1, u2} β α (fun (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 : β) (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1983 : β) => LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))) x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1983) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2)))))))) (k a) z) (f a)))))
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u1, u2} β α (fun (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1979 : β) (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 : β) => LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))) x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1979 x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2)))))))) (k a) z) (f a)))))
Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnderₓ'. -/
theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℕ, IsBoundedUnder (· ≤ ·) l fun a : α => |k a ^ z * f a| :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/4f4a1c875d0baa92ab5d92f3fb1bb258ad9f3e5b
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Devon Tuma
! This file was ported from Lean 3 source module analysis.asymptotics.superpolynomial_decay
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 4f4a1c875d0baa92ab5d92f3fb1bb258ad9f3e5b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.Topology.Algebra.Order.LiminfLimsup
/-!
# Super-Polynomial Function Decay
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines a predicate `asymptotics.superpolynomial_decay f` for a function satisfying
one of following equivalent definitions (The definition is in terms of the first condition):
mathlib commit https://github.com/leanprover-community/mathlib/commit/7ebf83ed9c262adbf983ef64d5e8c2ae94b625f4
@@ -56,12 +56,14 @@ open Topology Polynomial
open Filter
+#print Asymptotics.SuperpolynomialDecay /-
/-- `f` has superpolynomial decay in parameter `k` along filter `l` if
`k ^ n * f` tends to zero at `l` for all naturals `n` -/
def SuperpolynomialDecay {α β : Type _} [TopologicalSpace β] [CommSemiring β] (l : Filter α)
(k : α → β) (f : α → β) :=
∀ n : ℕ, Tendsto (fun a : α => k a ^ n * f a) l (𝓝 0)
#align asymptotics.superpolynomial_decay Asymptotics.SuperpolynomialDecay
+-/
variable {α β : Type _} {l : Filter α} {k : α → β} {f g g' : α → β}
@@ -69,41 +71,89 @@ section CommSemiring
variable [TopologicalSpace β] [CommSemiring β]
+/- warning: asymptotics.superpolynomial_decay.congr' -> Asymptotics.SuperpolynomialDecay.congr' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Filter.EventuallyEq.{u1, u2} α β l f g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (Filter.EventuallyEq.{u2, u1} α β l f g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k g)
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.congr' Asymptotics.SuperpolynomialDecay.congr'ₓ'. -/
theorem SuperpolynomialDecay.congr' (hf : SuperpolynomialDecay l k f) (hfg : f =ᶠ[l] g) :
SuperpolynomialDecay l k g := fun z =>
(hf z).congr' (EventuallyEq.mul (EventuallyEq.refl l _) hfg)
#align asymptotics.superpolynomial_decay.congr' Asymptotics.SuperpolynomialDecay.congr'
+/- warning: asymptotics.superpolynomial_decay.congr -> Asymptotics.SuperpolynomialDecay.congr is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (x : α), Eq.{succ u2} β (f x) (g x)) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (forall (x : α), Eq.{succ u1} β (f x) (g x)) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k g)
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.congr Asymptotics.SuperpolynomialDecay.congrₓ'. -/
theorem SuperpolynomialDecay.congr (hf : SuperpolynomialDecay l k f) (hfg : ∀ x, f x = g x) :
SuperpolynomialDecay l k g := fun z =>
(hf z).congr fun x => (congr_arg fun a => k x ^ z * a) <| hfg x
#align asymptotics.superpolynomial_decay.congr Asymptotics.SuperpolynomialDecay.congr
+/- warning: asymptotics.superpolynomial_decay_zero -> Asymptotics.superpolynomialDecay_zero is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] (l : Filter.{u1} α) (k : α -> β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))))))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β] (l : Filter.{u2} α) (k : α -> β), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.20 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zeroₓ'. -/
@[simp]
theorem superpolynomialDecay_zero (l : Filter α) (k : α → β) : SuperpolynomialDecay l k 0 :=
fun z => by simpa only [Pi.zero_apply, MulZeroClass.mul_zero] using tendsto_const_nhds
#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zero
+/- warning: asymptotics.superpolynomial_decay.add -> Asymptotics.SuperpolynomialDecay.add is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f g))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHAdd.{max u1 u2} (α -> β) (Pi.instAdd.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f g))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.add Asymptotics.SuperpolynomialDecay.addₓ'. -/
theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f + g) := fun z => by
simpa only [mul_add, add_zero, Pi.add_apply] using (hf z).add (hg z)
#align asymptotics.superpolynomial_decay.add Asymptotics.SuperpolynomialDecay.add
+/- warning: asymptotics.superpolynomial_decay.mul -> Asymptotics.SuperpolynomialDecay.mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f g))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) f g))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mulₓ'. -/
theorem SuperpolynomialDecay.mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f * g) := fun z => by
simpa only [mul_assoc, one_mul, MulZeroClass.mul_zero, pow_zero] using (hf z).mul (hg 0)
#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mul
+/- warning: asymptotics.superpolynomial_decay.mul_const -> Asymptotics.SuperpolynomialDecay.mul_const is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) (f n) c))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) (f n) c))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_constₓ'. -/
theorem SuperpolynomialDecay.mul_const [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => f n * c := fun z => by
simpa only [← mul_assoc, MulZeroClass.zero_mul] using tendsto.mul_const c (hf z)
#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_const
+/- warning: asymptotics.superpolynomial_decay.const_mul -> Asymptotics.SuperpolynomialDecay.const_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) c (f n)))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (c : β), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) c (f n)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.const_mul Asymptotics.SuperpolynomialDecay.const_mulₓ'. -/
theorem SuperpolynomialDecay.const_mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => c * f n :=
(hf.mul_const c).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.const_mul Asymptotics.SuperpolynomialDecay.const_mul
+/- warning: asymptotics.superpolynomial_decay.param_mul -> Asymptotics.SuperpolynomialDecay.param_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) k f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mulₓ'. -/
theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (k * f) := fun z =>
tendsto_nhds.2 fun s hs hs0 =>
@@ -111,11 +161,23 @@ theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ'] using hx
#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mul
+/- warning: asymptotics.superpolynomial_decay.mul_param -> Asymptotics.SuperpolynomialDecay.mul_param is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f k))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) f k))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_param Asymptotics.SuperpolynomialDecay.mul_paramₓ'. -/
theorem SuperpolynomialDecay.mul_param (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (f * k) :=
hf.param_mul.congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param Asymptotics.SuperpolynomialDecay.mul_param
+/- warning: asymptotics.superpolynomial_decay.param_pow_mul -> Asymptotics.SuperpolynomialDecay.param_pow_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (MonoidWithZero.toMonoid.{u2} β (Semiring.toMonoidWithZero.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) k n) f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) k n) f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mulₓ'. -/
theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n : ℕ) :
SuperpolynomialDecay l k (k ^ n * f) :=
by
@@ -124,11 +186,23 @@ theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n
· simpa only [pow_succ, mul_assoc] using hn.param_mul
#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mul
+/- warning: asymptotics.superpolynomial_decay.mul_param_pow -> Asymptotics.SuperpolynomialDecay.mul_param_pow is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))))) f (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (MonoidWithZero.toMonoid.{u2} β (Semiring.toMonoidWithZero.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) k n)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : CommSemiring.{u1} β], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k f) -> (forall (n : Nat), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 _inst_2 l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocSemiring.toMul.{u1} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} β (Semiring.toNonAssocSemiring.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) f (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (CommSemiring.toSemiring.{u1} β _inst_2)))))) k n)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_param_pow Asymptotics.SuperpolynomialDecay.mul_param_powₓ'. -/
theorem SuperpolynomialDecay.mul_param_pow (hf : SuperpolynomialDecay l k f) (n : ℕ) :
SuperpolynomialDecay l k (f * k ^ n) :=
(hf.param_pow_mul n).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param_pow Asymptotics.SuperpolynomialDecay.mul_param_pow
+/- warning: asymptotics.superpolynomial_decay.polynomial_mul -> Asymptotics.SuperpolynomialDecay.polynomial_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p) (f x)))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p) (f x)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.polynomial_mul Asymptotics.SuperpolynomialDecay.polynomial_mulₓ'. -/
theorem SuperpolynomialDecay.polynomial_mul [ContinuousAdd β] [ContinuousMul β]
(hf : SuperpolynomialDecay l k f) (p : β[X]) :
SuperpolynomialDecay l k fun x => (p.eval <| k x) * f x :=
@@ -136,6 +210,12 @@ theorem SuperpolynomialDecay.polynomial_mul [ContinuousAdd β] [ContinuousMul β
simpa [mul_assoc] using (hf.param_pow_mul n).const_mul c
#align asymptotics.superpolynomial_decay.polynomial_mul Asymptotics.SuperpolynomialDecay.polynomial_mul
+/- warning: asymptotics.superpolynomial_decay.mul_polynomial -> Asymptotics.SuperpolynomialDecay.mul_polynomial is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toHasAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))) (f x) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p)))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : CommSemiring.{u2} β] [_inst_3 : ContinuousAdd.{u2} β _inst_1 (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)))))] [_inst_4 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k f) -> (forall (p : Polynomial.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2)), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 _inst_2 l k (fun (x : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocSemiring.toMul.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2))))) (f x) (Polynomial.eval.{u2} β (CommSemiring.toSemiring.{u2} β _inst_2) (k x) p)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_polynomial Asymptotics.SuperpolynomialDecay.mul_polynomialₓ'. -/
theorem SuperpolynomialDecay.mul_polynomial [ContinuousAdd β] [ContinuousMul β]
(hf : SuperpolynomialDecay l k f) (p : β[X]) :
SuperpolynomialDecay l k fun x => f x * (p.eval <| k x) :=
@@ -148,6 +228,12 @@ section OrderedCommSemiring
variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
+/- warning: asymptotics.superpolynomial_decay.trans_eventually_le -> Asymptotics.SuperpolynomialDecay.trans_eventuallyLE is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : OrderedCommSemiring.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))], (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l (OfNat.ofNat.{max u1 u2} (α -> β) 0 (OfNat.mk.{max u1 u2} (α -> β) 0 (Zero.zero.{max u1 u2} (α -> β) (Pi.instZero.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β (OrderedSemiring.toSemiring.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2)))))))))) k) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k g') -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l g f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommMonoid.toPartialOrder.{u2} β (OrderedSemiring.toOrderedAddCommMonoid.{u2} β (OrderedCommSemiring.toOrderedSemiring.{u2} β _inst_2))))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u2} β _inst_2) l k f)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} {g' : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : OrderedCommSemiring.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))], (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l (OfNat.ofNat.{max u2 u1} (α -> β) 0 (Zero.toOfNat0.{max u2 u1} (α -> β) (Pi.instZero.{u2, u1} α (fun (a._@.Mathlib.Order.Filter.Basic._hyg.21857 : α) => β) (fun (i : α) => CommMonoidWithZero.toZero.{u1} β (CommSemiring.toCommMonoidWithZero.{u1} β (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2)))))) k) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k g') -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l g f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedSemiring.toPartialOrder.{u1} β (OrderedCommSemiring.toOrderedSemiring.{u1} β _inst_2)))) l f g') -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (OrderedCommSemiring.toCommSemiring.{u1} β _inst_2) l k f)
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLEₓ'. -/
theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
(hg' : SuperpolynomialDecay l k g') (hfg : g ≤ᶠ[l] f) (hfg' : f ≤ᶠ[l] g') :
SuperpolynomialDecay l k f := fun z =>
@@ -164,12 +250,24 @@ variable [TopologicalSpace β] [LinearOrderedCommRing β] [OrderTopology β]
variable (l k f)
+/- warning: asymptotics.superpolynomial_decay_iff_abs_tendsto_zero -> Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) (forall (n : Nat), Filter.Tendsto.{u1, u2} α β (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (k a) n) (f a))) l (nhds.{u2} β _inst_1 (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))))))))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) (forall (n : Nat), Filter.Tendsto.{u2, u1} α β (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (StrictOrderedSemiring.toSemiring.{u1} β (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} β (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2)))))))) (k a) n) (f a))) l (nhds.{u1} β _inst_1 (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} β (IsDomain.toCancelCommMonoidWithZero.{u1} β (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) (LinearOrderedRing.isDomain.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_abs_tendsto_zero Asymptotics.superpolynomialDecay_iff_abs_tendsto_zeroₓ'. -/
theorem superpolynomialDecay_iff_abs_tendsto_zero :
SuperpolynomialDecay l k f ↔ ∀ n : ℕ, Tendsto (fun a : α => |k a ^ n * f a|) l (𝓝 0) :=
⟨fun h z => (tendsto_zero_iff_abs_tendsto_zero _).1 (h z), fun h z =>
(tendsto_zero_iff_abs_tendsto_zero _).2 (h z)⟩
#align asymptotics.superpolynomial_decay_iff_abs_tendsto_zero Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero
+/- warning: asymptotics.superpolynomial_decay_iff_superpolynomial_decay_abs -> Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_abs is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (k a)) (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (f a)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (k a)) (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (f a)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_abs Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_absₓ'. -/
theorem superpolynomialDecay_iff_superpolynomialDecay_abs :
SuperpolynomialDecay l k f ↔ SuperpolynomialDecay l (fun a => |k a|) fun a => |f a| :=
(superpolynomialDecay_iff_abs_tendsto_zero l k f).trans
@@ -178,6 +276,12 @@ theorem superpolynomialDecay_iff_superpolynomialDecay_abs :
variable {l k f}
+/- warning: asymptotics.superpolynomial_decay.trans_eventually_abs_le -> Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u1, u2} α β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) l (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) g) (Function.comp.{succ u1, succ u2, succ u2} α β β (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) -> (Filter.EventuallyLE.{u2, u1} α β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))) l (Function.comp.{succ u2, succ u1, succ u1} α β β (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))) g) (Function.comp.{succ u2, succ u1, succ u1} α β β (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))))))) f)) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k g)
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_leₓ'. -/
theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : abs ∘ g ≤ᶠ[l] abs ∘ f) : SuperpolynomialDecay l k g :=
by
@@ -192,6 +296,12 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
+/- warning: asymptotics.superpolynomial_decay.trans_abs_le -> Asymptotics.SuperpolynomialDecay.trans_abs_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedCommRing.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))], (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (g x)) (Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (StrictOrderedRing.toRing.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β _inst_2)))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u2} β (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} β (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} β _inst_2))) l k g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} {g : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedCommRing.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))], (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k f) -> (forall (x : α), LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))) (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (g x)) (Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (StrictOrderedRing.toRing.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β _inst_2))))))) (f x))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (StrictOrderedCommSemiring.toCommSemiring.{u1} β (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} β (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} β _inst_2))) l k g)
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.trans_abs_le Asymptotics.SuperpolynomialDecay.trans_abs_leₓ'. -/
theorem SuperpolynomialDecay.trans_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : ∀ x, |g x| ≤ |f x|) : SuperpolynomialDecay l k g :=
hf.trans_eventually_abs_le (eventually_of_forall hfg)
@@ -203,12 +313,24 @@ section Field
variable [TopologicalSpace β] [Field β] (l k f)
+/- warning: asymptotics.superpolynomial_decay_mul_const_iff -> Asymptotics.superpolynomialDecay_mul_const_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))) (f n) c)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))) (f n) c)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_mul_const_iff Asymptotics.superpolynomialDecay_mul_const_iffₓ'. -/
theorem superpolynomialDecay_mul_const_iff [ContinuousMul β] {c : β} (hc0 : c ≠ 0) :
(SuperpolynomialDecay l k fun n => f n * c) ↔ SuperpolynomialDecay l k f :=
⟨fun h => (h.mul_const c⁻¹).congr fun x => by simp [mul_assoc, mul_inv_cancel hc0], fun h =>
h.mul_const c⟩
#align asymptotics.superpolynomial_decay_mul_const_iff Asymptotics.superpolynomialDecay_mul_const_iff
+/- warning: asymptotics.superpolynomial_decay_const_mul_iff -> Asymptotics.superpolynomialDecay_const_mul_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))))) c (f n))) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : Field.{u2} β] [_inst_3 : ContinuousMul.{u2} β _inst_1 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))] {c : β}, (Ne.{succ u2} β c (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (CommMonoidWithZero.toZero.{u2} β (CommGroupWithZero.toCommMonoidWithZero.{u2} β (Semifield.toCommGroupWithZero.{u2} β (Field.toSemifield.{u2} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k (fun (n : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)))))) c (f n))) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (Field.toSemifield.{u2} β _inst_2)) l k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_const_mul_iff Asymptotics.superpolynomialDecay_const_mul_iffₓ'. -/
theorem superpolynomialDecay_const_mul_iff [ContinuousMul β] {c : β} (hc0 : c ≠ 0) :
(SuperpolynomialDecay l k fun n => c * f n) ↔ SuperpolynomialDecay l k f :=
⟨fun h => (h.const_mul c⁻¹).congr fun x => by simp [← mul_assoc, inv_mul_cancel hc0], fun h =>
@@ -225,6 +347,12 @@ variable [TopologicalSpace β] [LinearOrderedField β] [OrderTopology β]
variable (f)
+/- warning: asymptotics.superpolynomial_decay_iff_abs_is_bounded_under -> Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u2, u1} β α (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) l (fun (a : α) => Abs.abs.{u2} β (Neg.toHasAbs.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))))) (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (LinearOrder.toLattice.{u2} β (LinearOrderedRing.toLinearOrder.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (k a) z) (f a)))))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Nat), Filter.IsBoundedUnder.{u1, u2} β α (fun (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 : β) (x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1983 : β) => LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))) x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1981 x._@.Mathlib.Analysis.Asymptotics.SuperpolynomialDecay._hyg.1983) l (fun (a : α) => Abs.abs.{u1} β (Neg.toHasAbs.{u1} β (Ring.toNeg.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))) (SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedRing.toLinearOrder.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))))) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2)))))))) (k a) z) (f a)))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnderₓ'. -/
theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℕ, IsBoundedUnder (· ≤ ·) l fun a : α => |k a ^ z * f a| :=
by
@@ -244,6 +372,12 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
rw [← abs_mul, ← mul_assoc, pow_succ, ← mul_assoc, inv_mul_cancel hk0, one_mul]
#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder
+/- warning: asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero -> Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) (forall (z : Int), Filter.Tendsto.{u1, u2} α β (fun (a : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) (k a) z) (f a)) l (nhds.{u2} β _inst_1 (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))))))))))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) (forall (z : Int), Filter.Tendsto.{u2, u1} α β (fun (a : α) => HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))) (k a) z) (f a)) l (nhds.{u1} β _inst_1 (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (CommMonoidWithZero.toZero.{u1} β (CommGroupWithZero.toCommMonoidWithZero.{u1} β (Semifield.toCommGroupWithZero.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))))))))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zeroₓ'. -/
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) :=
by
@@ -259,6 +393,12 @@ theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
variable {f}
+/- warning: asymptotics.superpolynomial_decay.param_zpow_mul -> Asymptotics.SuperpolynomialDecay.param_zpow_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) (k a) z) (f a)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))) (k a) z) (f a)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mulₓ'. -/
theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => k a ^ z * f a :=
by
@@ -267,16 +407,34 @@ theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mul
+/- warning: asymptotics.superpolynomial_decay.mul_param_zpow -> Asymptotics.SuperpolynomialDecay.mul_param_zpow is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2)))))) (f a) (HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) (k a) z)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (forall (z : Int), Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (fun (a : α) => HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))))) (f a) (HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2))))) (k a) z)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.mul_param_zpow Asymptotics.SuperpolynomialDecay.mul_param_zpowₓ'. -/
theorem SuperpolynomialDecay.mul_param_zpow (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => f a * k a ^ z :=
(hf.param_zpow_mul hk z).congr fun _ => mul_comm _ _
#align asymptotics.superpolynomial_decay.mul_param_zpow Asymptotics.SuperpolynomialDecay.mul_param_zpow
+/- warning: asymptotics.superpolynomial_decay.inv_param_mul -> Asymptotics.SuperpolynomialDecay.inv_param_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) k) f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) (Inv.inv.{max u2 u1} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedField.toInv.{u1} β _inst_2)) k) f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.inv_param_mul Asymptotics.SuperpolynomialDecay.inv_param_mulₓ'. -/
theorem SuperpolynomialDecay.inv_param_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) : SuperpolynomialDecay l k (k⁻¹ * f) := by
simpa using hf.param_zpow_mul hk (-1)
#align asymptotics.superpolynomial_decay.inv_param_mul Asymptotics.SuperpolynomialDecay.inv_param_mul
+/- warning: asymptotics.superpolynomial_decay.param_inv_mul -> Asymptotics.SuperpolynomialDecay.param_inv_mul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) f (Inv.inv.{max u1 u2} (α -> β) (Pi.instInv.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))) k)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} {f : α -> β} [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f) -> (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) f (Inv.inv.{max u2 u1} (α -> β) (Pi.instInv.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => LinearOrderedField.toInv.{u1} β _inst_2)) k)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay.param_inv_mul Asymptotics.SuperpolynomialDecay.param_inv_mulₓ'. -/
theorem SuperpolynomialDecay.param_inv_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) : SuperpolynomialDecay l k (f * k⁻¹) :=
(hf.inv_param_mul hk).congr fun _ => mul_comm _ _
@@ -284,6 +442,12 @@ theorem SuperpolynomialDecay.param_inv_mul (hk : Tendsto k l atTop)
variable (f)
+/- warning: asymptotics.superpolynomial_decay_param_mul_iff -> Asymptotics.superpolynomialDecay_param_mul_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) k f)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) k f)) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_param_mul_iff Asymptotics.superpolynomialDecay_param_mul_iffₓ'. -/
theorem superpolynomialDecay_param_mul_iff (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k (k * f) ↔ SuperpolynomialDecay l k f :=
⟨fun h =>
@@ -292,11 +456,23 @@ theorem superpolynomialDecay_param_mul_iff (hk : Tendsto k l atTop) :
fun h => h.param_mul⟩
#align asymptotics.superpolynomial_decay_param_mul_iff Asymptotics.superpolynomialDecay_param_mul_iff
+/- warning: asymptotics.superpolynomial_decay_mul_param_iff -> Asymptotics.superpolynomialDecay_mul_param_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) f k)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) f k)) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_mul_param_iff Asymptotics.superpolynomialDecay_mul_param_iffₓ'. -/
theorem superpolynomialDecay_mul_param_iff (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k (f * k) ↔ SuperpolynomialDecay l k f := by
simpa [mul_comm k] using superpolynomial_decay_param_mul_iff f hk
#align asymptotics.superpolynomial_decay_mul_param_iff Asymptotics.superpolynomialDecay_mul_param_iff
+/- warning: asymptotics.superpolynomial_decay_param_pow_mul_iff -> Asymptotics.superpolynomialDecay_param_pow_mul_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) k n) f)) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))))))))) k n) f)) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_param_pow_mul_iff Asymptotics.superpolynomialDecay_param_pow_mul_iffₓ'. -/
theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ) :
SuperpolynomialDecay l k (k ^ n * f) ↔ SuperpolynomialDecay l k f :=
by
@@ -307,6 +483,12 @@ theorem superpolynomialDecay_param_pow_mul_iff (hk : Tendsto k l atTop) (n : ℕ
superpolynomial_decay_param_mul_iff (k ^ n * f) hk] using hn
#align asymptotics.superpolynomial_decay_param_pow_mul_iff Asymptotics.superpolynomialDecay_param_pow_mul_iff
+/- warning: asymptotics.superpolynomial_decay_mul_param_pow_iff -> Asymptotics.superpolynomialDecay_mul_param_pow_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u2} β] [_inst_2 : LinearOrderedField.{u2} β] [_inst_3 : OrderTopology.{u2} β _inst_1 (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β _inst_2)))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (α -> β) (α -> β) (α -> β) (instHMul.{max u1 u2} (α -> β) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) f (HPow.hPow.{max u1 u2, 0, max u1 u2} (α -> β) Nat (α -> β) (instHPow.{max u1 u2, 0} (α -> β) Nat (Pi.hasPow.{u1, u2, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β (LinearOrderedField.toField.{u2} β _inst_2))))))) k n))) (Asymptotics.SuperpolynomialDecay.{u1, u2} α β _inst_1 (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β _inst_2))) l k f))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : TopologicalSpace.{u1} β] [_inst_2 : LinearOrderedField.{u1} β] [_inst_3 : OrderTopology.{u1} β _inst_1 (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2)))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β _inst_2))))))) -> (forall (n : Nat), Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> β) (α -> β) (α -> β) (instHMul.{max u2 u1} (α -> β) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β (LinearOrderedField.toField.{u1} β _inst_2)))))))) f (HPow.hPow.{max u2 u1, 0, max u2 u1} (α -> β) Nat (α -> β) (instHPow.{max u2 u1, 0} (α -> β) Nat (Pi.instPow.{u2, u1, 0} α Nat (fun (ᾰ : α) => β) (fun (i : α) => Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))))))))) k n))) (Asymptotics.SuperpolynomialDecay.{u2, u1} α β _inst_1 (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β _inst_2))) l k f))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_mul_param_pow_iff Asymptotics.superpolynomialDecay_mul_param_pow_iffₓ'. -/
theorem superpolynomialDecay_mul_param_pow_iff (hk : Tendsto k l atTop) (n : ℕ) :
SuperpolynomialDecay l k (f * k ^ n) ↔ SuperpolynomialDecay l k f := by
simpa [mul_comm f] using superpolynomial_decay_param_pow_mul_iff f hk n
@@ -322,12 +504,24 @@ variable [NormedLinearOrderedField β]
variable (l k f)
+/- warning: asymptotics.superpolynomial_decay_iff_norm_tendsto_zero -> Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (forall (n : Nat), Filter.Tendsto.{u1, 0} α Real (fun (a : α) => Norm.norm.{u2} β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (HPow.hPow.{u2, 0, u2} β Nat β (instHPow.{u2, 0} β Nat (Monoid.Pow.{u2} β (Ring.toMonoid.{u2} β (NormedRing.toRing.{u2} β (NormedCommRing.toNormedRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (k a) n) (f a))) l (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (forall (n : Nat), Filter.Tendsto.{u2, 0} α Real (fun (a : α) => Norm.norm.{u1} β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β (NormedRing.toRing.{u1} β (NormedCommRing.toNormedRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1)))))))) (HPow.hPow.{u1, 0, u1} β Nat β (instHPow.{u1, 0} β Nat (Monoid.Pow.{u1} β (MonoidWithZero.toMonoid.{u1} β (Semiring.toMonoidWithZero.{u1} β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1))))))))) (k a) n) (f a))) l (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_norm_tendsto_zero Asymptotics.superpolynomialDecay_iff_norm_tendsto_zeroₓ'. -/
theorem superpolynomialDecay_iff_norm_tendsto_zero :
SuperpolynomialDecay l k f ↔ ∀ n : ℕ, Tendsto (fun a : α => ‖k a ^ n * f a‖) l (𝓝 0) :=
⟨fun h z => tendsto_zero_iff_norm_tendsto_zero.1 (h z), fun h z =>
tendsto_zero_iff_norm_tendsto_zero.2 (h z)⟩
#align asymptotics.superpolynomial_decay_iff_norm_tendsto_zero Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero
+/- warning: asymptotics.superpolynomial_decay_iff_superpolynomial_decay_norm -> Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} (l : Filter.{u1} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β], Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (Asymptotics.SuperpolynomialDecay.{u1, 0} α Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.commSemiring l (fun (a : α) => Norm.norm.{u2} β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (k a)) (fun (a : α) => Norm.norm.{u2} β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (f a)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} (l : Filter.{u2} α) (k : α -> β) (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β], Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (Asymptotics.SuperpolynomialDecay.{u2, 0} α Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.instCommSemiringReal l (fun (a : α) => Norm.norm.{u1} β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (k a)) (fun (a : α) => Norm.norm.{u1} β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (f a)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_norm Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_normₓ'. -/
theorem superpolynomialDecay_iff_superpolynomialDecay_norm :
SuperpolynomialDecay l k f ↔ SuperpolynomialDecay l (fun a => ‖k a‖) fun a => ‖f a‖ :=
(superpolynomialDecay_iff_norm_tendsto_zero l k f).trans (by simp [superpolynomial_decay])
@@ -337,6 +531,12 @@ variable {l k}
variable [OrderTopology β]
+/- warning: asymptotics.superpolynomial_decay_iff_is_O -> Asymptotics.superpolynomialDecay_iff_isBigO is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β] [_inst_2 : OrderTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsBigO.{u1, u2, u2} α β β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) l f (fun (a : α) => HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1)))))) (k a) z)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β] [_inst_2 : OrderTopology.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1))))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsBigO.{u2, u1, u1} α β β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (NormedLinearOrderedField.toNorm.{u1} β _inst_1) l f (fun (a : α) => HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (NormedDivisionRing.toDivisionRing.{u1} β (NormedField.toNormedDivisionRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1)))))) (k a) z)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isBigOₓ'. -/
theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =O[l] fun a : α => k a ^ z :=
by
@@ -356,6 +556,12 @@ theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
mul_inv_cancel (zpow_ne_zero z ha0), zpow_one]
#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isBigO
+/- warning: asymptotics.superpolynomial_decay_iff_is_o -> Asymptotics.superpolynomialDecay_iff_isLittleO is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {l : Filter.{u1} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u2} β] [_inst_2 : OrderTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))))))], (Filter.Tendsto.{u1, u2} α β k l (Filter.atTop.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedAddCommGroup.toPartialOrder.{u2} β (StrictOrderedRing.toOrderedAddCommGroup.{u2} β (LinearOrderedRing.toStrictOrderedRing.{u2} β (LinearOrderedCommRing.toLinearOrderedRing.{u2} β (LinearOrderedField.toLinearOrderedCommRing.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1))))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (SeminormedRing.toPseudoMetricSpace.{u2} β (SeminormedCommRing.toSemiNormedRing.{u2} β (NormedCommRing.toSeminormedCommRing.{u2} β (NormedField.toNormedCommRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1))))))) (Semifield.toCommSemiring.{u2} β (LinearOrderedSemifield.toSemifield.{u2} β (LinearOrderedField.toLinearOrderedSemifield.{u2} β (NormedLinearOrderedField.toLinearOrderedField.{u2} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsLittleO.{u1, u2, u2} α β β (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) (NormedLinearOrderedField.toHasNorm.{u2} β _inst_1) l f (fun (a : α) => HPow.hPow.{u2, 0, u2} β Int β (instHPow.{u2, 0} β Int (DivInvMonoid.Pow.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (NormedDivisionRing.toDivisionRing.{u2} β (NormedField.toNormedDivisionRing.{u2} β (NormedLinearOrderedField.toNormedField.{u2} β _inst_1)))))) (k a) z)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} {l : Filter.{u2} α} {k : α -> β} (f : α -> β) [_inst_1 : NormedLinearOrderedField.{u1} β] [_inst_2 : OrderTopology.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1))))))], (Filter.Tendsto.{u2, u1} α β k l (Filter.atTop.{u1} β (PartialOrder.toPreorder.{u1} β (StrictOrderedRing.toPartialOrder.{u1} β (LinearOrderedRing.toStrictOrderedRing.{u1} β (LinearOrderedCommRing.toLinearOrderedRing.{u1} β (LinearOrderedField.toLinearOrderedCommRing.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))))))) -> (Iff (Asymptotics.SuperpolynomialDecay.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (SeminormedRing.toPseudoMetricSpace.{u1} β (SeminormedCommRing.toSeminormedRing.{u1} β (NormedCommRing.toSeminormedCommRing.{u1} β (NormedField.toNormedCommRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1))))))) (Semifield.toCommSemiring.{u1} β (LinearOrderedSemifield.toSemifield.{u1} β (LinearOrderedField.toLinearOrderedSemifield.{u1} β (NormedLinearOrderedField.toLinearOrderedField.{u1} β _inst_1)))) l k f) (forall (z : Int), Asymptotics.IsLittleO.{u2, u1, u1} α β β (NormedLinearOrderedField.toNorm.{u1} β _inst_1) (NormedLinearOrderedField.toNorm.{u1} β _inst_1) l f (fun (a : α) => HPow.hPow.{u1, 0, u1} β Int β (instHPow.{u1, 0} β Int (DivInvMonoid.Pow.{u1} β (DivisionRing.toDivInvMonoid.{u1} β (NormedDivisionRing.toDivisionRing.{u1} β (NormedField.toNormedDivisionRing.{u1} β (NormedLinearOrderedField.toNormedField.{u1} β _inst_1)))))) (k a) z)))
+Case conversion may be inaccurate. Consider using '#align asymptotics.superpolynomial_decay_iff_is_o Asymptotics.superpolynomialDecay_iff_isLittleOₓ'. -/
theorem superpolynomialDecay_iff_isLittleO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =o[l] fun a : α => k a ^ z :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -337,7 +337,7 @@ variable {l k}
variable [OrderTopology β]
-theorem superpolynomialDecay_iff_isO (hk : Tendsto k l atTop) :
+theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =O[l] fun a : α => k a ^ z :=
by
refine' (superpolynomial_decay_iff_zpow_tendsto_zero f hk).trans _
@@ -354,12 +354,12 @@ theorem superpolynomialDecay_iff_isO (hk : Tendsto k l atTop) :
(is_O.of_bound 1 <| hk0.mono fun a ha0 => _)
simp only [one_mul, neg_add z 1, zpow_add₀ ha0, ← mul_assoc, zpow_neg,
mul_inv_cancel (zpow_ne_zero z ha0), zpow_one]
-#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isO
+#align asymptotics.superpolynomial_decay_iff_is_O Asymptotics.superpolynomialDecay_iff_isBigO
-theorem superpolynomialDecay_iff_isOCat (hk : Tendsto k l atTop) :
+theorem superpolynomialDecay_iff_isLittleO (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, f =o[l] fun a : α => k a ^ z :=
by
- refine' ⟨fun h z => _, fun h => (superpolynomial_decay_iff_is_O f hk).2 fun z => (h z).IsO⟩
+ refine' ⟨fun h z => _, fun h => (superpolynomial_decay_iff_is_O f hk).2 fun z => (h z).IsBigO⟩
have hk0 : ∀ᶠ x in l, k x ≠ 0 := hk.eventually_ne_at_top 0
have : (fun x : α => (1 : β)) =o[l] k :=
is_o_of_tendsto' (hk0.mono fun x hkx hkx' => absurd hkx' hkx)
@@ -368,7 +368,7 @@ theorem superpolynomialDecay_iff_isOCat (hk : Tendsto k l atTop) :
simpa using this.mul_is_O ((superpolynomial_decay_iff_is_O f hk).1 h <| z - 1)
refine' this.trans_is_O (is_O.of_bound 1 (hk0.mono fun x hkx => le_of_eq _))
rw [one_mul, zpow_sub_one₀ hkx, mul_comm (k x), mul_assoc, inv_mul_cancel hkx, mul_one]
-#align asymptotics.superpolynomial_decay_iff_is_o Asymptotics.superpolynomialDecay_iff_isOCat
+#align asymptotics.superpolynomial_decay_iff_is_o Asymptotics.superpolynomialDecay_iff_isLittleO
end NormedLinearOrderedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -81,7 +81,7 @@ theorem SuperpolynomialDecay.congr (hf : SuperpolynomialDecay l k f) (hfg : ∀
@[simp]
theorem superpolynomialDecay_zero (l : Filter α) (k : α → β) : SuperpolynomialDecay l k 0 :=
- fun z => by simpa only [Pi.zero_apply, mul_zero] using tendsto_const_nhds
+ fun z => by simpa only [Pi.zero_apply, MulZeroClass.mul_zero] using tendsto_const_nhds
#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zero
theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l k f)
@@ -91,12 +91,12 @@ theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l
theorem SuperpolynomialDecay.mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f * g) := fun z => by
- simpa only [mul_assoc, one_mul, mul_zero, pow_zero] using (hf z).mul (hg 0)
+ simpa only [mul_assoc, one_mul, MulZeroClass.mul_zero, pow_zero] using (hf z).mul (hg 0)
#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mul
theorem SuperpolynomialDecay.mul_const [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => f n * c := fun z => by
- simpa only [← mul_assoc, zero_mul] using tendsto.mul_const c (hf z)
+ simpa only [← mul_assoc, MulZeroClass.zero_mul] using tendsto.mul_const c (hf z)
#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_const
theorem SuperpolynomialDecay.const_mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
@@ -234,7 +234,8 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
obtain ⟨m, hm⟩ := h (z + 1)
have h1 : tendsto (fun a : α => (0 : β)) l (𝓝 0) := tendsto_const_nhds
have h2 : tendsto (fun a : α => |(k a)⁻¹| * m) l (𝓝 0) :=
- zero_mul m ▸ tendsto.mul_const m ((tendsto_zero_iff_abs_tendsto_zero _).1 hk.inv_tendsto_at_top)
+ MulZeroClass.zero_mul m ▸
+ tendsto.mul_const m ((tendsto_zero_iff_abs_tendsto_zero _).1 hk.inv_tendsto_at_top)
refine'
tendsto_of_tendsto_of_tendsto_of_le_of_le' h1 h2 (eventually_of_forall fun x => abs_nonneg _)
((eventually_map.1 hm).mp _)
@@ -253,7 +254,7 @@ theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
· have : tendsto (fun a => k a ^ z) l (𝓝 0) :=
tendsto.comp (tendsto_zpow_atTop_zero (not_le.1 hz)) hk
have h : tendsto f l (𝓝 0) := by simpa using h 0
- exact zero_mul (0 : β) ▸ this.mul h
+ exact MulZeroClass.zero_mul (0 : β) ▸ this.mul h
#align asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero
variable {f}
mathlib commit https://github.com/leanprover-community/mathlib/commit/195fcd60ff2bfe392543bceb0ec2adcdb472db4c
@@ -148,13 +148,13 @@ section OrderedCommSemiring
variable [TopologicalSpace β] [OrderedCommSemiring β] [OrderTopology β]
-theorem SuperpolynomialDecay.trans_eventuallyLe (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
+theorem SuperpolynomialDecay.trans_eventuallyLE (hk : 0 ≤ᶠ[l] k) (hg : SuperpolynomialDecay l k g)
(hg' : SuperpolynomialDecay l k g') (hfg : g ≤ᶠ[l] f) (hfg' : f ≤ᶠ[l] g') :
SuperpolynomialDecay l k f := fun z =>
tendsto_of_tendsto_of_tendsto_of_le_of_le' (hg z) (hg' z)
(hfg.mp (hk.mono fun x hx hx' => mul_le_mul_of_nonneg_left hx' (pow_nonneg hx z)))
(hfg'.mp (hk.mono fun x hx hx' => mul_le_mul_of_nonneg_left hx' (pow_nonneg hx z)))
-#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLe
+#align asymptotics.superpolynomial_decay.trans_eventually_le Asymptotics.SuperpolynomialDecay.trans_eventuallyLE
end OrderedCommSemiring
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -187,7 +187,7 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
(eventually_of_forall fun x => abs_nonneg _) (hfg.mono fun x hx => _)
calc
|k x ^ z * g x| = |k x ^ z| * |g x| := abs_mul (k x ^ z) (g x)
- _ ≤ |k x ^ z| * |f x| := mul_le_mul le_rfl hx (abs_nonneg _) (abs_nonneg _)
+ _ ≤ |k x ^ z| * |f x| := (mul_le_mul le_rfl hx (abs_nonneg _) (abs_nonneg _))
_ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Data
(#11751)
Polynomial
and MvPolynomial
are algebraic objects, hence should be under Algebra
(or at least not under Data
)
@@ -3,9 +3,9 @@ Copyright (c) 2021 Devon Tuma. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Devon Tuma
-/
+import Mathlib.Algebra.Polynomial.Eval
import Mathlib.Analysis.Asymptotics.Asymptotics
import Mathlib.Analysis.Normed.Order.Basic
-import Mathlib.Data.Polynomial.Eval
import Mathlib.Topology.Algebra.Order.LiminfLimsup
#align_import analysis.asymptotics.superpolynomial_decay from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -105,7 +105,7 @@ theorem SuperpolynomialDecay.param_mul (hf : SuperpolynomialDecay l k f) :
SuperpolynomialDecay l k (k * f) := fun z =>
tendsto_nhds.2 fun s hs hs0 =>
l.sets_of_superset ((tendsto_nhds.1 (hf <| z + 1)) s hs hs0) fun x hx => by
- simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ'] using hx
+ simpa only [Set.mem_preimage, Pi.mul_apply, ← mul_assoc, ← pow_succ] using hx
#align asymptotics.superpolynomial_decay.param_mul Asymptotics.SuperpolynomialDecay.param_mul
theorem SuperpolynomialDecay.mul_param (hf : SuperpolynomialDecay l k f) :
@@ -117,7 +117,7 @@ theorem SuperpolynomialDecay.param_pow_mul (hf : SuperpolynomialDecay l k f) (n
SuperpolynomialDecay l k (k ^ n * f) := by
induction' n with n hn
· simpa only [Nat.zero_eq, one_mul, pow_zero] using hf
- · simpa only [pow_succ, mul_assoc] using hn.param_mul
+ · simpa only [pow_succ', mul_assoc] using hn.param_mul
#align asymptotics.superpolynomial_decay.param_pow_mul Asymptotics.SuperpolynomialDecay.param_pow_mul
theorem SuperpolynomialDecay.mul_param_pow (hf : SuperpolynomialDecay l k f) (n : ℕ) :
@@ -233,7 +233,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
((eventually_map.1 hm).mp _)
refine' (hk.eventually_ne_atTop 0).mono fun x hk0 hx => _
refine' Eq.trans_le _ (mul_le_mul_of_nonneg_left hx <| abs_nonneg (k x)⁻¹)
- rw [← abs_mul, ← mul_assoc, pow_succ, ← mul_assoc, inv_mul_cancel hk0, one_mul]
+ rw [← abs_mul, ← mul_assoc, pow_succ', ← mul_assoc, inv_mul_cancel hk0, one_mul]
#align asymptotics.superpolynomial_decay_iff_abs_is_bounded_under Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
zpow_coe_nat
to zpow_natCast
(#11528)
... and add a deprecated alias for the old name. This is mostly just me discovering the power of F2
@@ -238,7 +238,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) := by
- refine' ⟨fun h z => _, fun h n => by simpa only [zpow_coe_nat] using h (n : ℤ)⟩
+ refine' ⟨fun h z => _, fun h n => by simpa only [zpow_natCast] using h (n : ℤ)⟩
by_cases hz : 0 ≤ z
· unfold Tendsto
lift z to ℕ using hz
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -157,7 +157,6 @@ end OrderedCommSemiring
section LinearOrderedCommRing
variable [TopologicalSpace β] [LinearOrderedCommRing β] [OrderTopology β]
-
variable (l k f)
theorem superpolynomialDecay_iff_abs_tendsto_zero :
@@ -216,7 +215,6 @@ end Field
section LinearOrderedField
variable [TopologicalSpace β] [LinearOrderedField β] [OrderTopology β]
-
variable (f)
theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
@@ -311,7 +309,6 @@ end LinearOrderedField
section NormedLinearOrderedField
variable [NormedLinearOrderedField β]
-
variable (l k f)
theorem superpolynomialDecay_iff_norm_tendsto_zero :
@@ -326,7 +323,6 @@ theorem superpolynomialDecay_iff_superpolynomialDecay_norm :
#align asymptotics.superpolynomial_decay_iff_superpolynomial_decay_norm Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm
variable {l k}
-
variable [OrderTopology β]
theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
zpow_ofNat
and ofNat_zsmul
(#10969)
Previously these were syntactically identical to the corresponding zpow_coe_nat
and coe_nat_zsmul
lemmas, now they are about OfNat.ofNat
.
Unfortunately, almost every call site uses the ofNat
name to refer to Nat.cast
, so the downstream proofs had to be adjusted too.
@@ -240,7 +240,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
SuperpolynomialDecay l k f ↔ ∀ z : ℤ, Tendsto (fun a : α => k a ^ z * f a) l (𝓝 0) := by
- refine' ⟨fun h z => _, fun h n => by simpa only [zpow_ofNat] using h (n : ℤ)⟩
+ refine' ⟨fun h z => _, fun h n => by simpa only [zpow_coe_nat] using h (n : ℤ)⟩
by_cases hz : 0 ≤ z
· unfold Tendsto
lift z to ℕ using hz
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>
@@ -338,8 +338,8 @@ theorem superpolynomialDecay_iff_isBigO (hk : Tendsto k l atTop) :
have : (fun a : α => k a ^ z)⁻¹ = fun a : α => k a ^ (-z) := funext fun x => by simp
rw [div_eq_mul_inv, mul_comm f, this]
exact h (-z)
- · suffices : (fun a : α => k a ^ z * f a) =O[l] fun a : α => (k a)⁻¹
- exact IsBigO.trans_tendsto this hk.inv_tendsto_atTop
+ · suffices (fun a : α => k a ^ z * f a) =O[l] fun a : α => (k a)⁻¹ from
+ IsBigO.trans_tendsto this hk.inv_tendsto_atTop
refine'
((isBigO_refl (fun a => k a ^ z) l).mul (h (-(z + 1)))).trans
(IsBigO.of_bound 1 <| hk0.mono fun a ha0 => _)
@@ -182,7 +182,7 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
(eventually_of_forall fun x => abs_nonneg _) (hfg.mono fun x hx => _)
calc
|k x ^ z * g x| = |k x ^ z| * |g x| := abs_mul (k x ^ z) (g x)
- _ ≤ |k x ^ z| * |f x| := by gcongr; exact hx
+ _ ≤ |k x ^ z| * |f x| := by gcongr _ * ?_; exact hx
_ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -78,7 +78,7 @@ theorem SuperpolynomialDecay.congr (hf : SuperpolynomialDecay l k f) (hfg : ∀
@[simp]
theorem superpolynomialDecay_zero (l : Filter α) (k : α → β) : SuperpolynomialDecay l k 0 :=
- fun z => by simpa only [Pi.zero_apply, MulZeroClass.mul_zero] using tendsto_const_nhds
+ fun z => by simpa only [Pi.zero_apply, mul_zero] using tendsto_const_nhds
#align asymptotics.superpolynomial_decay_zero Asymptotics.superpolynomialDecay_zero
theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l k f)
@@ -88,12 +88,12 @@ theorem SuperpolynomialDecay.add [ContinuousAdd β] (hf : SuperpolynomialDecay l
theorem SuperpolynomialDecay.mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f)
(hg : SuperpolynomialDecay l k g) : SuperpolynomialDecay l k (f * g) := fun z => by
- simpa only [mul_assoc, one_mul, MulZeroClass.mul_zero, pow_zero] using (hf z).mul (hg 0)
+ simpa only [mul_assoc, one_mul, mul_zero, pow_zero] using (hf z).mul (hg 0)
#align asymptotics.superpolynomial_decay.mul Asymptotics.SuperpolynomialDecay.mul
theorem SuperpolynomialDecay.mul_const [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
SuperpolynomialDecay l k fun n => f n * c := fun z => by
- simpa only [← mul_assoc, MulZeroClass.zero_mul] using Tendsto.mul_const c (hf z)
+ simpa only [← mul_assoc, zero_mul] using Tendsto.mul_const c (hf z)
#align asymptotics.superpolynomial_decay.mul_const Asymptotics.SuperpolynomialDecay.mul_const
theorem SuperpolynomialDecay.const_mul [ContinuousMul β] (hf : SuperpolynomialDecay l k f) (c : β) :
@@ -228,7 +228,7 @@ theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
obtain ⟨m, hm⟩ := h (z + 1)
have h1 : Tendsto (fun _ : α => (0 : β)) l (𝓝 0) := tendsto_const_nhds
have h2 : Tendsto (fun a : α => |(k a)⁻¹| * m) l (𝓝 0) :=
- MulZeroClass.zero_mul m ▸
+ zero_mul m ▸
Tendsto.mul_const m ((tendsto_zero_iff_abs_tendsto_zero _).1 hk.inv_tendsto_atTop)
refine'
tendsto_of_tendsto_of_tendsto_of_le_of_le' h1 h2 (eventually_of_forall fun x => abs_nonneg _)
@@ -248,7 +248,7 @@ theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
· have : Tendsto (fun a => k a ^ z) l (𝓝 0) :=
Tendsto.comp (tendsto_zpow_atTop_zero (not_le.1 hz)) hk
have h : Tendsto f l (𝓝 0) := by simpa using h 0
- exact MulZeroClass.zero_mul (0 : β) ▸ this.mul h
+ exact zero_mul (0 : β) ▸ this.mul h
#align asymptotics.superpolynomial_decay_iff_zpow_tendsto_zero Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero
variable {f}
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -55,12 +55,12 @@ open Filter
/-- `f` has superpolynomial decay in parameter `k` along filter `l` if
`k ^ n * f` tends to zero at `l` for all naturals `n` -/
-def SuperpolynomialDecay {α β : Type _} [TopologicalSpace β] [CommSemiring β] (l : Filter α)
+def SuperpolynomialDecay {α β : Type*} [TopologicalSpace β] [CommSemiring β] (l : Filter α)
(k : α → β) (f : α → β) :=
∀ n : ℕ, Tendsto (fun a : α => k a ^ n * f a) l (𝓝 0)
#align asymptotics.superpolynomial_decay Asymptotics.SuperpolynomialDecay
-variable {α β : Type _} {l : Filter α} {k : α → β} {f g g' : α → β}
+variable {α β : Type*} {l : Filter α} {k : α → β} {f g g' : α → β}
section CommSemiring
@@ -2,17 +2,14 @@
Copyright (c) 2021 Devon Tuma. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Devon Tuma
-
-! This file was ported from Lean 3 source module analysis.asymptotics.superpolynomial_decay
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Asymptotics.Asymptotics
import Mathlib.Analysis.Normed.Order.Basic
import Mathlib.Data.Polynomial.Eval
import Mathlib.Topology.Algebra.Order.LiminfLimsup
+#align_import analysis.asymptotics.superpolynomial_decay from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Super-Polynomial Function Decay
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
@@ -179,7 +179,7 @@ variable {l k f}
theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay l k f)
(hfg : abs ∘ g ≤ᶠ[l] abs ∘ f) : SuperpolynomialDecay l k g := by
- rw [superpolynomialDecay_iff_abs_tendsto_zero] at hf⊢
+ rw [superpolynomialDecay_iff_abs_tendsto_zero] at hf ⊢
refine' fun z =>
tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds (hf z)
(eventually_of_forall fun x => abs_nonneg _) (hfg.mono fun x hx => _)
@@ -259,7 +259,7 @@ variable {f}
theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
(hf : SuperpolynomialDecay l k f) (z : ℤ) :
SuperpolynomialDecay l k fun a => k a ^ z * f a := by
- rw [superpolynomialDecay_iff_zpow_tendsto_zero _ hk] at hf⊢
+ rw [superpolynomialDecay_iff_zpow_tendsto_zero _ hk] at hf ⊢
refine' fun z' => (hf <| z' + z).congr' ((hk.eventually_ne_atTop 0).mono fun x hx => _)
simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
#align asymptotics.superpolynomial_decay.param_zpow_mul Asymptotics.SuperpolynomialDecay.param_zpow_mul
@@ -185,7 +185,7 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
(eventually_of_forall fun x => abs_nonneg _) (hfg.mono fun x hx => _)
calc
|k x ^ z * g x| = |k x ^ z| * |g x| := abs_mul (k x ^ z) (g x)
- _ ≤ |k x ^ z| * |f x| := (mul_le_mul le_rfl hx (abs_nonneg _) (abs_nonneg _))
+ _ ≤ |k x ^ z| * |f x| := by gcongr; exact hx
_ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -223,8 +223,8 @@ variable [TopologicalSpace β] [LinearOrderedField β] [OrderTopology β]
variable (f)
theorem superpolynomialDecay_iff_abs_isBoundedUnder (hk : Tendsto k l atTop) :
- SuperpolynomialDecay l k f ↔ ∀ z : ℕ, IsBoundedUnder (· ≤ ·) l fun a : α => |k a ^ z * f a| :=
- by
+ SuperpolynomialDecay l k f ↔
+ ∀ z : ℕ, IsBoundedUnder (· ≤ ·) l fun a : α => |k a ^ z * f a| := by
refine'
⟨fun h z => Tendsto.isBoundedUnder_le (Tendsto.abs (h z)), fun h =>
(superpolynomialDecay_iff_abs_tendsto_zero l k f).2 fun z => _⟩
@@ -257,8 +257,8 @@ theorem superpolynomialDecay_iff_zpow_tendsto_zero (hk : Tendsto k l atTop) :
variable {f}
theorem SuperpolynomialDecay.param_zpow_mul (hk : Tendsto k l atTop)
- (hf : SuperpolynomialDecay l k f) (z : ℤ) : SuperpolynomialDecay l k fun a => k a ^ z * f a :=
- by
+ (hf : SuperpolynomialDecay l k f) (z : ℤ) :
+ SuperpolynomialDecay l k fun a => k a ^ z * f a := by
rw [superpolynomialDecay_iff_zpow_tendsto_zero _ hk] at hf⊢
refine' fun z' => (hf <| z' + z).congr' ((hk.eventually_ne_atTop 0).mono fun x hx => _)
simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
This PR fixes two things:
align
statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align
). This is often seen in the mathport output after ending calc
blocks.#align
statements. (This was needed for a script I wrote for #3630.)@@ -187,7 +187,6 @@ theorem SuperpolynomialDecay.trans_eventually_abs_le (hf : SuperpolynomialDecay
|k x ^ z * g x| = |k x ^ z| * |g x| := abs_mul (k x ^ z) (g x)
_ ≤ |k x ^ z| * |f x| := (mul_le_mul le_rfl hx (abs_nonneg _) (abs_nonneg _))
_ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
-
#align asymptotics.superpolynomial_decay.trans_eventually_abs_le Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
theorem SuperpolynomialDecay.trans_abs_le (hf : SuperpolynomialDecay l k f)
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file