English
If u is monotone and v/n tends to a (finite, nonzero, not top), then linearGrowthSup(u ∘ v) = a · linearGrowthSup(u).
Русский
Пусть u монотонна; если v(n)/n → a (конец, не нуль, не бесконечность), то линейный верхний рост композиции равен a · линейному верхнему росту u.
LaTeX
$$$\operatorname{linearGrowthSup}(u \circ v) = a \cdot \operatorname{linearGrowthSup}(u)$$$
Lean4
theorem _root_.Monotone.linearGrowthSup_comp {a : EReal} (h : Monotone u)
(hv : Tendsto (fun n ↦ (v n : EReal) / n) atTop (𝓝 a)) (ha : a ≠ 0) (ha' : a ≠ ⊤) :
linearGrowthSup (u ∘ v) = a * linearGrowthSup u :=
by
have hv₁ : 0 < liminf (fun n ↦ (v n : EReal) / n) atTop :=
by
rw [← hv.liminf_eq] at ha
exact ha.symm.lt_of_le (linearGrowthInf_natCast_nonneg v)
have v_top := tendsto_atTop_of_linearGrowthInf_natCast_pos hv₁.ne.symm
by_cases u_0 : u = ⊥
· rw [u_0, Pi.bot_comp, linearGrowthSup_bot, ← hv.liminf_eq, mul_bot_of_pos hv₁]
by_cases u_1 : ∀ᶠ n : ℕ in atTop, u n ≤ 0
· have u_0' : linearGrowthSup u = 0 :=
by
apply le_antisymm _ (h.linearGrowthSup_nonneg u_0)
apply (linearGrowthSup_eventually_monotone u_1).trans_eq
exact (linearGrowthSup_const zero_ne_bot zero_ne_top)
rw [u_0', mul_zero]
apply le_antisymm _ (linearGrowthSup_comp_nonneg h u_0 v_top)
apply (linearGrowthSup_eventually_monotone (v_top.eventually u_1)).trans_eq
exact linearGrowthSup_const zero_ne_bot zero_ne_top
· replace h' := (not_eventually.1 u_1).mono fun x hx ↦ (lt_of_not_ge hx).le
apply le_antisymm
· rw [← hv.limsup_eq] at ha ha' ⊢
exact linearGrowthSup_comp_le h' ha ha' v_top
· rw [← hv.liminf_eq]
exact h.le_linearGrowthSup_comp hv₁.ne.symm