Theorem: HurwitzZeta.hurwitzOddFEPair_g
File: Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean

Proof steps:
state_before: a : UnitAddCircle
⊢ 0 < 3 / 2
state_after: no goals
tactic: norm_num
state_before: a : UnitAddCircle
r : ℝ
⊢ (fun x => (ofReal' ∘ oddKernel a) x - 0) =O[atTop] fun x => x ^ r
state_after: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : oddKernel a =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => (ofReal' ∘ oddKernel a) x - 0) =O[atTop] fun x => x ^ r
tactic: let ⟨v, hv, hv'⟩ := isBigO_atTop_oddKernel a
state_before: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : oddKernel a =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => (ofReal' ∘ oddKernel a) x - 0) =O[atTop] fun x => x ^ r
state_after: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖oddKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖(ofReal' ∘ oddKernel a) x - 0‖) =O[atTop] fun x => x ^ r
tactic: rw [← isBigO_norm_left] at hv' ⊢
state_before: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖oddKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖(ofReal' ∘ oddKernel a) x - 0‖) =O[atTop] fun x => x ^ r
state_after: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖oddKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖oddKernel a x‖) =O[atTop] fun x => x ^ r
tactic: simp_rw [Function.comp_def, sub_zero, norm_real]
state_before: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖oddKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖oddKernel a x‖) =O[atTop] fun x => x ^ r
state_after: no goals
tactic: exact hv'.trans (isLittleO_exp_neg_mul_rpow_atTop hv _).isBigO
state_before: a : UnitAddCircle
r : ℝ
⊢ (fun x => (ofReal' ∘ sinKernel a) x - 0) =O[atTop] fun x => x ^ r
state_after: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : sinKernel a =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => (ofReal' ∘ sinKernel a) x - 0) =O[atTop] fun x => x ^ r
tactic: let ⟨v, hv, hv'⟩ := isBigO_atTop_sinKernel a
state_before: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : sinKernel a =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => (ofReal' ∘ sinKernel a) x - 0) =O[atTop] fun x => x ^ r
state_after: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖sinKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖(ofReal' ∘ sinKernel a) x - 0‖) =O[atTop] fun x => x ^ r
tactic: rw [← isBigO_norm_left] at hv' ⊢
state_before: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖sinKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖(ofReal' ∘ sinKernel a) x - 0‖) =O[atTop] fun x => x ^ r
state_after: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖sinKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖sinKernel a x‖) =O[atTop] fun x => x ^ r
tactic: simp_rw [Function.comp_def, sub_zero, norm_real]
state_before: a : UnitAddCircle
r v : ℝ
hv : 0 < v
hv' : (fun x => ‖sinKernel a x‖) =O[atTop] fun x => rexp (-v * x)
⊢ (fun x => ‖sinKernel a x‖) =O[atTop] fun x => x ^ r
state_after: no goals
tactic: exact hv'.trans (isLittleO_exp_neg_mul_rpow_atTop hv _).isBigO
state_before: a : UnitAddCircle
x : ℝ
hx : x ∈ Ioi 0
⊢ (ofReal' ∘ oddKernel a) (1 / x) = (1 * ↑(x ^ (3 / 2))) • (ofReal' ∘ sinKernel a) x
state_after: no goals
tactic: simp_rw [Function.comp_apply, one_mul, smul_eq_mul, ← ofReal_mul,
    oddKernel_functional_equation a, one_div x, one_div x⁻¹, inv_rpow (le_of_lt hx), one_div,
    inv_inv]