[GOAL]
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
[PROOFSTEP]
refine'
  IsLittleO.trans_isBigO (isLittleO_iff.2 fun ε εpos => _)
    (isBigO_const_mul_self ((‖v‖ + ‖w‖) * ‖w‖) _ _)
      -- consider a ball of radius `δ` around `x` in which the Taylor approximation for `f''` is
        -- good up to `δ`.
[GOAL]
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‖
[PROOFSTEP]
rw [HasFDerivWithinAt, HasFDerivAtFilter, isLittleO_iff] at hx
[GOAL]
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‖
[PROOFSTEP]
rcases Metric.mem_nhdsWithin_iff.1 (hx εpos) with ⟨δ, δpos, sδ⟩
[GOAL]
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‖
[PROOFSTEP]
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 [zero_mul] using δpos
[GOAL]
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‖) < δ
[PROOFSTEP]
have : Filter.Tendsto (fun h => h * (‖v‖ + ‖w‖)) (𝓝[>] (0 : ℝ)) (𝓝 (0 * (‖v‖ + ‖w‖))) :=
  (continuous_id.mul continuous_const).continuousWithinAt
[GOAL]
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‖) < δ
[PROOFSTEP]
apply (tendsto_order.1 this).2 δ
[GOAL]
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‖)
[PROOFSTEP]
simpa only [zero_mul] using δpos
[GOAL]
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‖
[PROOFSTEP]
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⟩
[GOAL]
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
[PROOFSTEP]
simp only [mem_Ioi, zero_lt_one]
[GOAL]
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‖
[PROOFSTEP]
filter_upwards [E1, E2, self_mem_nhdsWithin] with h hδ h_lt_1 hpos
[GOAL]
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‖
[PROOFSTEP]
replace hpos : 0 < h := hpos
[GOAL]
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‖
[PROOFSTEP]
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⟩
        -- define a function `g` on `[0,1]` (identified with `[v, v + w]`) such that `g 1 - g 0` is the
          -- quantity to be estimated. We will check that its derivative is given by an explicit
          -- expression `g'`, that we can bound. Then the desired bound for `g 1 - g 0` follows from the
          -- mean value inequality.
[GOAL]
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
[PROOFSTEP]
intro t ht
[GOAL]
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
[PROOFSTEP]
have : x + h • v ∈ interior s := s_conv.add_smul_mem_interior xs hv ⟨hpos, h_lt_1.le⟩
[GOAL]
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
[PROOFSTEP]
rw [← smul_smul]
[GOAL]
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
[PROOFSTEP]
apply s_conv.interior.add_smul_mem this _ ht
[GOAL]
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
[PROOFSTEP]
rw [add_assoc] at hw
[GOAL]
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
[PROOFSTEP]
rw [add_assoc, ← smul_add]
[GOAL]
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
[PROOFSTEP]
exact
  s_conv.add_smul_mem_interior xs hw
    ⟨hpos, h_lt_1.le⟩
      -- define a function `g` on `[0,1]` (identified with `[v, v + w]`) such that `g 1 - g 0` is the
        -- quantity to be estimated. We will check that its derivative is given by an explicit
        -- expression `g'`, that we can bound. Then the desired bound for `g 1 - g 0` follows from the
        -- mean value inequality.
[GOAL]
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‖
[PROOFSTEP]
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
[GOAL]
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‖
[PROOFSTEP]
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'
[GOAL]
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
⊢ ‖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‖
[PROOFSTEP]
have g_deriv : ∀ t ∈ Icc (0 : ℝ) 1, HasDerivWithinAt g (g' t) (Icc 0 1) t :=
  by
  intro t ht
  apply_rules [HasDerivWithinAt.sub, HasDerivWithinAt.add]
  · refine' (hf _ _).comp_hasDerivWithinAt _ _
    · exact xt_mem t ht
    apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.const_add, HasDerivAt.smul_const, hasDerivAt_mul_const]
  · apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_mul_const]
  · apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_mul_const]
  · 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
    · convert H using 2
      ring
    apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_id', HasDerivAt.pow,
      HasDerivAt.mul_const]
      -- check that `g'` is uniformly bounded, with a suitable bound `ε * ((‖v‖ + ‖w‖) * ‖w‖) * h^2`.
[GOAL]
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
[PROOFSTEP]
intro t ht
[GOAL]
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
[PROOFSTEP]
apply_rules [HasDerivWithinAt.sub, HasDerivWithinAt.add]
[GOAL]
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
[PROOFSTEP]
refine' (hf _ _).comp_hasDerivWithinAt _ _
[GOAL]
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
[PROOFSTEP]
exact xt_mem t ht
[GOAL]
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
[PROOFSTEP]
apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.const_add, HasDerivAt.smul_const, hasDerivAt_mul_const]
[GOAL]
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
[PROOFSTEP]
apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_mul_const]
[GOAL]
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
[PROOFSTEP]
apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_mul_const]
[GOAL]
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
[PROOFSTEP]
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
[GOAL]
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
[PROOFSTEP]
convert H using 2
[GOAL]
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
[PROOFSTEP]
ring
[GOAL]
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
[PROOFSTEP]
apply_rules [HasDerivAt.hasDerivWithinAt, HasDerivAt.smul_const, hasDerivAt_id', HasDerivAt.pow, HasDerivAt.mul_const]
  -- check that `g'` is uniformly bounded, with a suitable bound `ε * ((‖v‖ + ‖w‖) * ‖w‖) * h^2`.
[GOAL]
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‖
[PROOFSTEP]
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
        -- conclude using the mean value inequality
[GOAL]
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
[PROOFSTEP]
intro t ht
[GOAL]
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
[PROOFSTEP]
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
[GOAL]
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‖)
[PROOFSTEP]
simp only [norm_smul, Real.norm_eq_abs, hpos.le, abs_of_nonneg, abs_mul, ht.left, mul_assoc]
[GOAL]
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‖)
[PROOFSTEP]
gcongr
[GOAL]
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
[PROOFSTEP]
exact ht.2.le
[GOAL]
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‖)
[PROOFSTEP]
ring
[GOAL]
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
[PROOFSTEP]
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
      -- conclude using the mean value inequality
[GOAL]
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)‖
[PROOFSTEP]
rw [hg']
[GOAL]
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)‖
[PROOFSTEP]
have : h * (t * h) = t * (h * h) := by ring
[GOAL]
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)
[PROOFSTEP]
ring
[GOAL]
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)‖
[PROOFSTEP]
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]
[GOAL]
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‖
[PROOFSTEP]
apply mul_le_mul_of_nonneg_right _ (norm_nonneg _)
[GOAL]
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‖
[PROOFSTEP]
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δ
[GOAL]
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
[PROOFSTEP]
refine' ⟨_, xt_mem t ⟨ht.1, ht.2.le⟩⟩
[GOAL]
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 δ
[PROOFSTEP]
rw [add_assoc, add_mem_ball_iff_norm]
[GOAL]
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‖ < δ
[PROOFSTEP]
exact I.trans_lt hδ
[GOAL]
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‖
[PROOFSTEP]
simpa only [mem_setOf_eq, add_assoc x, add_sub_cancel'] using sδ H
[GOAL]
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‖
[PROOFSTEP]
gcongr
[GOAL]
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‖
[PROOFSTEP]
apply (norm_add_le _ _).trans
[GOAL]
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‖
[PROOFSTEP]
gcongr
[GOAL]
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‖
[PROOFSTEP]
simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, ht.1, hpos.le, mul_assoc]
[GOAL]
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‖
[PROOFSTEP]
exact mul_le_of_le_one_left (mul_nonneg hpos.le (norm_nonneg _)) ht.2.le
[GOAL]
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
[PROOFSTEP]
simp only [norm_smul, Real.norm_eq_abs, abs_mul, abs_of_nonneg, hpos.le]
[GOAL]
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
[PROOFSTEP]
ring
  -- conclude using the mean value inequality
[GOAL]
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‖
[PROOFSTEP]
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)
[GOAL]
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
[PROOFSTEP]
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)
[GOAL]
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‖
[PROOFSTEP]
convert I using 1
[GOAL]
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‖
[PROOFSTEP]
congr 1
[GOAL]
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
[PROOFSTEP]
simp only [Nat.one_ne_zero, add_zero, one_mul, zero_div, zero_mul, sub_zero, zero_smul, Ne.def, not_false_iff,
  bit0_eq_zero, zero_pow']
[GOAL]
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)
[PROOFSTEP]
abel
[GOAL]
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)
[PROOFSTEP]
abel
[GOAL]
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
[PROOFSTEP]
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]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have A : (1 : ℝ) / 2 ∈ Ioc (0 : ℝ) 1 := ⟨by norm_num, by norm_num⟩
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
⊢ 0 < 1 / 2
[PROOFSTEP]
norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
⊢ 1 / 2 ≤ 1
[PROOFSTEP]
norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have B : (1 : ℝ) / 2 ∈ Icc (0 : ℝ) 1 := ⟨by norm_num, by norm_num⟩
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
⊢ 0 ≤ 1 / 2
[PROOFSTEP]
norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
⊢ 1 / 2 ≤ 1
[PROOFSTEP]
norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have C : ∀ w : E, (2 : ℝ) • w = 2 • w := fun w => by simp only [two_smul]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w✝ ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
w : E
⊢ 2 • w = 2 • w
[PROOFSTEP]
simp only [two_smul]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have h2v2w : x + (2 : ℝ) • v + (2 : ℝ) • w ∈ interior s :=
  by
  convert s_conv.interior.add_smul_sub_mem h4v h4w B using 1
  simp only [smul_sub, smul_smul, one_div, add_sub_add_left_eq_sub, mul_add, add_smul]
  norm_num
  simp only [show (4 : ℝ) = (2 : ℝ) + (2 : ℝ) by norm_num, _root_.add_smul]
  abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ x + 2 • v + 2 • w ∈ interior s
[PROOFSTEP]
convert s_conv.interior.add_smul_sub_mem h4v h4w B using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ x + 2 • v + 2 • w = x + 4 • v + (1 / 2) • (x + 4 • w - (x + 4 • v))
[PROOFSTEP]
simp only [smul_sub, smul_smul, one_div, add_sub_add_left_eq_sub, mul_add, add_smul]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ x + 2 • v + 2 • w = x + 4 • v + ((2⁻¹ * 4) • w - (2⁻¹ * 4) • v)
[PROOFSTEP]
norm_num
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ x + 2 • v + 2 • w = x + 4 • v + (2 • w - 2 • v)
[PROOFSTEP]
simp only [show (4 : ℝ) = (2 : ℝ) + (2 : ℝ) by norm_num, _root_.add_smul]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ 4 = 2 + 2
[PROOFSTEP]
norm_num
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ x + 2 • v + 2 • w = x + (2 • v + 2 • v) + (2 • w - 2 • v)
[PROOFSTEP]
abel
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
⊢ x + 2 • v + 2 • w = x + (2 • v + 2 • v) + (2 • w - 2 • v)
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have h2vww : x + (2 • v + w) + w ∈ interior s := by
  convert h2v2w using 1
  simp only [two_smul]
  abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
⊢ x + (2 • v + w) + w ∈ interior s
[PROOFSTEP]
convert h2v2w using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
⊢ x + (2 • v + w) + w = x + 2 • v + 2 • w
[PROOFSTEP]
simp only [two_smul]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
⊢ x + (v + v + w) + w = x + (v + v) + (w + w)
[PROOFSTEP]
abel
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
⊢ x + (v + v + w) + w = x + (v + v) + (w + w)
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have h2v : x + (2 : ℝ) • v ∈ interior s :=
  by
  convert s_conv.add_smul_sub_mem_interior xs h4v A using 1
  simp only [smul_smul, one_div, add_sub_cancel', add_right_inj]
  norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
⊢ x + 2 • v ∈ interior s
[PROOFSTEP]
convert s_conv.add_smul_sub_mem_interior xs h4v A using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
⊢ x + 2 • v = x + (1 / 2) • (x + 4 • v - x)
[PROOFSTEP]
simp only [smul_smul, one_div, add_sub_cancel', add_right_inj]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
⊢ 2 • v = (2⁻¹ * 4) • v
[PROOFSTEP]
norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have h2w : x + (2 : ℝ) • w ∈ interior s :=
  by
  convert s_conv.add_smul_sub_mem_interior xs h4w A using 1
  simp only [smul_smul, one_div, add_sub_cancel', add_right_inj]
  norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
⊢ x + 2 • w ∈ interior s
[PROOFSTEP]
convert s_conv.add_smul_sub_mem_interior xs h4w A using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
⊢ x + 2 • w = x + (1 / 2) • (x + 4 • w - x)
[PROOFSTEP]
simp only [smul_smul, one_div, add_sub_cancel', add_right_inj]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
⊢ 2 • w = (2⁻¹ * 4) • w
[PROOFSTEP]
norm_num
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have hvw : x + (v + w) ∈ interior s :=
  by
  convert s_conv.add_smul_sub_mem_interior xs h2v2w A using 1
  simp only [smul_smul, one_div, add_sub_cancel', add_right_inj, smul_add, smul_sub]
  norm_num
  abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
⊢ x + (v + w) ∈ interior s
[PROOFSTEP]
convert s_conv.add_smul_sub_mem_interior xs h2v2w A using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
⊢ x + (v + w) = x + (1 / 2) • (x + 2 • v + 2 • w - x)
[PROOFSTEP]
simp only [smul_smul, one_div, add_sub_cancel', add_right_inj, smul_add, smul_sub]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
⊢ v + w = 2⁻¹ • x + (2⁻¹ * 2) • v + (2⁻¹ * 2) • w - 2⁻¹ • x
[PROOFSTEP]
norm_num
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
⊢ v + w = (1 / 2) • x + v + w - (1 / 2) • x
[PROOFSTEP]
abel
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
⊢ v + w = (1 / 2) • x + v + w - (1 / 2) • x
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have h2vw : x + (2 • v + w) ∈ interior s :=
  by
  convert s_conv.interior.add_smul_sub_mem h2v h2v2w B using 1
  simp only [smul_add, smul_sub, smul_smul, ← C]
  norm_num
  abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
⊢ x + (2 • v + w) ∈ interior s
[PROOFSTEP]
convert s_conv.interior.add_smul_sub_mem h2v h2v2w B using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
⊢ x + (2 • v + w) = x + 2 • v + (1 / 2) • (x + 2 • v + 2 • w - (x + 2 • v))
[PROOFSTEP]
simp only [smul_add, smul_sub, smul_smul, ← C]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
⊢ x + (2 • v + w) = x + 2 • v + ((1 / 2) • x + (1 / 2 * 2) • v + (1 / 2 * 2) • w - ((1 / 2) • x + (1 / 2 * 2) • v))
[PROOFSTEP]
norm_num
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
⊢ x + (2 • v + w) = x + 2 • v + w
[PROOFSTEP]
abel
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
⊢ x + (2 • v + w) = x + 2 • v + w
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have hvww : x + (v + w) + w ∈ interior s :=
  by
  convert s_conv.interior.add_smul_sub_mem h2w h2v2w B using 1
  rw [one_div, add_sub_add_right_eq_sub, add_sub_cancel', inv_smul_smul₀ two_ne_zero, two_smul]
  abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
⊢ x + (v + w) + w ∈ interior s
[PROOFSTEP]
convert s_conv.interior.add_smul_sub_mem h2w h2v2w B using 1
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
⊢ x + (v + w) + w = x + 2 • w + (1 / 2) • (x + 2 • v + 2 • w - (x + 2 • w))
[PROOFSTEP]
rw [one_div, add_sub_add_right_eq_sub, add_sub_cancel', inv_smul_smul₀ two_ne_zero, two_smul]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
⊢ x + (v + w) + w = x + (w + w) + v
[PROOFSTEP]
abel
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
⊢ x + (v + w) + w = x + (w + w) + v
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have TA1 := s_conv.taylor_approx_two_segment hf xs hx h2vw h2vww
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
TA1 :
  (fun h =>
      f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
have TA2 := s_conv.taylor_approx_two_segment hf xs hx hvw hvww
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
TA1 :
  (fun h =>
      f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
TA2 :
  (fun h =>
      f (x + h • (v + w) + h • w) - f (x + h • (v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
[PROOFSTEP]
convert TA1.sub TA2 using 1
[GOAL]
case h.e'_7
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
TA1 :
  (fun h =>
      f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
TA2 :
  (fun h =>
      f (x + h • (v + w) + h • w) - f (x + h • (v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
⊢ (fun h =>
      f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w) =
    fun x_1 =>
    f (x + x_1 • (2 • v + w) + x_1 • w) - f (x + x_1 • (2 • v + w)) - x_1 • ↑(f' x) w -
          x_1 ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (x_1 ^ 2 / 2) • ↑(↑f'' w) w -
      (f (x + x_1 • (v + w) + x_1 • w) - f (x + x_1 • (v + w)) - x_1 • ↑(f' x) w - x_1 ^ 2 • ↑(↑f'' (v + w)) w -
        (x_1 ^ 2 / 2) • ↑(↑f'' w) w)
[PROOFSTEP]
ext h
[GOAL]
case h.e'_7.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
TA1 :
  (fun h =>
      f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
TA2 :
  (fun h =>
      f (x + h • (v + w) + h • w) - f (x + h • (v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
h : ℝ
⊢ f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
      h ^ 2 • ↑(↑f'' v) w =
    f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w -
      (f (x + h • (v + w) + h • w) - f (x + h • (v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w)
[PROOFSTEP]
simp only [two_smul, smul_add, ← add_assoc, ContinuousLinearMap.map_add, ContinuousLinearMap.add_apply, Pi.smul_apply,
  ContinuousLinearMap.coe_smul', ContinuousLinearMap.map_smul]
[GOAL]
case h.e'_7.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
TA1 :
  (fun h =>
      f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
TA2 :
  (fun h =>
      f (x + h • (v + w) + h • w) - f (x + h • (v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
h : ℝ
⊢ f (x + h • v + h • v + h • w + h • w) + f (x + h • v + h • w) - f (x + h • v + h • v + h • w) -
        f (x + h • v + h • w + h • w) -
      h ^ 2 • ↑(↑f'' v) w =
    f (x + h • v + h • v + h • w + h • w) - f (x + h • v + h • v + h • w) - h • ↑(f' x) w -
          (h ^ 2 • ↑(↑f'' v) w + h ^ 2 • ↑(↑f'' v) w + h ^ 2 • ↑(↑f'' w) w) -
        (h ^ 2 / 2) • ↑(↑f'' w) w -
      (f (x + h • v + h • w + h • w) - f (x + h • v + h • w) - h • ↑(f' x) w -
          (h ^ 2 • ↑(↑f'' v) w + h ^ 2 • ↑(↑f'' w) w) -
        (h ^ 2 / 2) • ↑(↑f'' w) w)
[PROOFSTEP]
abel
[GOAL]
case h.e'_7.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : 1 / 2 ∈ Ioc 0 1
B : 1 / 2 ∈ Icc 0 1
C : ∀ (w : E), 2 • w = 2 • w
h2v2w : x + 2 • v + 2 • w ∈ interior s
h2vww : x + (2 • v + w) + w ∈ interior s
h2v : x + 2 • v ∈ interior s
h2w : x + 2 • w ∈ interior s
hvw : x + (v + w) ∈ interior s
h2vw : x + (2 • v + w) ∈ interior s
hvww : x + (v + w) + w ∈ interior s
TA1 :
  (fun h =>
      f (x + h • (2 • v + w) + h • w) - f (x + h • (2 • v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (2 • v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
TA2 :
  (fun h =>
      f (x + h • (v + w) + h • w) - f (x + h • (v + w)) - h • ↑(f' x) w - h ^ 2 • ↑(↑f'' (v + w)) w -
        (h ^ 2 / 2) • ↑(↑f'' w) w) =o[𝓝[Ioi 0] 0]
    fun h => h ^ 2
h : ℝ
⊢ f (x + h • v + h • v + h • w + h • w) + f (x + h • v + h • w) - f (x + h • v + h • v + h • w) -
        f (x + h • v + h • w + h • w) -
      h ^ 2 • ↑(↑f'' v) w =
    f (x + h • v + h • v + h • w + h • w) - f (x + h • v + h • v + h • w) - h • ↑(f' x) w -
          (h ^ 2 • ↑(↑f'' v) w + h ^ 2 • ↑(↑f'' v) w + h ^ 2 • ↑(↑f'' w) w) -
        (h ^ 2 / 2) • ↑(↑f'' w) w -
      (f (x + h • v + h • w + h • w) - f (x + h • v + h • w) - h • ↑(f' x) w -
          (h ^ 2 • ↑(↑f'' v) w + h ^ 2 • ↑(↑f'' w) w) -
        (h ^ 2 / 2) • ↑(↑f'' w) w)
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
⊢ ↑(↑f'' w) v = ↑(↑f'' v) w
[PROOFSTEP]
have A : (fun h : ℝ => h ^ 2 • (f'' w v - f'' v w)) =o[𝓝[>] 0] fun h => h ^ 2 :=
  by
  convert
    (s_conv.isLittleO_alternate_sum_square hf xs hx h4v h4w).sub
      (s_conv.isLittleO_alternate_sum_square hf xs hx h4w h4v) using
    1
  ext h
  simp only [add_comm, smul_add, smul_sub]
  abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
⊢ (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
[PROOFSTEP]
convert
  (s_conv.isLittleO_alternate_sum_square hf xs hx h4v h4w).sub
    (s_conv.isLittleO_alternate_sum_square hf xs hx h4w h4v) using
  1
[GOAL]
case h.e'_7
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
⊢ (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) = fun x_1 =>
    f (x + x_1 • (2 • v + 2 • w)) + f (x + x_1 • (v + w)) - f (x + x_1 • (2 • v + w)) - f (x + x_1 • (v + 2 • w)) -
        x_1 ^ 2 • ↑(↑f'' v) w -
      (f (x + x_1 • (2 • w + 2 • v)) + f (x + x_1 • (w + v)) - f (x + x_1 • (2 • w + v)) - f (x + x_1 • (w + 2 • v)) -
        x_1 ^ 2 • ↑(↑f'' w) v)
[PROOFSTEP]
ext h
[GOAL]
case h.e'_7.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
h : ℝ
⊢ h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w) =
    f (x + h • (2 • v + 2 • w)) + f (x + h • (v + w)) - f (x + h • (2 • v + w)) - f (x + h • (v + 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w -
      (f (x + h • (2 • w + 2 • v)) + f (x + h • (w + v)) - f (x + h • (2 • w + v)) - f (x + h • (w + 2 • v)) -
        h ^ 2 • ↑(↑f'' w) v)
[PROOFSTEP]
simp only [add_comm, smul_add, smul_sub]
[GOAL]
case h.e'_7.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
h : ℝ
⊢ h ^ 2 • ↑(↑f'' w) v - h ^ 2 • ↑(↑f'' v) w =
    f (x + (h • v + h • w)) + f (x + (h • 2 • v + h • 2 • w)) - f (x + (h • w + h • 2 • v)) -
          f (x + (h • v + h • 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w -
      (f (x + (h • v + h • w)) + f (x + (h • 2 • v + h • 2 • w)) - f (x + (h • v + h • 2 • w)) -
          f (x + (h • w + h • 2 • v)) -
        h ^ 2 • ↑(↑f'' w) v)
[PROOFSTEP]
abel
[GOAL]
case h.e'_7.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
h : ℝ
⊢ h ^ 2 • ↑(↑f'' w) v - h ^ 2 • ↑(↑f'' v) w =
    f (x + (h • v + h • w)) + f (x + (h • 2 • v + h • 2 • w)) - f (x + (h • w + h • 2 • v)) -
          f (x + (h • v + h • 2 • w)) -
        h ^ 2 • ↑(↑f'' v) w -
      (f (x + (h • v + h • w)) + f (x + (h • 2 • v + h • 2 • w)) - f (x + (h • v + h • 2 • w)) -
          f (x + (h • w + h • 2 • v)) -
        h ^ 2 • ↑(↑f'' w) v)
[PROOFSTEP]
abel
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
⊢ ↑(↑f'' w) v = ↑(↑f'' v) w
[PROOFSTEP]
have B : (fun _ : ℝ => f'' w v - f'' v w) =o[𝓝[>] 0] fun _ => (1 : ℝ) :=
  by
  have : (fun h : ℝ => 1 / h ^ 2) =O[𝓝[>] 0] fun h => 1 / h ^ 2 := isBigO_refl _ _
  have C := this.smul_isLittleO A
  apply C.congr' _ _
  · filter_upwards [self_mem_nhdsWithin]
    intro h (hpos : 0 < h)
    rw [← one_smul ℝ (f'' w v - f'' v w), smul_smul, smul_smul]
    congr 1
    field_simp [LT.lt.ne' hpos]
  · filter_upwards [self_mem_nhdsWithin] with h (hpos : 0 < h)
    field_simp [LT.lt.ne' hpos, SMul.smul]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
⊢ (fun x => ↑(↑f'' w) v - ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0] fun x => 1
[PROOFSTEP]
have : (fun h : ℝ => 1 / h ^ 2) =O[𝓝[>] 0] fun h => 1 / h ^ 2 := isBigO_refl _ _
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
⊢ (fun x => ↑(↑f'' w) v - ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0] fun x => 1
[PROOFSTEP]
have C := this.smul_isLittleO A
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
⊢ (fun x => ↑(↑f'' w) v - ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0] fun x => 1
[PROOFSTEP]
apply C.congr' _ _
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
⊢ (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =ᶠ[𝓝[Ioi 0] 0] fun x => ↑(↑f'' w) v - ↑(↑f'' v) w
[PROOFSTEP]
filter_upwards [self_mem_nhdsWithin]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
⊢ ∀ (a : ℝ), a ∈ Ioi 0 → (1 / a ^ 2) • a ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w) = ↑(↑f'' w) v - ↑(↑f'' v) w
[PROOFSTEP]
intro h (hpos : 0 < h)
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
h : ℝ
hpos : 0 < h
⊢ (1 / h ^ 2) • h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w) = ↑(↑f'' w) v - ↑(↑f'' v) w
[PROOFSTEP]
rw [← one_smul ℝ (f'' w v - f'' v w), smul_smul, smul_smul]
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
h : ℝ
hpos : 0 < h
⊢ (1 / h ^ 2 * h ^ 2 * 1) • (↑(↑f'' w) v - ↑(↑f'' v) w) = 1 • (↑(↑f'' w) v - ↑(↑f'' v) w)
[PROOFSTEP]
congr 1
[GOAL]
case h.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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
h : ℝ
hpos : 0 < h
⊢ 1 / h ^ 2 * h ^ 2 * 1 = 1
[PROOFSTEP]
field_simp [LT.lt.ne' hpos]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
⊢ (fun x => (1 / x ^ 2) • x ^ 2) =ᶠ[𝓝[Ioi 0] 0] fun x => 1
[PROOFSTEP]
filter_upwards [self_mem_nhdsWithin] with h (hpos : 0 < h)
[GOAL]
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 : HasFDerivWithinAt f' f'' (interior s) x
v w : E
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
this : (fun h => 1 / h ^ 2) =O[𝓝[Ioi 0] 0] fun h => 1 / h ^ 2
C : (fun x => (1 / x ^ 2) • x ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun x => (1 / x ^ 2) • x ^ 2
h : ℝ
hpos : 0 < h
⊢ (1 / h ^ 2) • h ^ 2 = 1
[PROOFSTEP]
field_simp [LT.lt.ne' hpos, SMul.smul]
[GOAL]
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
h4v : x + 4 • v ∈ interior s
h4w : x + 4 • w ∈ interior s
A : (fun h => h ^ 2 • (↑(↑f'' w) v - ↑(↑f'' v) w)) =o[𝓝[Ioi 0] 0] fun h => h ^ 2
B : (fun x => ↑(↑f'' w) v - ↑(↑f'' v) w) =o[𝓝[Ioi 0] 0] fun x => 1
⊢ ↑(↑f'' w) v = ↑(↑f'' v) w
[PROOFSTEP]
simpa only [sub_eq_zero] using isLittleO_const_const_iff.1 B
[GOAL]
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✝
s : Set E
s_conv : Convex ℝ s
hne : Set.Nonempty (interior 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
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
rcases hne with ⟨y, hy⟩
[GOAL]
case 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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
obtain ⟨z, hz⟩ : ∃ z, z = ((1 : ℝ) / 4) • (y - x) := ⟨((1 : ℝ) / 4) • (y - x), rfl⟩
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
have A : ∀ m : E, Filter.Tendsto (fun t : ℝ => x + (4 : ℝ) • (z + t • m)) (𝓝 0) (𝓝 y) :=
  by
  intro m
  have : x + (4 : ℝ) • (z + (0 : ℝ) • m) = y := by simp [hz]
  rw [← this]
  refine' tendsto_const_nhds.add <| tendsto_const_nhds.smul <| tendsto_const_nhds.add _
  exact continuousAt_id.smul continuousAt_const
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
⊢ ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
[PROOFSTEP]
intro m
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
m : E
⊢ Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
[PROOFSTEP]
have : x + (4 : ℝ) • (z + (0 : ℝ) • m) = y := by simp [hz]
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
m : E
⊢ x + 4 • (z + 0 • m) = y
[PROOFSTEP]
simp [hz]
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
m : E
this : x + 4 • (z + 0 • m) = y
⊢ Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
[PROOFSTEP]
rw [← this]
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
m : E
this : x + 4 • (z + 0 • m) = y
⊢ Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 (x + 4 • (z + 0 • m)))
[PROOFSTEP]
refine' tendsto_const_nhds.add <| tendsto_const_nhds.smul <| tendsto_const_nhds.add _
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
m : E
this : x + 4 • (z + 0 • m) = y
⊢ Filter.Tendsto (fun t => t • m) (𝓝 0) (𝓝 (0 • m))
[PROOFSTEP]
exact continuousAt_id.smul continuousAt_const
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
have B : ∀ m : E, ∀ᶠ t in 𝓝[>] (0 : ℝ), x + (4 : ℝ) • (z + t • m) ∈ interior s :=
  by
  intro m
  apply nhdsWithin_le_nhds
  apply A m
  rw [mem_interior_iff_mem_nhds] at hy
  exact interior_mem_nhds.2 hy
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
⊢ ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
[PROOFSTEP]
intro m
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
m : E
⊢ ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
[PROOFSTEP]
apply nhdsWithin_le_nhds
[GOAL]
case 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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
m : E
⊢ {x_1 | (fun t => x + 4 • (z + t • m) ∈ interior s) x_1} ∈ 𝓝 0
[PROOFSTEP]
apply A m
[GOAL]
case a.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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
m : E
⊢ interior s ∈ 𝓝 y
[PROOFSTEP]
rw [mem_interior_iff_mem_nhds] at hy
[GOAL]
case a.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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : s ∈ 𝓝 y
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
m : E
⊢ interior s ∈ 𝓝 y
[PROOFSTEP]
exact interior_mem_nhds.2 hy
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
choose t ts tpos using fun m => ((B m).and self_mem_nhdsWithin).exists
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
have C : ∀ m : E, f'' m z = f'' z m := by
  intro m
  have : f'' (z + t m • m) (z + t 0 • (0 : E)) = f'' (z + t 0 • (0 : E)) (z + t m • m) :=
    s_conv.second_derivative_within_at_symmetric_of_mem_interior hf xs hx (ts 0) (ts m)
  simp only [ContinuousLinearMap.map_add, ContinuousLinearMap.map_smul, add_right_inj, ContinuousLinearMap.add_apply,
    Pi.smul_apply, ContinuousLinearMap.coe_smul', add_zero, ContinuousLinearMap.zero_apply, smul_zero,
    ContinuousLinearMap.map_zero] at this
  exact smul_right_injective F (tpos m).ne' this
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
⊢ ∀ (m : E), ↑(↑f'' m) z = ↑(↑f'' z) m
[PROOFSTEP]
intro m
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
m : E
⊢ ↑(↑f'' m) z = ↑(↑f'' z) m
[PROOFSTEP]
have : f'' (z + t m • m) (z + t 0 • (0 : E)) = f'' (z + t 0 • (0 : E)) (z + t m • m) :=
  s_conv.second_derivative_within_at_symmetric_of_mem_interior hf xs hx (ts 0) (ts m)
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
m : E
this : ↑(↑f'' (z + t m • m)) (z + t 0 • 0) = ↑(↑f'' (z + t 0 • 0)) (z + t m • m)
⊢ ↑(↑f'' m) z = ↑(↑f'' z) m
[PROOFSTEP]
simp only [ContinuousLinearMap.map_add, ContinuousLinearMap.map_smul, add_right_inj, ContinuousLinearMap.add_apply,
  Pi.smul_apply, ContinuousLinearMap.coe_smul', add_zero, ContinuousLinearMap.zero_apply, smul_zero,
  ContinuousLinearMap.map_zero] at this
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
m : E
this : t m • ↑(↑f'' m) z = t m • ↑(↑f'' z) m
⊢ ↑(↑f'' m) z = ↑(↑f'' z) m
[PROOFSTEP]
exact smul_right_injective F (tpos m).ne' this
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
C : ∀ (m : E), ↑(↑f'' m) z = ↑(↑f'' z) m
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
have : f'' (z + t v • v) (z + t w • w) = f'' (z + t w • w) (z + t v • v) :=
  s_conv.second_derivative_within_at_symmetric_of_mem_interior hf xs hx (ts w) (ts v)
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
C : ∀ (m : E), ↑(↑f'' m) z = ↑(↑f'' z) m
this : ↑(↑f'' (z + t v • v)) (z + t w • w) = ↑(↑f'' (z + t w • w)) (z + t v • v)
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
simp only [ContinuousLinearMap.map_add, ContinuousLinearMap.map_smul, smul_add, smul_smul,
  ContinuousLinearMap.add_apply, Pi.smul_apply, ContinuousLinearMap.coe_smul', C] at this
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
C : ∀ (m : E), ↑(↑f'' m) z = ↑(↑f'' z) m
this :
  ↑(↑f'' z) z + t v • ↑(↑f'' z) v + (t w • ↑(↑f'' z) w + (t w * t v) • ↑(↑f'' v) w) =
    ↑(↑f'' z) z + t w • ↑(↑f'' z) w + (t v • ↑(↑f'' z) v + (t v * t w) • ↑(↑f'' w) v)
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
rw [add_assoc, add_assoc, add_right_inj, add_left_comm, add_right_inj, add_right_inj, mul_comm] at this
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s✝) x✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
C : ∀ (m : E), ↑(↑f'' m) z = ↑(↑f'' z) m
this : (t v * t w) • ↑(↑f'' v) w = (t v * t w) • ↑(↑f'' w) v
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
apply smul_right_injective F _ this
[GOAL]
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✝
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 y : E
hy : y ∈ interior s
z : E
hz : z = (1 / 4) • (y - x)
A : ∀ (m : E), Filter.Tendsto (fun t => x + 4 • (z + t • m)) (𝓝 0) (𝓝 y)
B : ∀ (m : E), ∀ᶠ (t : ℝ) in 𝓝[Ioi 0] 0, x + 4 • (z + t • m) ∈ interior s
t : E → ℝ
ts : ∀ (m : E), x + 4 • (z + t m • m) ∈ interior s
tpos : ∀ (m : E), 0 < t m
C : ∀ (m : E), ↑(↑f'' m) z = ↑(↑f'' z) m
this : (t v * t w) • ↑(↑f'' v) w = (t v * t w) • ↑(↑f'' w) v
⊢ t v * t w ≠ 0
[PROOFSTEP]
simp [(tpos v).ne', (tpos w).ne']
[GOAL]
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
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ᶠ (y : E) in 𝓝 x, HasFDerivAt f (f' y) y
hx : HasFDerivAt f' f'' x
v w : E
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
rcases Metric.mem_nhds_iff.1 hf with ⟨ε, εpos, hε⟩
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s) x
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ᶠ (y : E) in 𝓝 x, HasFDerivAt f (f' y) y
hx : HasFDerivAt f' f'' x
v w : E
ε : ℝ
εpos : ε > 0
hε : Metric.ball x ε ⊆ {x | (fun y => HasFDerivAt f (f' y) y) x}
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
have A : (interior (Metric.ball x ε)).Nonempty := by rwa [Metric.isOpen_ball.interior_eq, Metric.nonempty_ball]
[GOAL]
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
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ᶠ (y : E) in 𝓝 x, HasFDerivAt f (f' y) y
hx : HasFDerivAt f' f'' x
v w : E
ε : ℝ
εpos : ε > 0
hε : Metric.ball x ε ⊆ {x | (fun y => HasFDerivAt f (f' y) y) x}
⊢ Set.Nonempty (interior (Metric.ball x ε))
[PROOFSTEP]
rwa [Metric.isOpen_ball.interior_eq, Metric.nonempty_ball]
[GOAL]
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✝ : HasFDerivWithinAt f'✝ f''✝ (interior s) x
f : E → F
f' : E → E →L[ℝ] F
f'' : E →L[ℝ] E →L[ℝ] F
hf : ∀ᶠ (y : E) in 𝓝 x, HasFDerivAt f (f' y) y
hx : HasFDerivAt f' f'' x
v w : E
ε : ℝ
εpos : ε > 0
hε : Metric.ball x ε ⊆ {x | (fun y => HasFDerivAt f (f' y) y) x}
A : Set.Nonempty (interior (Metric.ball x ε))
⊢ ↑(↑f'' v) w = ↑(↑f'' w) v
[PROOFSTEP]
exact
  Convex.second_derivative_within_at_symmetric (convex_ball x ε) A (fun y hy => hε (interior_subset hy))
    (Metric.mem_ball_self εpos) hx.hasFDerivWithinAt v w