Theorem: Convex.taylor_approx_two_segment
File: Mathlib/Analysis/Calculus/FDerivSymmetric.lean

tactic: refine' IsLittleO.trans_isBigO
  (isLittleO_iff.2 fun ε εpos => _) (isBigO_const_mul_self ((‖v‖ + ‖w‖) * ‖w‖) _ _)
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : HasFDerivWithinAt f' f'' (interior s) x
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
⊢ (fun h =>
      f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2

tactic: rw [HasFDerivWithinAt, HasFDerivAtFilter, isLittleO_iff] at hx
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : HasFDerivWithinAt f' f'' (interior s) x
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝[Ioi 0] 0,
    ‖f (x + x_1 • v + x_1 • w) - f (x + x_1 • v) - x_1 • ↑(f' x) w - x_1 ^ 2 • ↑(↑f'' v) w -
          (x_1 ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
      ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * x_1 ^ 2‖

tactic: rcases Metric.mem_nhdsWithin_iff.1 (hx εpos) with ⟨δ, δpos, sδ⟩
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝[Ioi 0] 0,
    ‖f (x + x_1 • v + x_1 • w) - f (x + x_1 • v) - x_1 • ↑(f' x) w - x_1 ^ 2 • ↑(↑f'' v) w -
          (x_1 ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
      ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * x_1 ^ 2‖

tactic: have E1 : ∀ᶠ h in 𝓝[>] (0 : ℝ), h * (‖v‖ + ‖w‖) < δ := by
  have : Filter.Tendsto (fun h => h * (‖v‖ + ‖w‖)) (𝓝[>] (0 : ℝ)) (𝓝 (0 * (‖v‖ + ‖w‖))) :=
    (continuous_id.mul continuous_const).continuousWithinAt
  apply (tendsto_order.1 this).2 δ
  simpa only [MulZeroClass.zero_mul] using δpos
state_before: case intro.intro
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝[Ioi 0] 0,
    ‖f (x + x_1 • v + x_1 • w) - f (x + x_1 • v) - x_1 • ↑(f' x) w - x_1 ^ 2 • ↑(↑f'' v) w -
          (x_1 ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
      ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * x_1 ^ 2‖

tactic: have E2 : ∀ᶠ h in 𝓝[>] (0 : ℝ), (h : ℝ) < 1 :=
  mem_nhdsWithin_Ioi_iff_exists_Ioo_subset.2
    ⟨(1 : ℝ), by simp only [mem_Ioi, zero_lt_one], fun x hx => hx.2⟩
state_before: case intro.intro
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝[Ioi 0] 0,
    ‖f (x + x_1 • v + x_1 • w) - f (x + x_1 • v) - x_1 • ↑(f' x) w - x_1 ^ 2 • ↑(↑f'' v) w -
          (x_1 ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
      ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * x_1 ^ 2‖

tactic: filter_upwards [E1, E2, self_mem_nhdsWithin] with h hδ h_lt_1 hpos
state_before: case intro.intro
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝[Ioi 0] 0,
    ‖f (x + x_1 • v + x_1 • w) - f (x + x_1 • v) - x_1 • ↑(f' x) w - x_1 ^ 2 • ↑(↑f'' v) w -
          (x_1 ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
      ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * x_1 ^ 2‖

tactic: replace hpos : 0 < h := hpos
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : h ∈ Ioi 0
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: have xt_mem : ∀ t ∈ Icc (0 : ℝ) 1, x + h • v + (t * h) • w ∈ interior s := by
  intro t ht
  have : x + h • v ∈ interior s := s_conv.add_smul_mem_interior xs hv ⟨hpos, h_lt_1.le⟩
  rw [← smul_smul]
  apply s_conv.interior.add_smul_mem this _ ht
  rw [add_assoc] at hw
  rw [add_assoc, ← smul_add]
  exact s_conv.add_smul_mem_interior xs hw ⟨hpos, h_lt_1.le⟩
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: let g t :=
  f (x + h • v + (t * h) • w) - (t * h) • f' x w - (t * h ^ 2) • f'' v w -
    ((t * h) ^ 2 / 2) • f'' w w
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: set g' := fun t =>
  f' (x + h • v + (t * h) • w) (h • w) - h • f' x w - h ^ 2 • f'' v w - (t * h ^ 2) • f'' w w
  with hg'
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: have g'_bound : ∀ t ∈ Ico (0 : ℝ) 1, ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2 := by
  intro t ht
  have I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖) :=
    calc
      ‖h • v + (t * h) • w‖ ≤ ‖h • v‖ + ‖(t * h) • w‖ := norm_add_le _ _
      _ = h * ‖v‖ + t * (h * ‖w‖) := by
        simp only [norm_smul, Real.norm_eq_abs, hpos.le, abs_of_nonneg, abs_mul, ht.left,
          mul_assoc]
      _ ≤ h * ‖v‖ + 1 * (h * ‖w‖) := by gcongr; exact ht.2.le
      _ = h * (‖v‖ + ‖w‖) := by ring
  calc
    ‖g' t‖ = ‖(f' (x + h • v + (t * h) • w) - f' x - f'' (h • v + (t * h) • w)) (h • w)‖ := by
      rw [hg']
      have : h * (t * h) = t * (h * h) := by ring
      simp only [ContinuousLinearMap.coe_sub', ContinuousLinearMap.map_add, pow_two,
        ContinuousLinearMap.add_apply, Pi.smul_apply, smul_sub, smul_add, smul_smul, ← sub_sub,
        ContinuousLinearMap.coe_smul', Pi.sub_apply, ContinuousLinearMap.map_smul, this]
    _ ≤ ‖f' (x + h • v + (t * h) • w) - f' x - f'' (h • v + (t * h) • w)‖ * ‖h • w‖ :=
      (ContinuousLinearMap.le_op_norm _ _)
    _ ≤ ε * ‖h • v + (t * h) • w‖ * ‖h • w‖ := by
      apply mul_le_mul_of_nonneg_right _ (norm_nonneg _)
      have H : x + h • v + (t * h) • w ∈ Metric.ball x δ ∩ interior s := by
        refine' ⟨_, xt_mem t ⟨ht.1, ht.2.le⟩⟩
        rw [add_assoc, add_mem_ball_iff_norm]
        exact I.trans_lt hδ
      simpa only [mem_setOf_eq, add_assoc x, add_sub_cancel'] using sδ H
    _ ≤ ε * (‖h • v‖ + ‖h • w‖) * ‖h • w‖ := by
      gcongr
      apply (norm_add_le _ _).trans
      gcongr
      simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, ht.1, hpos.le, mul_assoc]
      exact mul_le_of_le_one_left (mul_nonneg hpos.le (norm_nonneg _)) ht.2.le
    _ = ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2 := by
      simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, hpos.le]; ring
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: have I : ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2 := by
  simpa only [mul_one, sub_zero] using
    norm_image_sub_le_of_norm_deriv_le_segment' g_deriv g'_bound 1 (right_mem_Icc.2 zero_le_one)
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: convert I using 1
state_before: case h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
I : ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ ≤
    ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖

tactic: have : Filter.Tendsto (fun h => h * (‖v‖ + ‖w‖)) (𝓝[>] (0 : ℝ)) (𝓝 (0 * (‖v‖ + ‖w‖))) :=
  (continuous_id.mul continuous_const).continuousWithinAt
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
⊢ ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ

tactic: apply (tendsto_order.1 this).2 δ
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
this : Filter.Tendsto (fun h => h * (‖v‖ + ‖w‖)) (𝓝[Ioi 0] 0) (𝓝 (0 * (‖v‖ + ‖w‖)))
⊢ ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ

tactic: simpa only [MulZeroClass.zero_mul] using δpos
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
this : Filter.Tendsto (fun h => h * (‖v‖ + ‖w‖)) (𝓝[Ioi 0] 0) (𝓝 (0 * (‖v‖ + ‖w‖)))
⊢ δ > 0 * (‖v‖ + ‖w‖)

tactic: simp only [mem_Ioi, zero_lt_one]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
⊢ 1 ∈ Ioi 0

tactic: intro t ht
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
⊢ ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s

tactic: have : x + h • v ∈ interior s := s_conv.add_smul_mem_interior xs hv ⟨hpos, h_lt_1.le⟩
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
t : ℝ
ht : t ∈ Icc 0 1
⊢ x + h • v + (t * h) • w ∈ interior s

tactic: rw [← smul_smul]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
t : ℝ
ht : t ∈ Icc 0 1
this : x + h • v ∈ interior s
⊢ x + h • v + (t * h) • w ∈ interior s

tactic: apply s_conv.interior.add_smul_mem this _ ht
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
t : ℝ
ht : t ∈ Icc 0 1
this : x + h • v ∈ interior s
⊢ x + h • v + t • h • w ∈ interior s

tactic: rw [add_assoc] at hw
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
t : ℝ
ht : t ∈ Icc 0 1
this : x + h • v ∈ interior s
⊢ x + h • v + h • w ∈ interior s

tactic: rw [add_assoc, ← smul_add]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + (v + w) ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
t : ℝ
ht : t ∈ Icc 0 1
this : x + h • v ∈ interior s
⊢ x + h • v + h • w ∈ interior s

tactic: exact s_conv.add_smul_mem_interior xs hw ⟨hpos, h_lt_1.le⟩
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + (v + w) ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
t : ℝ
ht : t ∈ Icc 0 1
this : x + h • v ∈ interior s
⊢ x + h • (v + w) ∈ interior s

tactic: intro t ht
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
⊢ ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t

tactic: apply_rules [HasDerivWithinAt.sub, HasDerivWithinAt.add]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt g (g' t) (Icc 0 1) t

tactic: refine' (hf _ _).comp_hasDerivWithinAt _ _
state_before: case hf.hf.hf
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt (fun x_1 => f (x + h • v + (x_1 * h) • w)) (↑(f' (x + h • v + (t * h) • w)) (h • w)) (Icc 0 1) t

tactic: apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.const_add, HasDerivAt.smul_const,
  hasDerivAt_mul_const]
state_before: case hf.hf.hf.refine'_2
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt (fun x_1 => x + h • v + (x_1 * h) • w) (h • w) (Icc 0 1) t

tactic: exact xt_mem t ht
state_before: case hf.hf.hf.refine'_1
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ x + h • v + (t * h) • w ∈ interior s

tactic: apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_mul_const]
state_before: case hf.hf.hg
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt (fun x_1 => (x_1 * h) • ↑(f' x) w) (h • ↑(f' x) w) (Icc 0 1) t

tactic: apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_mul_const]
state_before: case hf.hg
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt (fun x => (x * h ^ 2) • ↑(↑f'' v) w) (h ^ 2 • ↑(↑f'' v) w) (Icc 0 1) t

tactic: suffices H : HasDerivWithinAt (fun u => ((u * h) ^ 2 / 2) • f'' w w)
    ((((2 : ℕ) : ℝ) * (t * h) ^ (2 - 1) * (1 * h) / 2) • f'' w w) (Icc 0 1) t
state_before: case hg
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt (fun x => ((x * h) ^ 2 / 2) • ↑(↑f'' w) w) ((t * h ^ 2) • ↑(↑f'' w) w) (Icc 0 1) t

tactic: apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_id',
  HasDerivAt.pow, HasDerivAt.mul_const]
state_before: case H
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
⊢ HasDerivWithinAt (fun u => ((u * h) ^ 2 / 2) • ↑(↑f'' w) w) ((↑2 * (t * h) ^ (2 - 1) * (1 * h) / 2) • ↑(↑f'' w) w)
    (Icc 0 1) t

tactic: convert H using 2
state_before: case hg
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
H :
  HasDerivWithinAt (fun u => ((u * h) ^ 2 / 2) • ↑(↑f'' w) w) ((↑2 * (t * h) ^ (2 - 1) * (1 * h) / 2) • ↑(↑f'' w) w)
    (Icc 0 1) t
⊢ HasDerivWithinAt (fun x => ((x * h) ^ 2 / 2) • ↑(↑f'' w) w) ((t * h ^ 2) • ↑(↑f'' w) w) (Icc 0 1) t

tactic: ring
state_before: case h.e'_7.h.e'_5
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
t : ℝ
ht : t ∈ Icc 0 1
H :
  HasDerivWithinAt (fun u => ((u * h) ^ 2 / 2) • ↑(↑f'' w) w) ((↑2 * (t * h) ^ (2 - 1) * (1 * h) / 2) • ↑(↑f'' w) w)
    (Icc 0 1) t
⊢ t * h ^ 2 = ↑2 * (t * h) ^ (2 - 1) * (1 * h) / 2

tactic: intro t ht
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
⊢ ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2

tactic: have I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖) :=
  calc
    ‖h • v + (t * h) • w‖ ≤ ‖h • v‖ + ‖(t * h) • w‖ := norm_add_le _ _
    _ = h * ‖v‖ + t * (h * ‖w‖) := by
      simp only [norm_smul, Real.norm_eq_abs, hpos.le, abs_of_nonneg, abs_mul, ht.left,
        mul_assoc]
    _ ≤ h * ‖v‖ + 1 * (h * ‖w‖) := by gcongr; exact ht.2.le
    _ = h * (‖v‖ + ‖w‖) := by ring
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
⊢ ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2

tactic: calc
  ‖g' t‖ = ‖(f' (x + h • v + (t * h) • w) - f' x - f'' (h • v + (t * h) • w)) (h • w)‖ := by
    rw [hg']
    have : h * (t * h) = t * (h * h) := by ring
    simp only [ContinuousLinearMap.coe_sub', ContinuousLinearMap.map_add, pow_two,
      ContinuousLinearMap.add_apply, Pi.smul_apply, smul_sub, smul_add, smul_smul, ← sub_sub,
      ContinuousLinearMap.coe_smul', Pi.sub_apply, ContinuousLinearMap.map_smul, this]
  _ ≤ ‖f' (x + h • v + (t * h) • w) - f' x - f'' (h • v + (t * h) • w)‖ * ‖h • w‖ :=
    (ContinuousLinearMap.le_op_norm _ _)
  _ ≤ ε * ‖h • v + (t * h) • w‖ * ‖h • w‖ := by
    apply mul_le_mul_of_nonneg_right _ (norm_nonneg _)
    have H : x + h • v + (t * h) • w ∈ Metric.ball x δ ∩ interior s := by
      refine' ⟨_, xt_mem t ⟨ht.1, ht.2.le⟩⟩
      rw [add_assoc, add_mem_ball_iff_norm]
      exact I.trans_lt hδ
    simpa only [mem_setOf_eq, add_assoc x, add_sub_cancel'] using sδ H
  _ ≤ ε * (‖h • v‖ + ‖h • w‖) * ‖h • w‖ := by
    gcongr
    apply (norm_add_le _ _).trans
    gcongr
    simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, ht.1, hpos.le, mul_assoc]
    exact mul_le_of_le_one_left (mul_nonneg hpos.le (norm_nonneg _)) ht.2.le
  _ = ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2 := by
    simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, hpos.le]; ring
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2

tactic: simp only [norm_smul, Real.norm_eq_abs, hpos.le, abs_of_nonneg, abs_mul, ht.left,
  mul_assoc]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
⊢ ‖h • v‖ + ‖(t * h) • w‖ = h * ‖v‖ + t * (h * ‖w‖)

tactic: gcongr
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
⊢ h * ‖v‖ + t * (h * ‖w‖) ≤ h * ‖v‖ + 1 * (h * ‖w‖)

tactic: exact ht.2.le
state_before: case bc.h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
⊢ t ≤ 1

tactic: ring
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
⊢ h * ‖v‖ + 1 * (h * ‖w‖) = h * (‖v‖ + ‖w‖)

tactic: rw [hg']
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖g' t‖ = ‖↑(f' (x + h • v + (t * h) • w) - f' x - ↑f'' (h • v + (t * h) • w)) (h • w)‖

tactic: have : h * (t * h) = t * (h * h) := by ring
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖(fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w)
        t‖ =
    ‖↑(f' (x + h • v + (t * h) • w) - f' x - ↑f'' (h • v + (t * h) • w)) (h • w)‖

tactic: simp only [ContinuousLinearMap.coe_sub', ContinuousLinearMap.map_add, pow_two,
  ContinuousLinearMap.add_apply, Pi.smul_apply, smul_sub, smul_add, smul_smul, ← sub_sub,
  ContinuousLinearMap.coe_smul', Pi.sub_apply, ContinuousLinearMap.map_smul, this]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
this : h * (t * h) = t * (h * h)
⊢ ‖(fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w)
        t‖ =
    ‖↑(f' (x + h • v + (t * h) • w) - f' x - ↑f'' (h • v + (t * h) • w)) (h • w)‖

tactic: ring
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ h * (t * h) = t * (h * h)

tactic: apply mul_le_mul_of_nonneg_right _ (norm_nonneg _)
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖f' (x + h • v + (t * h) • w) - f' x - ↑f'' (h • v + (t * h) • w)‖ * ‖h • w‖ ≤ ε * ‖h • v + (t * h) • w‖ * ‖h • w‖

tactic: have H : x + h • v + (t * h) • w ∈ Metric.ball x δ ∩ interior s := by
  refine' ⟨_, xt_mem t ⟨ht.1, ht.2.le⟩⟩
  rw [add_assoc, add_mem_ball_iff_norm]
  exact I.trans_lt hδ
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖f' (x + h • v + (t * h) • w) - f' x - ↑f'' (h • v + (t * h) • w)‖ ≤ ε * ‖h • v + (t * h) • w‖

tactic: simpa only [mem_setOf_eq, add_assoc x, add_sub_cancel'] using sδ H
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
H : x + h • v + (t * h) • w ∈ Metric.ball x δ ∩ interior s
⊢ ‖f' (x + h • v + (t * h) • w) - f' x - ↑f'' (h • v + (t * h) • w)‖ ≤ ε * ‖h • v + (t * h) • w‖

tactic: refine' ⟨_, xt_mem t ⟨ht.1, ht.2.le⟩⟩
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ x + h • v + (t * h) • w ∈ Metric.ball x δ ∩ interior s

tactic: rw [add_assoc, add_mem_ball_iff_norm]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ x + h • v + (t * h) • w ∈ Metric.ball x δ

tactic: exact I.trans_lt hδ
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖h • v + (t * h) • w‖ < δ

tactic: gcongr
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ε * ‖h • v + (t * h) • w‖ * ‖h • w‖ ≤ ε * (‖h • v‖ + ‖h • w‖) * ‖h • w‖

tactic: apply (norm_add_le _ _).trans
state_before: case h.h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖h • v + (t * h) • w‖ ≤ ‖h • v‖ + ‖h • w‖

tactic: gcongr
state_before: case h.h
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖h • v‖ + ‖(t * h) • w‖ ≤ ‖h • v‖ + ‖h • w‖

tactic: simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, ht.1, hpos.le, mul_assoc]
state_before: case h.h.bc
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ‖(t * h) • w‖ ≤ ‖h • w‖

tactic: exact mul_le_of_le_one_left (mul_nonneg hpos.le (norm_nonneg _)) ht.2.le
state_before: case h.h.bc
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ t * (h * ‖w‖) ≤ h * ‖w‖

tactic: simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, hpos.le]
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ε * (‖h • v‖ + ‖h • w‖) * ‖h • w‖ = ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2

tactic: ring
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
t : ℝ
ht : t ∈ Ico 0 1
I : ‖h • v + (t * h) • w‖ ≤ h * (‖v‖ + ‖w‖)
⊢ ε * (h * ‖v‖ + h * ‖w‖) * (h * ‖w‖) = ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2

tactic: simpa only [mul_one, sub_zero] using
  norm_image_sub_le_of_norm_deriv_le_segment' g_deriv g'_bound 1 (right_mem_Icc.2 zero_le_one)
state_before: E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2

tactic: congr 1
state_before: case h.e'_3
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
I : ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ ‖f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w‖ =
    ‖g 1 - g 0‖

tactic: simp only [Nat.one_ne_zero, add_zero, one_mul, zero_div, MulZeroClass.zero_mul, sub_zero,
  zero_smul, Ne.def, not_false_iff, bit0_eq_zero, zero_pow']
state_before: case h.e'_3.e_a
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
I : ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w = g 1 - g 0

tactic: abel
state_before: case h.e'_3.e_a
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
I : ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ f (x + h • v + h • w) - f (x + h • v) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w =
    f (x + h • v + h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (h ^ 2 / 2) • ↑(↑f'' w) w - f (x + h • v)

tactic: simp only [Real.norm_eq_abs, abs_mul, add_nonneg (norm_nonneg v) (norm_nonneg w), abs_of_nonneg,
  hpos.le, mul_assoc, pow_bit0_abs, norm_nonneg, abs_pow]
state_before: case h.e'_4
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
s_conv : Convex ℝ s
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ (x : E), x ∈ interior s → HasFDerivAt f (f' x) x
x : E
xs : x ∈ s
hx : ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ (x_1 : E) in 𝓝[interior s] x, ‖f' x_1 - f' x - ↑f'' (x_1 - x)‖ ≤ c * ‖x_1 - x‖
v w : E
hv : x + v ∈ interior s
hw : x + v + w ∈ interior s
ε : ℝ
εpos : 0 < ε
δ : ℝ
δpos : δ > 0
sδ : Metric.ball x δ ∩ interior s ⊆ {x_1 | (fun x_2 => ‖f' x_2 - f' x - ↑f'' (x_2 - x)‖ ≤ ε * ‖x_2 - x‖) x_1}
E1 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h * (‖v‖ + ‖w‖) < δ
E2 : ∀ᶠ (h : ℝ) in 𝓝[Ioi 0] 0, h < 1
h : ℝ
hδ : h * (‖v‖ + ‖w‖) < δ
h_lt_1 : h < 1
hpos : 0 < h
xt_mem : ∀ (t : ℝ), t ∈ Icc 0 1 → x + h • v + (t * h) • w ∈ interior s
g : ℝ → F :=
  fun t =>
    f (x + h • v + (t * h) • w) - (t * h) • ↑(f' x) w - (t * h ^ 2) • ↑(↑f'' v) w - ((t * h) ^ 2 / 2) • ↑(↑f'' w) w
g' : ℝ → (fun x => F) (h • w) :=
  fun t => ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
hg' :
  g' = fun t =>
    ↑(f' (x + h • v + (t * h) • w)) (h • w) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' v) w - (t * h ^ 2) • ↑(↑f'' w) w
g_deriv : ∀ (t : ℝ), t ∈ Icc 0 1 → HasDerivWithinAt g (g' t) (Icc 0 1) t
g'_bound : ∀ (t : ℝ), t ∈ Ico 0 1 → ‖g' t‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
I : ‖g 1 - g 0‖ ≤ ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2
⊢ ε * ‖(‖v‖ + ‖w‖) * ‖w‖ * h ^ 2‖ = ε * ((‖v‖ + ‖w‖) * ‖w‖) * h ^ 2