Theorem: AkraBazziRecurrence.tendsto_atTop_sumCoeffsExp
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ Tendsto (fun p => ∑ i : α, a i * b i ^ p) atBot atTop
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
⊢ Tendsto (fun p => ∑ i : α, a i * b i ^ p) atBot atTop
tactic: have h₁ : Tendsto (fun p : ℝ => (a (max_bi b) : ℝ) * b (max_bi b) ^ p) atBot atTop :=
    Tendsto.mul_atTop (R.a_pos (max_bi b)) (by simp)
      <| tendsto_rpow_atBot_of_base_lt_one _
      (by have := R.b_pos (max_bi b); linarith) (R.b_lt_one _)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
⊢ Tendsto (fun p => ∑ i : α, a i * b i ^ p) atBot atTop
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
⊢ a (max_bi b) * b (max_bi b) ^ p ≤ ∑ i : α, a i * b i ^ p
tactic: refine tendsto_atTop_mono (fun p => ?_) h₁
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
⊢ a (max_bi b) * b (max_bi b) ^ p ≤ ∑ i : α, a i * b i ^ p
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
i : α
x✝ : i ∈ univ
⊢ 0 ≤ (fun i => a i * b i ^ p) i
tactic: refine Finset.single_le_sum (f := fun i => (a i : ℝ) * b i ^ p) (fun i _ => ?_) (mem_univ _)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
i : α
x✝ : i ∈ univ
⊢ 0 ≤ (fun i => a i * b i ^ p) i
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁✝ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
i : α
x✝ : i ∈ univ
h₁ : 0 < a i
⊢ 0 ≤ (fun i => a i * b i ^ p) i
tactic: have h₁ : 0 < a i := R.a_pos i
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁✝ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
i : α
x✝ : i ∈ univ
h₁ : 0 < a i
⊢ 0 ≤ (fun i => a i * b i ^ p) i
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁✝ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
i : α
x✝ : i ∈ univ
h₁ : 0 < a i
h₂ : 0 < b i
⊢ 0 ≤ (fun i => a i * b i ^ p) i
tactic: have h₂ : 0 < b i := R.b_pos i
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
h₁✝ : Tendsto (fun p => a (max_bi b) * b (max_bi b) ^ p) atBot atTop
p : ℝ
i : α
x✝ : i ∈ univ
h₁ : 0 < a i
h₂ : 0 < b i
⊢ 0 ≤ (fun i => a i * b i ^ p) i
state_after: no goals
tactic: positivity