Theorem: intervalIntegral.integral_eq_sub_of_hasDerivAt_of_tendsto
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: set F : ℝ → E := update (update f a fa) b fb
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
⊢ (∫ (y : ℝ) in a..b, f' y) = fb - fa

tactic: have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x := by
  refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
  filter_upwards [Ioo_mem_nhds hx.1 hx.2] with _ hy; simp only
  rw [update_noteq hy.2.ne, update_noteq hy.1.ne']
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
⊢ (∫ (y : ℝ) in a..b, f' y) = fb - fa

tactic: simpa [hab.ne, hab.ne'] using integral_eq_sub_of_hasDerivAt_of_le hab.le hcont Fderiv hint
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
hcont : ContinuousOn F (Icc a b)
⊢ (∫ (y : ℝ) in a..b, f' y) = fb - fa

tactic: refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
⊢ ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x

tactic: filter_upwards [Ioo_mem_nhds hx.1 hx.2] with _ hy
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
x : ℝ
hx : x ∈ Ioo a b
⊢ F =ᶠ[𝓝 x] f

tactic: simp only
state_before: case h
ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
x : ℝ
hx : x ∈ Ioo a b
a✝ : ℝ
hy : a✝ ∈ Ioo a b
⊢ update (update f a fa) b fb a✝ = f a✝

tactic: rw [update_noteq hy.2.ne, update_noteq hy.1.ne']
state_before: case h
ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
x : ℝ
hx : x ∈ Ioo a b
a✝ : ℝ
hy : a✝ ∈ Ioo a b
⊢ update (update f a fa) b fb a✝ = f a✝

tactic: rw [continuousOn_update_iff, continuousOn_update_iff, Icc_diff_right, Ico_diff_left]
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
⊢ ContinuousOn F (Icc a b)

tactic: refine' ⟨⟨fun z hz => (hderiv z hz).continuousAt.continuousWithinAt, _⟩, _⟩
state_before: ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
⊢ (ContinuousOn f (Ioo a b) ∧ (a ∈ Ico a b → Tendsto f (𝓝[Ioo a b] a) (𝓝 fa))) ∧
    (b ∈ Icc a b → Tendsto (update f a fa) (𝓝[Ico a b] b) (𝓝 fb))

tactic: exact fun _ => ha.mono_left (nhdsWithin_mono _ Ioo_subset_Ioi_self)
state_before: case refine'_1
ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
⊢ a ∈ Ico a b → Tendsto f (𝓝[Ioo a b] a) (𝓝 fa)

tactic: rintro -
state_before: case refine'_2
ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
⊢ b ∈ Icc a b → Tendsto (update f a fa) (𝓝[Ico a b] b) (𝓝 fb)

tactic: refine' (hb.congr' _).mono_left (nhdsWithin_mono _ Ico_subset_Iio_self)
state_before: case refine'_2
ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
⊢ Tendsto (update f a fa) (𝓝[Ico a b] b) (𝓝 fb)

tactic: filter_upwards [Ioo_mem_nhdsWithin_Iio (right_mem_Ioc.2 hab)] with _ hz using
  (update_noteq hz.1.ne' _ _).symm
state_before: case refine'_2
ι : Type ?u.1849419
𝕜 : Type ?u.1849422
E : Type u_1
F✝ : Type ?u.1849428
A : Type ?u.1849431
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a < b
fa fb : E
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hint : IntervalIntegrable f' volume a b
ha : Tendsto f (𝓝[Ioi a] a) (𝓝 fa)
hb : Tendsto f (𝓝[Iio b] b) (𝓝 fb)
F : ℝ → E := update (update f a fa) b fb
Fderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt F (f' x) x
⊢ f =ᶠ[𝓝[Iio b] b] update f a fa