Theorem: exists_hasDerivAt_eq_zero'
File: Mathlib/Analysis/Calculus/LocalExtr.lean

tactic: have : ContinuousOn f (Ioo a b) := fun x hx => (hff' x hx).continuousAt.continuousWithinAt
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
⊢ ∃ c, c ∈ Ioo a b ∧ f' c = 0

tactic: have hcont := continuousOn_Icc_extendFrom_Ioo hab.ne this hfa hfb
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
⊢ ∃ c, c ∈ Ioo a b ∧ f' c = 0

tactic: obtain ⟨c, hc, hcextr⟩ : ∃ c ∈ Ioo a b, IsLocalExtr (extendFrom (Ioo a b) f) c := by
  apply exists_local_extr_Ioo _ hab hcont
  rw [eq_lim_at_right_extendFrom_Ioo hab hfb]
  exact eq_lim_at_left_extendFrom_Ioo hab hfa
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
⊢ ∃ c, c ∈ Ioo a b ∧ f' c = 0

tactic: use c, hc
state_before: case intro.intro
f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
c : ℝ
hc : c ∈ Ioo a b
hcextr : IsLocalExtr (extendFrom (Ioo a b) f) c
⊢ ∃ c, c ∈ Ioo a b ∧ f' c = 0

tactic: apply (hcextr.congr _).hasDerivAt_eq_zero (hff' c hc)
state_before: case intro.intro
f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
c : ℝ
hc : c ∈ Ioo a b
hcextr : IsLocalExtr (extendFrom (Ioo a b) f) c
⊢ f' c = 0

tactic: rw [eventuallyEq_iff_exists_mem]
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
c : ℝ
hc : c ∈ Ioo a b
hcextr : IsLocalExtr (extendFrom (Ioo a b) f) c
⊢ extendFrom (Ioo a b) f =ᶠ[𝓝 c] f

tactic: exact ⟨Ioo a b, Ioo_mem_nhds hc.1 hc.2, extendFrom_extends this⟩
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
c : ℝ
hc : c ∈ Ioo a b
hcextr : IsLocalExtr (extendFrom (Ioo a b) f) c
⊢ ∃ s, s ∈ 𝓝 c ∧ EqOn (extendFrom (Ioo a b) f) f s

tactic: apply exists_local_extr_Ioo _ hab hcont
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
⊢ ∃ c, c ∈ Ioo a b ∧ IsLocalExtr (extendFrom (Ioo a b) f) c

tactic: rw [eq_lim_at_right_extendFrom_Ioo hab hfb]
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
⊢ extendFrom (Ioo a b) f a = extendFrom (Ioo a b) f b

tactic: exact eq_lim_at_left_extendFrom_Ioo hab hfa
state_before: f f' : ℝ → ℝ
a b l : ℝ
hab : a < b
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 l)
hfb : Tendsto f (𝓝[Iio b] b) (𝓝 l)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
this : ContinuousOn f (Ioo a b)
hcont : ContinuousOn (extendFrom (Ioo a b) f) (Icc a b)
⊢ extendFrom (Ioo a b) f a = l