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

tactic: have :=
  integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae hf hmeas_a hmeas_b ha hb
    (continuous_snd.fst.tendsto ((a, b), (a, b)))
    (continuous_fst.fst.tendsto ((a, b), (a, b)))
    (continuous_snd.snd.tendsto ((a, b), (a, b)))
    (continuous_fst.snd.tendsto ((a, b), (a, b)))
state_before: ι : Type ?u.1646574
𝕜 : Type ?u.1646577
E : Type u_1
F : Type ?u.1646583
A : Type ?u.1646586
inst✝⁴ : NormedAddCommGroup E
inst✝³ : CompleteSpace E
inst✝² : NormedSpace ℝ E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)
hmeas_b : StronglyMeasurableAtFilter f (𝓝 b)
ha : Tendsto f (𝓝 a ⊓ Measure.ae volume) (𝓝 ca)
hb : Tendsto f (𝓝 b ⊓ Measure.ae volume) (𝓝 cb)
⊢ HasStrictFDerivAt (fun p => ∫ (x : ℝ) in p.fst..p.snd, f x) (smulRight (snd ℝ ℝ ℝ) cb - smulRight (fst ℝ ℝ ℝ) ca)
    (a, b)

tactic: refine' (this.congr_left _).trans_isBigO _
state_before: ι : Type ?u.1646574
𝕜 : Type ?u.1646577
E : Type u_1
F : Type ?u.1646583
A : Type ?u.1646586
inst✝⁴ : NormedAddCommGroup E
inst✝³ : CompleteSpace E
inst✝² : NormedSpace ℝ E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)
hmeas_b : StronglyMeasurableAtFilter f (𝓝 b)
ha : Tendsto f (𝓝 a ⊓ Measure.ae volume) (𝓝 ca)
hb : Tendsto f (𝓝 b ⊓ Measure.ae volume) (𝓝 cb)
this :
  (fun t =>
      ((∫ (x : ℝ) in t.fst.fst..t.fst.snd, f x) - ∫ (x : ℝ) in t.snd.fst..t.snd.snd, f x) -
        ((t.fst.snd - t.snd.snd) • cb - (t.fst.fst - t.snd.fst) • ca)) =o[𝓝 ((a, b), a, b)]
    fun t => ‖t.fst.fst - t.snd.fst‖ + ‖t.fst.snd - t.snd.snd‖
⊢ HasStrictFDerivAt (fun p => ∫ (x : ℝ) in p.fst..p.snd, f x) (smulRight (snd ℝ ℝ ℝ) cb - smulRight (fst ℝ ℝ ℝ) ca)
    (a, b)

tactic: intro x
state_before: case refine'_1
ι : Type ?u.1646574
𝕜 : Type ?u.1646577
E : Type u_1
F : Type ?u.1646583
A : Type ?u.1646586
inst✝⁴ : NormedAddCommGroup E
inst✝³ : CompleteSpace E
inst✝² : NormedSpace ℝ E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)
hmeas_b : StronglyMeasurableAtFilter f (𝓝 b)
ha : Tendsto f (𝓝 a ⊓ Measure.ae volume) (𝓝 ca)
hb : Tendsto f (𝓝 b ⊓ Measure.ae volume) (𝓝 cb)
this :
  (fun t =>
      ((∫ (x : ℝ) in t.fst.fst..t.fst.snd, f x) - ∫ (x : ℝ) in t.snd.fst..t.snd.snd, f x) -
        ((t.fst.snd - t.snd.snd) • cb - (t.fst.fst - t.snd.fst) • ca)) =o[𝓝 ((a, b), a, b)]
    fun t => ‖t.fst.fst - t.snd.fst‖ + ‖t.fst.snd - t.snd.snd‖
⊢ ∀ (x : (ℝ × ℝ) × ℝ × ℝ),
    ((∫ (x : ℝ) in x.fst.fst..x.fst.snd, f x) - ∫ (x : ℝ) in x.snd.fst..x.snd.snd, f x) -
        ((x.fst.snd - x.snd.snd) • cb - (x.fst.fst - x.snd.fst) • ca) =
      (fun p => ∫ (x : ℝ) in p.fst..p.snd, f x) x.fst - (fun p => ∫ (x : ℝ) in p.fst..p.snd, f x) x.snd -
        ↑(smulRight (snd ℝ ℝ ℝ) cb - smulRight (fst ℝ ℝ ℝ) ca) (x.fst - x.snd)

tactic: simp [sub_smul]
state_before: case refine'_1
ι : Type ?u.1646574
𝕜 : Type ?u.1646577
E : Type u_1
F : Type ?u.1646583
A : Type ?u.1646586
inst✝⁴ : NormedAddCommGroup E
inst✝³ : CompleteSpace E
inst✝² : NormedSpace ℝ E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)
hmeas_b : StronglyMeasurableAtFilter f (𝓝 b)
ha : Tendsto f (𝓝 a ⊓ Measure.ae volume) (𝓝 ca)
hb : Tendsto f (𝓝 b ⊓ Measure.ae volume) (𝓝 cb)
this :
  (fun t =>
      ((∫ (x : ℝ) in t.fst.fst..t.fst.snd, f x) - ∫ (x : ℝ) in t.snd.fst..t.snd.snd, f x) -
        ((t.fst.snd - t.snd.snd) • cb - (t.fst.fst - t.snd.fst) • ca)) =o[𝓝 ((a, b), a, b)]
    fun t => ‖t.fst.fst - t.snd.fst‖ + ‖t.fst.snd - t.snd.snd‖
x : (ℝ × ℝ) × ℝ × ℝ
⊢ ((∫ (x : ℝ) in x.fst.fst..x.fst.snd, f x) - ∫ (x : ℝ) in x.snd.fst..x.snd.snd, f x) -
      ((x.fst.snd - x.snd.snd) • cb - (x.fst.fst - x.snd.fst) • ca) =
    (fun p => ∫ (x : ℝ) in p.fst..p.snd, f x) x.fst - (fun p => ∫ (x : ℝ) in p.fst..p.snd, f x) x.snd -
      ↑(smulRight (snd ℝ ℝ ℝ) cb - smulRight (fst ℝ ℝ ℝ) ca) (x.fst - x.snd)

tactic: abel
state_before: case refine'_1
ι : Type ?u.1646574
𝕜 : Type ?u.1646577
E : Type u_1
F : Type ?u.1646583
A : Type ?u.1646586
inst✝⁴ : NormedAddCommGroup E
inst✝³ : CompleteSpace E
inst✝² : NormedSpace ℝ E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)
hmeas_b : StronglyMeasurableAtFilter f (𝓝 b)
ha : Tendsto f (𝓝 a ⊓ Measure.ae volume) (𝓝 ca)
hb : Tendsto f (𝓝 b ⊓ Measure.ae volume) (𝓝 cb)
this :
  (fun t =>
      ((∫ (x : ℝ) in t.fst.fst..t.fst.snd, f x) - ∫ (x : ℝ) in t.snd.fst..t.snd.snd, f x) -
        ((t.fst.snd - t.snd.snd) • cb - (t.fst.fst - t.snd.fst) • ca)) =o[𝓝 ((a, b), a, b)]
    fun t => ‖t.fst.fst - t.snd.fst‖ + ‖t.fst.snd - t.snd.snd‖
x : (ℝ × ℝ) × ℝ × ℝ
⊢ x.fst.snd • cb - x.snd.snd • cb - (x.fst.fst • ca - x.snd.fst • ca) =
    x.fst.snd • cb - x.fst.fst • ca - (x.snd.snd • cb - x.snd.fst • ca)

tactic: exact isBigO_fst_prod.norm_left.add isBigO_snd_prod.norm_left
state_before: case refine'_2
ι : Type ?u.1646574
𝕜 : Type ?u.1646577
E : Type u_1
F : Type ?u.1646583
A : Type ?u.1646586
inst✝⁴ : NormedAddCommGroup E
inst✝³ : CompleteSpace E
inst✝² : NormedSpace ℝ E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)
hmeas_b : StronglyMeasurableAtFilter f (𝓝 b)
ha : Tendsto f (𝓝 a ⊓ Measure.ae volume) (𝓝 ca)
hb : Tendsto f (𝓝 b ⊓ Measure.ae volume) (𝓝 cb)
this :
  (fun t =>
      ((∫ (x : ℝ) in t.fst.fst..t.fst.snd, f x) - ∫ (x : ℝ) in t.snd.fst..t.snd.snd, f x) -
        ((t.fst.snd - t.snd.snd) • cb - (t.fst.fst - t.snd.fst) • ca)) =o[𝓝 ((a, b), a, b)]
    fun t => ‖t.fst.fst - t.snd.fst‖ + ‖t.fst.snd - t.snd.snd‖
⊢ (fun t => ‖t.fst.fst - t.snd.fst‖ + ‖t.fst.snd - t.snd.snd‖) =O[𝓝 ((a, b), a, b)] fun p => p.fst - p.snd