Theorem: HasFTaylorSeriesUpToOn.exists_lipschitzOnWith_of_nnnorm_lt
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: set f' := fun y => continuousMultilinearCurryFin1 ℝ E F (p y 1)
state_before: 𝕜 : Type ?u.2904330
inst✝¹⁹ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁸ : NormedAddCommGroup D
inst✝¹⁷ : NormedSpace 𝕜 D
E✝ : Type uE
inst✝¹⁶ : NormedAddCommGroup E✝
inst✝¹⁵ : NormedSpace 𝕜 E✝
F✝ : Type uF
inst✝¹⁴ : NormedAddCommGroup F✝
inst✝¹³ : NormedSpace 𝕜 F✝
G : Type uG
inst✝¹² : NormedAddCommGroup G
inst✝¹¹ : NormedSpace 𝕜 G
X : Type ?u.2904751
inst✝¹⁰ : NormedAddCommGroup X
inst✝⁹ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E✝
f✝ f₁ : E✝ → F✝
g : F✝ → G
x✝ x₀ : E✝
c : F✝
b : E✝ × F✝ → G
m n : ℕ∞
p✝ : E✝ → FormalMultilinearSeries 𝕜 E✝ F✝
𝕂 : Type ?u.2908229
inst✝⁸ : IsROrC 𝕂
E' : Type ?u.2908235
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : NormedSpace 𝕂 E'
F' : Type ?u.2908343
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕂 F'
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : E → F
p : E → FormalMultilinearSeries ℝ E F
s : Set E
x : E
hf : HasFTaylorSeriesUpToOn 1 f p (insert x s)
hs : Convex ℝ s
K : ℝ≥0
hK : ‖p x 1‖₊ < K
⊢ ∃ t, t ∈ 𝓝[s] x ∧ LipschitzOnWith K f t

tactic: have hder : ∀ y ∈ s, HasFDerivWithinAt f (f' y) s y := fun y hy =>
  (hf.hasFDerivWithinAt le_rfl (subset_insert x s hy)).mono (subset_insert x s)
state_before: 𝕜 : Type ?u.2904330
inst✝¹⁹ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁸ : NormedAddCommGroup D
inst✝¹⁷ : NormedSpace 𝕜 D
E✝ : Type uE
inst✝¹⁶ : NormedAddCommGroup E✝
inst✝¹⁵ : NormedSpace 𝕜 E✝
F✝ : Type uF
inst✝¹⁴ : NormedAddCommGroup F✝
inst✝¹³ : NormedSpace 𝕜 F✝
G : Type uG
inst✝¹² : NormedAddCommGroup G
inst✝¹¹ : NormedSpace 𝕜 G
X : Type ?u.2904751
inst✝¹⁰ : NormedAddCommGroup X
inst✝⁹ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E✝
f✝ f₁ : E✝ → F✝
g : F✝ → G
x✝ x₀ : E✝
c : F✝
b : E✝ × F✝ → G
m n : ℕ∞
p✝ : E✝ → FormalMultilinearSeries 𝕜 E✝ F✝
𝕂 : Type ?u.2908229
inst✝⁸ : IsROrC 𝕂
E' : Type ?u.2908235
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : NormedSpace 𝕂 E'
F' : Type ?u.2908343
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕂 F'
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : E → F
p : E → FormalMultilinearSeries ℝ E F
s : Set E
x : E
hf : HasFTaylorSeriesUpToOn 1 f p (insert x s)
hs : Convex ℝ s
K : ℝ≥0
hK : ‖p x 1‖₊ < K
f' : E → E →L[ℝ] F := fun y => ↑(continuousMultilinearCurryFin1 ℝ E F) (p y 1)
⊢ ∃ t, t ∈ 𝓝[s] x ∧ LipschitzOnWith K f t

tactic: have hcont : ContinuousWithinAt f' s x :=
  (continuousMultilinearCurryFin1 ℝ E F).continuousAt.comp_continuousWithinAt
    ((hf.cont _ le_rfl _ (mem_insert _ _)).mono (subset_insert x s))
state_before: 𝕜 : Type ?u.2904330
inst✝¹⁹ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁸ : NormedAddCommGroup D
inst✝¹⁷ : NormedSpace 𝕜 D
E✝ : Type uE
inst✝¹⁶ : NormedAddCommGroup E✝
inst✝¹⁵ : NormedSpace 𝕜 E✝
F✝ : Type uF
inst✝¹⁴ : NormedAddCommGroup F✝
inst✝¹³ : NormedSpace 𝕜 F✝
G : Type uG
inst✝¹² : NormedAddCommGroup G
inst✝¹¹ : NormedSpace 𝕜 G
X : Type ?u.2904751
inst✝¹⁰ : NormedAddCommGroup X
inst✝⁹ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E✝
f✝ f₁ : E✝ → F✝
g : F✝ → G
x✝ x₀ : E✝
c : F✝
b : E✝ × F✝ → G
m n : ℕ∞
p✝ : E✝ → FormalMultilinearSeries 𝕜 E✝ F✝
𝕂 : Type ?u.2908229
inst✝⁸ : IsROrC 𝕂
E' : Type ?u.2908235
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : NormedSpace 𝕂 E'
F' : Type ?u.2908343
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕂 F'
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : E → F
p : E → FormalMultilinearSeries ℝ E F
s : Set E
x : E
hf : HasFTaylorSeriesUpToOn 1 f p (insert x s)
hs : Convex ℝ s
K : ℝ≥0
hK : ‖p x 1‖₊ < K
f' : E → E →L[ℝ] F := fun y => ↑(continuousMultilinearCurryFin1 ℝ E F) (p y 1)
hder : ∀ (y : E), y ∈ s → HasFDerivWithinAt f (f' y) s y
⊢ ∃ t, t ∈ 𝓝[s] x ∧ LipschitzOnWith K f t

tactic: replace hK : ‖f' x‖₊ < K
state_before: 𝕜 : Type ?u.2904330
inst✝¹⁹ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁸ : NormedAddCommGroup D
inst✝¹⁷ : NormedSpace 𝕜 D
E✝ : Type uE
inst✝¹⁶ : NormedAddCommGroup E✝
inst✝¹⁵ : NormedSpace 𝕜 E✝
F✝ : Type uF
inst✝¹⁴ : NormedAddCommGroup F✝
inst✝¹³ : NormedSpace 𝕜 F✝
G : Type uG
inst✝¹² : NormedAddCommGroup G
inst✝¹¹ : NormedSpace 𝕜 G
X : Type ?u.2904751
inst✝¹⁰ : NormedAddCommGroup X
inst✝⁹ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E✝
f✝ f₁ : E✝ → F✝
g : F✝ → G
x✝ x₀ : E✝
c : F✝
b : E✝ × F✝ → G
m n : ℕ∞
p✝ : E✝ → FormalMultilinearSeries 𝕜 E✝ F✝
𝕂 : Type ?u.2908229
inst✝⁸ : IsROrC 𝕂
E' : Type ?u.2908235
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : NormedSpace 𝕂 E'
F' : Type ?u.2908343
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕂 F'
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : E → F
p : E → FormalMultilinearSeries ℝ E F
s : Set E
x : E
hf : HasFTaylorSeriesUpToOn 1 f p (insert x s)
hs : Convex ℝ s
K : ℝ≥0
hK : ‖p x 1‖₊ < K
f' : E → E →L[ℝ] F := fun y => ↑(continuousMultilinearCurryFin1 ℝ E F) (p y 1)
hder : ∀ (y : E), y ∈ s → HasFDerivWithinAt f (f' y) s y
hcont : ContinuousWithinAt f' s x
⊢ ∃ t, t ∈ 𝓝[s] x ∧ LipschitzOnWith K f t

tactic: exact
  hs.exists_nhdsWithin_lipschitzOnWith_of_hasFDerivWithinAt_of_nnnorm_lt
    (eventually_nhdsWithin_iff.2 <| eventually_of_forall hder) hcont K hK
state_before: 𝕜 : Type ?u.2904330
inst✝¹⁹ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁸ : NormedAddCommGroup D
inst✝¹⁷ : NormedSpace 𝕜 D
E✝ : Type uE
inst✝¹⁶ : NormedAddCommGroup E✝
inst✝¹⁵ : NormedSpace 𝕜 E✝
F✝ : Type uF
inst✝¹⁴ : NormedAddCommGroup F✝
inst✝¹³ : NormedSpace 𝕜 F✝
G : Type uG
inst✝¹² : NormedAddCommGroup G
inst✝¹¹ : NormedSpace 𝕜 G
X : Type ?u.2904751
inst✝¹⁰ : NormedAddCommGroup X
inst✝⁹ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E✝
f✝ f₁ : E✝ → F✝
g : F✝ → G
x✝ x₀ : E✝
c : F✝
b : E✝ × F✝ → G
m n : ℕ∞
p✝ : E✝ → FormalMultilinearSeries 𝕜 E✝ F✝
𝕂 : Type ?u.2908229
inst✝⁸ : IsROrC 𝕂
E' : Type ?u.2908235
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : NormedSpace 𝕂 E'
F' : Type ?u.2908343
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕂 F'
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : E → F
p : E → FormalMultilinearSeries ℝ E F
s : Set E
x : E
hf : HasFTaylorSeriesUpToOn 1 f p (insert x s)
hs : Convex ℝ s
K : ℝ≥0
f' : E → E →L[ℝ] F := fun y => ↑(continuousMultilinearCurryFin1 ℝ E F) (p y 1)
hder : ∀ (y : E), y ∈ s → HasFDerivWithinAt f (f' y) s y
hcont : ContinuousWithinAt f' s x
hK : ‖f' x‖₊ < K
⊢ ∃ t, t ∈ 𝓝[s] x ∧ LipschitzOnWith K f t

tactic: simpa only [LinearIsometryEquiv.nnnorm_map]
state_before: case hK
𝕜 : Type ?u.2904330
inst✝¹⁹ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁸ : NormedAddCommGroup D
inst✝¹⁷ : NormedSpace 𝕜 D
E✝ : Type uE
inst✝¹⁶ : NormedAddCommGroup E✝
inst✝¹⁵ : NormedSpace 𝕜 E✝
F✝ : Type uF
inst✝¹⁴ : NormedAddCommGroup F✝
inst✝¹³ : NormedSpace 𝕜 F✝
G : Type uG
inst✝¹² : NormedAddCommGroup G
inst✝¹¹ : NormedSpace 𝕜 G
X : Type ?u.2904751
inst✝¹⁰ : NormedAddCommGroup X
inst✝⁹ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E✝
f✝ f₁ : E✝ → F✝
g : F✝ → G
x✝ x₀ : E✝
c : F✝
b : E✝ × F✝ → G
m n : ℕ∞
p✝ : E✝ → FormalMultilinearSeries 𝕜 E✝ F✝
𝕂 : Type ?u.2908229
inst✝⁸ : IsROrC 𝕂
E' : Type ?u.2908235
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : NormedSpace 𝕂 E'
F' : Type ?u.2908343
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕂 F'
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : E → F
p : E → FormalMultilinearSeries ℝ E F
s : Set E
x : E
hf : HasFTaylorSeriesUpToOn 1 f p (insert x s)
hs : Convex ℝ s
K : ℝ≥0
hK : ‖p x 1‖₊ < K
f' : E → E →L[ℝ] F := fun y => ↑(continuousMultilinearCurryFin1 ℝ E F) (p y 1)
hder : ∀ (y : E), y ∈ s → HasFDerivWithinAt f (f' y) s y
hcont : ContinuousWithinAt f' s x
⊢ ‖f' x‖₊ < K