Theorem: hasMellin_one_Ioc
File: Mathlib/Analysis/MellinTransform.lean

Proof steps:
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
tactic: have aux1 : -1 < (s - 1).re := by
    simpa only [sub_re, one_re, sub_eq_add_neg] using lt_add_of_pos_left _ hs
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
tactic: have aux2 : s ≠ 0 := by contrapose! hs; rw [hs, zero_re]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
tactic: have aux3 : MeasurableSet (Ioc (0 : ℝ) 1) := measurableSet_Ioc
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ HasMellin ((Ioc 0 1).indicator fun x => 1) s (1 / s)
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ Integrable (fun a => ↑a ^ (s - 1)) (volume.restrict (Ioc 0 1)) ∧ ∫ (a : ℝ) in Ioc 0 1, ↑a ^ (s - 1) ∂volume = 1 / s
tactic: simp_rw [HasMellin, mellin, MellinConvergent, ← indicator_smul, IntegrableOn,
    integrable_indicator_iff aux3, smul_eq_mul, integral_indicator aux3, mul_one, IntegrableOn,
    Measure.restrict_restrict_of_subset Ioc_subset_Ioi_self]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ Integrable (fun a => ↑a ^ (s - 1)) (volume.restrict (Ioc 0 1)) ∧ ∫ (a : ℝ) in Ioc 0 1, ↑a ^ (s - 1) ∂volume = 1 / s
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ IntervalIntegrable (fun a => ↑a ^ (s - 1)) volume 0 1 ∧ ∫ (a : ℝ) in Ioc 0 1, ↑a ^ (s - 1) ∂volume = 1 / s
tactic: rw [← IntegrableOn, ← intervalIntegrable_iff_integrableOn_Ioc_of_le zero_le_one]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ IntervalIntegrable (fun a => ↑a ^ (s - 1)) volume 0 1 ∧ ∫ (a : ℝ) in Ioc 0 1, ↑a ^ (s - 1) ∂volume = 1 / s
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ ∫ (a : ℝ) in Ioc 0 1, ↑a ^ (s - 1) ∂volume = 1 / s
tactic: refine ⟨intervalIntegral.intervalIntegrable_cpow' aux1, ?_⟩
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
s : ℂ
hs : 0 < s.re
aux1 : -1 < (s - 1).re
aux2 : s ≠ 0
aux3 : MeasurableSet (Ioc 0 1)
⊢ ∫ (a : ℝ) in Ioc 0 1, ↑a ^ (s - 1) ∂volume = 1 / s
state_after: no goals
tactic: rw [← intervalIntegral.integral_of_le zero_le_one, integral_cpow (Or.inl aux1), sub_add_cancel,
    ofReal_zero, ofReal_one, one_cpow, zero_cpow aux2, sub_zero]