Theorem: MeasureTheory.tendsto_limUnder_of_hasDerivAt_of_integrableOn_Iic
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

tactic: suffices ∃ a, Tendsto f atBot (𝓝 a) from tendsto_nhds_limUnder this
state_before: E : Type u_1
f f' : ℝ → E
g g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
⊢ Tendsto f atBot (𝓝 (limUnder atBot f))
state_after: E : Type u_1
f f' : ℝ → E
g g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
⊢ ∃ a, Tendsto f atBot (𝓝 a)

tactic: let g := f ∘ (fun x ↦ -x)
state_before: E : Type u_1
f f' : ℝ → E
g g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
⊢ ∃ a, Tendsto f atBot (𝓝 a)
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
⊢ ∃ a, Tendsto f atBot (𝓝 a)

tactic: have hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x := by
  intro x hx
  have : -x ∈ Iic a := by simp only [mem_Iic, mem_Ioi, neg_le] at *; exact hx.le
  simpa using HasDerivAt.scomp x (hderiv (-x) this) (hasDerivAt_neg' x)
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
⊢ ∃ a, Tendsto f atBot (𝓝 a)
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
⊢ ∃ a, Tendsto f atBot (𝓝 a)

tactic: have L : Tendsto g atTop (𝓝 (limUnder atTop g)) := by
  apply tendsto_limUnder_of_hasDerivAt_of_integrableOn_Ioi hdg
  exact ((MeasurePreserving.integrableOn_comp_preimage (Measure.measurePreserving_neg _)
    (Homeomorph.neg ℝ).measurableEmbedding).2 f'int.neg).mono_set (by simp)
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
⊢ ∃ a, Tendsto f atBot (𝓝 a)
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
L : Tendsto g atTop (𝓝 (limUnder atTop g))
⊢ ∃ a, Tendsto f atBot (𝓝 a)

tactic: refine ⟨limUnder atTop g, ?_⟩
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
L : Tendsto g atTop (𝓝 (limUnder atTop g))
⊢ ∃ a, Tendsto f atBot (𝓝 a)
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
L : Tendsto g atTop (𝓝 (limUnder atTop g))
⊢ Tendsto f atBot (𝓝 (limUnder atTop g))

tactic: have : Tendsto (fun x ↦ g (-x)) atBot (𝓝 (limUnder atTop g)) := L.comp tendsto_neg_atBot_atTop
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
L : Tendsto g atTop (𝓝 (limUnder atTop g))
⊢ Tendsto f atBot (𝓝 (limUnder atTop g))
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
L : Tendsto g atTop (𝓝 (limUnder atTop g))
this : Tendsto (fun x => g (-x)) atBot (𝓝 (limUnder atTop g))
⊢ Tendsto f atBot (𝓝 (limUnder atTop g))

tactic: simpa [g] using this
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
L : Tendsto g atTop (𝓝 (limUnder atTop g))
this : Tendsto (fun x => g (-x)) atBot (𝓝 (limUnder atTop g))
⊢ Tendsto f atBot (𝓝 (limUnder atTop g))
state_after: no goals

tactic: intro x hx
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
⊢ ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hx : x ∈ Ioi (-a)
⊢ HasDerivAt g (-f' (-x)) x

tactic: have : -x ∈ Iic a := by simp only [mem_Iic, mem_Ioi, neg_le] at *; exact hx.le
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hx : x ∈ Ioi (-a)
⊢ HasDerivAt g (-f' (-x)) x
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hx : x ∈ Ioi (-a)
this : -x ∈ Iic a
⊢ HasDerivAt g (-f' (-x)) x

tactic: simpa using HasDerivAt.scomp x (hderiv (-x) this) (hasDerivAt_neg' x)
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hx : x ∈ Ioi (-a)
this : -x ∈ Iic a
⊢ HasDerivAt g (-f' (-x)) x
state_after: no goals

tactic: simp only [mem_Iic, mem_Ioi, neg_le] at *
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hx : x ∈ Ioi (-a)
⊢ -x ∈ Iic a
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hderiv : ∀ x ≤ a, HasDerivAt f (f' x) x
hx : -a < x
⊢ -a ≤ x

tactic: exact hx.le
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
x : ℝ
hderiv : ∀ x ≤ a, HasDerivAt f (f' x) x
hx : -a < x
⊢ -a ≤ x
state_after: no goals

tactic: apply tendsto_limUnder_of_hasDerivAt_of_integrableOn_Ioi hdg
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
⊢ Tendsto g atTop (𝓝 (limUnder atTop g))
state_after: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
⊢ IntegrableOn (fun x => -f' (-x)) (Ioi (-a)) volume

tactic: exact ((MeasurePreserving.integrableOn_comp_preimage (Measure.measurePreserving_neg _)
  (Homeomorph.neg ℝ).measurableEmbedding).2 f'int.neg).mono_set (by simp)
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
⊢ IntegrableOn (fun x => -f' (-x)) (Ioi (-a)) volume
state_after: no goals

tactic: simp
state_before: E : Type u_1
f f' : ℝ → E
g✝ g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Iic a, HasDerivAt f (f' x) x
f'int : IntegrableOn f' (Iic a) volume
g : ℝ → E := f ∘ fun x => -x
hdg : ∀ x ∈ Ioi (-a), HasDerivAt g (-f' (-x)) x
⊢ Ioi (-a) ⊆ Neg.neg ⁻¹' Iic a
state_after: no goals