File: Mathlib/Analysis/Calculus/LineDeriv/Basic.lean

full_name: HasLineDerivWithinAt
code: /-- `f` has the derivative `f'` at the point `x` along the direction `v` in the set `s`.
That is, `f (x + t v) = f x + t • f' + o (t)` when `t` tends to `0` and `x + t v ∈ s`.
Note that this definition is less well behaved than the total Fréchet derivative, which
should generally be favored over this one. -/
def HasLineDerivWithinAt (f : E → F) (f' : F) (s : Set E) (x : E) (v : E) 
goal: Prop

full_name: HasLineDerivAt
code: /-- `f` has the derivative `f'` at the point `x` along the direction `v`.
That is, `f (x + t v) = f x + t • f' + o (t)` when `t` tends to `0`.
Note that this definition is less well behaved than the total Fréchet derivative, which
should generally be favored over this one. -/
def HasLineDerivAt (f : E → F) (f' : F) (x : E) (v : E) 
goal: Prop

full_name: LineDifferentiableWithinAt
code: /-- `f` is line-differentiable at the point `x` in the direction `v` in the set `s` if there
exists `f'` such that `f (x + t v) = f x + t • f' + o (t)` when `t` tends to `0` and `x + t v ∈ s`.
-/
def LineDifferentiableWithinAt (f : E → F) (s : Set E) (x : E) (v : E) : Prop 
goal: Prop

full_name: LineDifferentiableAt
code: /-- `f` is line-differentiable at the point `x` in the direction `v` if there
exists `f'` such that `f (x + t v) = f x + t • f' + o (t)` when `t` tends to `0`. -/
def LineDifferentiableAt (f : E → F) (x : E) (v : E) : Prop 
goal: Prop

full_name: lineDerivWithin
code: /-- Line derivative of `f` at the point `x` in the direction `v` within the set `s`, if it exists.
Zero otherwise.

If the line derivative exists (i.e., `∃ f', HasLineDerivWithinAt 𝕜 f f' s x v`), then
`f (x + t v) = f x + t lineDerivWithin 𝕜 f s x v + o (t)` when `t` tends to `0` and `x + t v ∈ s`.
-/
def lineDerivWithin (f : E → F) (s : Set E) (x : E) (v : E) : F 
goal: F

full_name: lineDeriv
code: /-- Line derivative of `f` at the point `x` in the direction `v`, if it exists.  Zero otherwise.

If the line derivative exists (i.e., `∃ f', HasLineDerivAt 𝕜 f f' x v`), then
`f (x + t v) = f x + t lineDeriv 𝕜 f x v + o (t)` when `t` tends to `0`.
-/
def lineDeriv (f : E → F) (x : E) (v : E) : F 
goal: F

full_name: HasLineDerivWithinAt.mono
code: lemma HasLineDerivWithinAt.mono (hf : HasLineDerivWithinAt 𝕜 f f' s x v) (hst : t ⊆ s) :
    HasLineDerivWithinAt 𝕜 f f' t x v 
goal: HasLineDerivWithinAt 𝕜 f f' t x v

full_name: HasLineDerivAt.hasLineDerivWithinAt
code: lemma HasLineDerivAt.hasLineDerivWithinAt (hf : HasLineDerivAt 𝕜 f f' x v) (s : Set E) :
    HasLineDerivWithinAt 𝕜 f f' s x v 
goal: HasLineDerivWithinAt 𝕜 f f' s x v

full_name: HasLineDerivWithinAt.lineDifferentiableWithinAt
code: lemma HasLineDerivWithinAt.lineDifferentiableWithinAt (hf : HasLineDerivWithinAt 𝕜 f f' s x v) :
    LineDifferentiableWithinAt 𝕜 f s x v 
goal: LineDifferentiableWithinAt 𝕜 f s x v

full_name: HasLineDerivAt.lineDifferentiableAt
code: theorem HasLineDerivAt.lineDifferentiableAt (hf : HasLineDerivAt 𝕜 f f' x v) :
    LineDifferentiableAt 𝕜 f x v 
goal: LineDifferentiableAt 𝕜 f x v

full_name: LineDifferentiableWithinAt.hasLineDerivWithinAt
code: theorem LineDifferentiableWithinAt.hasLineDerivWithinAt (h : LineDifferentiableWithinAt 𝕜 f s x v) :
    HasLineDerivWithinAt 𝕜 f (lineDerivWithin 𝕜 f s x v) s x v 
goal: HasLineDerivWithinAt 𝕜 f (lineDerivWithin 𝕜 f s x v) s x v

full_name: LineDifferentiableAt.hasLineDerivAt
code: theorem LineDifferentiableAt.hasLineDerivAt (h : LineDifferentiableAt 𝕜 f x v) :
    HasLineDerivAt 𝕜 f (lineDeriv 𝕜 f x v) x v 
goal: HasLineDerivAt 𝕜 f (lineDeriv 𝕜 f x v) x v

full_name: hasLineDerivWithinAt_univ
code: @[simp] lemma hasLineDerivWithinAt_univ :
    HasLineDerivWithinAt 𝕜 f f' univ x v ↔ HasLineDerivAt 𝕜 f f' x v 
goal: HasLineDerivWithinAt 𝕜 f f' Set.univ x v ↔ HasLineDerivAt 𝕜 f f' x v

full_name: lineDerivWithin_zero_of_not_lineDifferentiableWithinAt
code: theorem lineDerivWithin_zero_of_not_lineDifferentiableWithinAt
    (h : ¬LineDifferentiableWithinAt 𝕜 f s x v) :
    lineDerivWithin 𝕜 f s x v = 0 
goal: lineDerivWithin 𝕜 f s x v = 0

full_name: lineDeriv_zero_of_not_lineDifferentiableAt
code: theorem lineDeriv_zero_of_not_lineDifferentiableAt (h : ¬LineDifferentiableAt 𝕜 f x v) :
    lineDeriv 𝕜 f x v = 0 
goal: lineDeriv 𝕜 f x v = 0

full_name: hasLineDerivAt_iff_isLittleO_nhds_zero
code: theorem hasLineDerivAt_iff_isLittleO_nhds_zero :
    HasLineDerivAt 𝕜 f f' x v ↔
      (fun t : 𝕜 => f (x + t • v) - f x - t • f') =o[𝓝 0] fun t => t 
goal: HasLineDerivAt 𝕜 f f' x v ↔ (fun t => f (x + t • v) - f x - t • f') =o[𝓝 0] fun t => t

full_name: HasLineDerivAt.unique
code: theorem HasLineDerivAt.unique (h₀ : HasLineDerivAt 𝕜 f f₀' x v) (h₁ : HasLineDerivAt 𝕜 f f₁' x v) :
    f₀' = f₁' 
goal: f₀' = f₁'

full_name: HasLineDerivAt.lineDeriv
code: protected theorem HasLineDerivAt.lineDeriv (h : HasLineDerivAt 𝕜 f f' x v) :
    lineDeriv 𝕜 f x v = f' 
goal: lineDeriv 𝕜 f x v = f'

full_name: lineDifferentiableWithinAt_univ
code: theorem lineDifferentiableWithinAt_univ :
    LineDifferentiableWithinAt 𝕜 f univ x v ↔ LineDifferentiableAt 𝕜 f x v 
goal: LineDifferentiableWithinAt 𝕜 f Set.univ x v ↔ LineDifferentiableAt 𝕜 f x v

full_name: LineDifferentiableAt.lineDifferentiableWithinAt
code: theorem LineDifferentiableAt.lineDifferentiableWithinAt (h : LineDifferentiableAt 𝕜 f x v) :
    LineDifferentiableWithinAt 𝕜 f s x v 
goal: LineDifferentiableWithinAt 𝕜 f s x v

full_name: lineDerivWithin_univ
code: @[simp]
theorem lineDerivWithin_univ : lineDerivWithin 𝕜 f univ x v = lineDeriv 𝕜 f x v 
goal: lineDerivWithin 𝕜 f Set.univ x v = lineDeriv 𝕜 f x v

full_name: LineDifferentiableWithinAt.mono
code: theorem LineDifferentiableWithinAt.mono (h : LineDifferentiableWithinAt 𝕜 f t x v) (st : s ⊆ t) :
    LineDifferentiableWithinAt 𝕜 f s x v 
goal: LineDifferentiableWithinAt 𝕜 f s x v

full_name: HasLineDerivWithinAt.congr_mono
code: theorem HasLineDerivWithinAt.congr_mono (h : HasLineDerivWithinAt 𝕜 f f' s x v) (ht : EqOn f₁ f t)
    (hx : f₁ x = f x) (h₁ : t ⊆ s) : HasLineDerivWithinAt 𝕜 f₁ f' t x v 
goal: HasLineDerivWithinAt 𝕜 f₁ f' t x v

full_name: HasLineDerivWithinAt.congr
code: theorem HasLineDerivWithinAt.congr (h : HasLineDerivWithinAt 𝕜 f f' s x v) (hs : EqOn f₁ f s)
    (hx : f₁ x = f x) : HasLineDerivWithinAt 𝕜 f₁ f' s x v 
goal: HasLineDerivWithinAt 𝕜 f₁ f' s x v

full_name: HasLineDerivWithinAt.congr'
code: theorem HasLineDerivWithinAt.congr' (h : HasLineDerivWithinAt 𝕜 f f' s x v)
    (hs : EqOn f₁ f s) (hx : x ∈ s) :
    HasLineDerivWithinAt 𝕜 f₁ f' s x v 
goal: HasLineDerivWithinAt 𝕜 f₁ f' s x v

full_name: LineDifferentiableWithinAt.congr_mono
code: theorem LineDifferentiableWithinAt.congr_mono (h : LineDifferentiableWithinAt 𝕜 f s x v)
    (ht : EqOn f₁ f t) (hx : f₁ x = f x) (h₁ : t ⊆ s) :
    LineDifferentiableWithinAt 𝕜 f₁ t x v 
goal: LineDifferentiableWithinAt 𝕜 f₁ t x v

full_name: LineDifferentiableWithinAt.congr
code: theorem LineDifferentiableWithinAt.congr (h : LineDifferentiableWithinAt 𝕜 f s x v)
    (ht : ∀ x ∈ s, f₁ x = f x) (hx : f₁ x = f x) :
    LineDifferentiableWithinAt 𝕜 f₁ s x v 
goal: LineDifferentiableWithinAt 𝕜 f₁ s x v

full_name: lineDerivWithin_congr
code: theorem lineDerivWithin_congr (hs : EqOn f₁ f s) (hx : f₁ x = f x) :
    lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v 
goal: lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v

full_name: lineDerivWithin_congr'
code: theorem lineDerivWithin_congr' (hs : EqOn f₁ f s) (hx : x ∈ s) :
    lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v 
goal: lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v

full_name: hasLineDerivAt_iff_tendsto_slope_zero
code: theorem hasLineDerivAt_iff_tendsto_slope_zero :
    HasLineDerivAt 𝕜 f f' x v ↔
      Tendsto (fun (t : 𝕜) ↦ t⁻¹ • (f (x + t • v) - f x)) (𝓝[≠] 0) (𝓝 f') 
goal: HasLineDerivAt 𝕜 f f' x v ↔ Filter.Tendsto (fun t => t⁻¹ • (f (x + t • v) - f x)) (𝓝[≠] 0) (𝓝 f')

full_name: HasLineDerivAt.tendsto_slope_zero_right
code: theorem HasLineDerivAt.tendsto_slope_zero_right [PartialOrder 𝕜] (h : HasLineDerivAt 𝕜 f f' x v) :
    Tendsto (fun (t : 𝕜) ↦ t⁻¹ • (f (x + t • v) - f x)) (𝓝[>] 0) (𝓝 f') 
goal: Filter.Tendsto (fun t => t⁻¹ • (f (x + t • v) - f x)) (𝓝[>] 0) (𝓝 f')

full_name: HasLineDerivAt.tendsto_slope_zero_left
code: theorem HasLineDerivAt.tendsto_slope_zero_left [PartialOrder 𝕜] (h : HasLineDerivAt 𝕜 f f' x v) :
    Tendsto (fun (t : 𝕜) ↦ t⁻¹ • (f (x + t • v) - f x)) (𝓝[<] 0) (𝓝 f') 
goal: Filter.Tendsto (fun t => t⁻¹ • (f (x + t • v) - f x)) (𝓝[<] 0) (𝓝 f')

full_name: HasLineDerivWithinAt.hasLineDerivAt'
code: theorem HasLineDerivWithinAt.hasLineDerivAt'
    (h : HasLineDerivWithinAt 𝕜 f f' s x v) (hs : ∀ᶠ t : 𝕜 in 𝓝 0, x + t • v ∈ s) :
    HasLineDerivAt 𝕜 f f' x v 
goal: HasLineDerivAt 𝕜 f f' x v

full_name: HasLineDerivWithinAt.mono_of_mem
code: theorem HasLineDerivWithinAt.mono_of_mem
    (h : HasLineDerivWithinAt 𝕜 f f' t x v) (hst : t ∈ 𝓝[s] x) :
    HasLineDerivWithinAt 𝕜 f f' s x v 
goal: HasLineDerivWithinAt 𝕜 f f' s x v

full_name: HasLineDerivWithinAt.hasLineDerivAt
code: theorem HasLineDerivWithinAt.hasLineDerivAt
    (h : HasLineDerivWithinAt 𝕜 f f' s x v) (hs : s ∈ 𝓝 x) :
    HasLineDerivAt 𝕜 f f' x v 
goal: HasLineDerivAt 𝕜 f f' x v

full_name: LineDifferentiableWithinAt.lineDifferentiableAt
code: theorem LineDifferentiableWithinAt.lineDifferentiableAt (h : LineDifferentiableWithinAt 𝕜 f s x v)
    (hs : s ∈ 𝓝 x) : LineDifferentiableAt 𝕜 f x v 
goal: LineDifferentiableAt 𝕜 f x v

full_name: HasFDerivWithinAt.hasLineDerivWithinAt
code: lemma HasFDerivWithinAt.hasLineDerivWithinAt (hf : HasFDerivWithinAt f L s x) (v : E) :
    HasLineDerivWithinAt 𝕜 f (L v) s x v 
goal: HasLineDerivWithinAt 𝕜 f (L v) s x v

full_name: HasFDerivAt.hasLineDerivAt
code: lemma HasFDerivAt.hasLineDerivAt (hf : HasFDerivAt f L x) (v : E) :
    HasLineDerivAt 𝕜 f (L v) x v 
goal: HasLineDerivAt 𝕜 f (L v) x v

full_name: DifferentiableAt.lineDeriv_eq_fderiv
code: lemma DifferentiableAt.lineDeriv_eq_fderiv (hf : DifferentiableAt 𝕜 f x) :
    lineDeriv 𝕜 f x v = fderiv 𝕜 f x v 
goal: lineDeriv 𝕜 f x v = (fderiv 𝕜 f x) v

full_name: LineDifferentiableWithinAt.mono_of_mem
code: theorem LineDifferentiableWithinAt.mono_of_mem (h : LineDifferentiableWithinAt 𝕜 f s x v)
    (hst : s ∈ 𝓝[t] x) : LineDifferentiableWithinAt 𝕜 f t x v 
goal: LineDifferentiableWithinAt 𝕜 f t x v

full_name: lineDerivWithin_of_mem_nhds
code: theorem lineDerivWithin_of_mem_nhds (h : s ∈ 𝓝 x) :
    lineDerivWithin 𝕜 f s x v = lineDeriv 𝕜 f x v 
goal: lineDerivWithin 𝕜 f s x v = lineDeriv 𝕜 f x v

full_name: lineDerivWithin_of_isOpen
code: theorem lineDerivWithin_of_isOpen (hs : IsOpen s) (hx : x ∈ s) :
    lineDerivWithin 𝕜 f s x v = lineDeriv 𝕜 f x v 
goal: lineDerivWithin 𝕜 f s x v = lineDeriv 𝕜 f x v

full_name: hasLineDerivWithinAt_congr_set
code: theorem hasLineDerivWithinAt_congr_set (h : s =ᶠ[𝓝 x] t) :
    HasLineDerivWithinAt 𝕜 f f' s x v ↔ HasLineDerivWithinAt 𝕜 f f' t x v 
goal: HasLineDerivWithinAt 𝕜 f f' s x v ↔ HasLineDerivWithinAt 𝕜 f f' t x v

full_name: lineDifferentiableWithinAt_congr_set
code: theorem lineDifferentiableWithinAt_congr_set (h : s =ᶠ[𝓝 x] t) :
    LineDifferentiableWithinAt 𝕜 f s x v ↔ LineDifferentiableWithinAt 𝕜 f t x v 
goal: LineDifferentiableWithinAt 𝕜 f s x v ↔ LineDifferentiableWithinAt 𝕜 f t x v

full_name: lineDerivWithin_congr_set
code: theorem lineDerivWithin_congr_set (h : s =ᶠ[𝓝 x] t) :
    lineDerivWithin 𝕜 f s x v = lineDerivWithin 𝕜 f t x v 
goal: lineDerivWithin 𝕜 f s x v = lineDerivWithin 𝕜 f t x v

full_name: Filter.EventuallyEq.hasLineDerivAt_iff
code: theorem Filter.EventuallyEq.hasLineDerivAt_iff (h : f₀ =ᶠ[𝓝 x] f₁) :
    HasLineDerivAt 𝕜 f₀ f' x v ↔ HasLineDerivAt 𝕜 f₁ f' x v 
goal: HasLineDerivAt 𝕜 f₀ f' x v ↔ HasLineDerivAt 𝕜 f₁ f' x v

full_name: Filter.EventuallyEq.lineDifferentiableAt_iff
code: theorem Filter.EventuallyEq.lineDifferentiableAt_iff (h : f₀ =ᶠ[𝓝 x] f₁) :
    LineDifferentiableAt 𝕜 f₀ x v ↔ LineDifferentiableAt 𝕜 f₁ x v 
goal: LineDifferentiableAt 𝕜 f₀ x v ↔ LineDifferentiableAt 𝕜 f₁ x v

full_name: Filter.EventuallyEq.hasLineDerivWithinAt_iff
code: theorem Filter.EventuallyEq.hasLineDerivWithinAt_iff (h : f₀ =ᶠ[𝓝[s] x] f₁) (hx : f₀ x = f₁ x) :
    HasLineDerivWithinAt 𝕜 f₀ f' s x v ↔ HasLineDerivWithinAt 𝕜 f₁ f' s x v 
goal: HasLineDerivWithinAt 𝕜 f₀ f' s x v ↔ HasLineDerivWithinAt 𝕜 f₁ f' s x v

full_name: Filter.EventuallyEq.hasLineDerivWithinAt_iff_of_mem
code: theorem Filter.EventuallyEq.hasLineDerivWithinAt_iff_of_mem (h : f₀ =ᶠ[𝓝[s] x] f₁) (hx : x ∈ s) :
    HasLineDerivWithinAt 𝕜 f₀ f' s x v ↔ HasLineDerivWithinAt 𝕜 f₁ f' s x v 
goal: HasLineDerivWithinAt 𝕜 f₀ f' s x v ↔ HasLineDerivWithinAt 𝕜 f₁ f' s x v

full_name: Filter.EventuallyEq.lineDifferentiableWithinAt_iff
code: theorem Filter.EventuallyEq.lineDifferentiableWithinAt_iff
    (h : f₀ =ᶠ[𝓝[s] x] f₁) (hx : f₀ x = f₁ x) :
    LineDifferentiableWithinAt 𝕜 f₀ s x v ↔ LineDifferentiableWithinAt 𝕜 f₁ s x v 
goal: LineDifferentiableWithinAt 𝕜 f₀ s x v ↔ LineDifferentiableWithinAt 𝕜 f₁ s x v

full_name: Filter.EventuallyEq.lineDifferentiableWithinAt_iff_of_mem
code: theorem Filter.EventuallyEq.lineDifferentiableWithinAt_iff_of_mem
    (h : f₀ =ᶠ[𝓝[s] x] f₁) (hx : x ∈ s) :
    LineDifferentiableWithinAt 𝕜 f₀ s x v ↔ LineDifferentiableWithinAt 𝕜 f₁ s x v 
goal: LineDifferentiableWithinAt 𝕜 f₀ s x v ↔ LineDifferentiableWithinAt 𝕜 f₁ s x v

full_name: HasLineDerivWithinAt.congr_of_eventuallyEq
code: lemma HasLineDerivWithinAt.congr_of_eventuallyEq (hf : HasLineDerivWithinAt 𝕜 f f' s x v)
    (h'f : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) : HasLineDerivWithinAt 𝕜 f₁ f' s x v 
goal: HasLineDerivWithinAt 𝕜 f₁ f' s x v

full_name: HasLineDerivAt.congr_of_eventuallyEq
code: theorem HasLineDerivAt.congr_of_eventuallyEq (h : HasLineDerivAt 𝕜 f f' x v) (h₁ : f₁ =ᶠ[𝓝 x] f) :
    HasLineDerivAt 𝕜 f₁ f' x v 
goal: HasLineDerivAt 𝕜 f₁ f' x v

full_name: LineDifferentiableWithinAt.congr_of_eventuallyEq
code: theorem LineDifferentiableWithinAt.congr_of_eventuallyEq (h : LineDifferentiableWithinAt 𝕜 f s x v)
    (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) : LineDifferentiableWithinAt 𝕜 f₁ s x v 
goal: LineDifferentiableWithinAt 𝕜 f₁ s x v

full_name: LineDifferentiableAt.congr_of_eventuallyEq
code: theorem LineDifferentiableAt.congr_of_eventuallyEq
    (h : LineDifferentiableAt 𝕜 f x v) (hL : f₁ =ᶠ[𝓝 x] f) :
    LineDifferentiableAt 𝕜 f₁ x v 
goal: LineDifferentiableAt 𝕜 f₁ x v

full_name: Filter.EventuallyEq.lineDerivWithin_eq
code: theorem Filter.EventuallyEq.lineDerivWithin_eq (hs : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) :
    lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v 
goal: lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v

full_name: Filter.EventuallyEq.lineDerivWithin_eq_nhds
code: theorem Filter.EventuallyEq.lineDerivWithin_eq_nhds (h : f₁ =ᶠ[𝓝 x] f) :
    lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v 
goal: lineDerivWithin 𝕜 f₁ s x v = lineDerivWithin 𝕜 f s x v

full_name: Filter.EventuallyEq.lineDeriv_eq
code: theorem Filter.EventuallyEq.lineDeriv_eq (h : f₁ =ᶠ[𝓝 x] f) :
    lineDeriv 𝕜 f₁ x v = lineDeriv 𝕜 f x v 
goal: lineDeriv 𝕜 f₁ x v = lineDeriv 𝕜 f x v

full_name: HasLineDerivAt.le_of_lip'
code: /-- Converse to the mean value inequality: if `f` is line differentiable at `x₀` and `C`-lipschitz
on a neighborhood of `x₀` then its line derivative at `x₀` in the direction `v` has norm
bounded by `C * ‖v‖`. This version only assumes that `‖f x - f x₀‖ ≤ C * ‖x - x₀‖` in a
neighborhood of `x`. -/
theorem HasLineDerivAt.le_of_lip' {f : E → F} {f' : F} {x₀ : E} (hf : HasLineDerivAt 𝕜 f f' x₀ v)
    {C : ℝ} (hC₀ : 0 ≤ C) (hlip : ∀ᶠ x in 𝓝 x₀, ‖f x - f x₀‖ ≤ C * ‖x - x₀‖) :
    ‖f'‖ ≤ C * ‖v‖ 
goal: ‖f'‖ ≤ C * ‖v‖

full_name: HasLineDerivAt.le_of_lipschitzOn
code: /-- Converse to the mean value inequality: if `f` is line differentiable at `x₀` and `C`-lipschitz
on a neighborhood of `x₀` then its line derivative at `x₀` in the direction `v` has norm
bounded by `C * ‖v‖`. This version only assumes that `‖f x - f x₀‖ ≤ C * ‖x - x₀‖` in a
neighborhood of `x`. -/
theorem HasLineDerivAt.le_of_lipschitzOn
    {f : E → F} {f' : F} {x₀ : E} (hf : HasLineDerivAt 𝕜 f f' x₀ v)
    {s : Set E} (hs : s ∈ 𝓝 x₀) {C : ℝ≥0} (hlip : LipschitzOnWith C f s) :
    ‖f'‖ ≤ C * ‖v‖ 
goal: ‖f'‖ ≤ ↑C * ‖v‖

full_name: HasLineDerivAt.le_of_lipschitz
code: /-- Converse to the mean value inequality: if `f` is line differentiable at `x₀` and `C`-lipschitz
then its line derivative at `x₀` in the direction `v` has norm bounded by `C * ‖v‖`. -/
theorem HasLineDerivAt.le_of_lipschitz
    {f : E → F} {f' : F} {x₀ : E} (hf : HasLineDerivAt 𝕜 f f' x₀ v)
    {C : ℝ≥0} (hlip : LipschitzWith C f) : ‖f'‖ ≤ C * ‖v‖ 
goal: ‖f'‖ ≤ ↑C * ‖v‖

full_name: norm_lineDeriv_le_of_lip'
code: /-- Converse to the mean value inequality: if `f` is `C`-lipschitz
on a neighborhood of `x₀` then its line derivative at `x₀` in the direction `v` has norm
bounded by `C * ‖v‖`. This version only assumes that `‖f x - f x₀‖ ≤ C * ‖x - x₀‖` in a
neighborhood of `x`.
Version using `lineDeriv`. -/
theorem norm_lineDeriv_le_of_lip' {f : E → F} {x₀ : E}
    {C : ℝ} (hC₀ : 0 ≤ C) (hlip : ∀ᶠ x in 𝓝 x₀, ‖f x - f x₀‖ ≤ C * ‖x - x₀‖) :
    ‖lineDeriv 𝕜 f x₀ v‖ ≤ C * ‖v‖ 
goal: ‖lineDeriv 𝕜 f x₀ v‖ ≤ C * ‖v‖

full_name: norm_lineDeriv_le_of_lipschitzOn
code: /-- Converse to the mean value inequality: if `f` is `C`-lipschitz on a neighborhood of `x₀`
then its line derivative at `x₀` in the direction `v` has norm bounded by `C * ‖v‖`.
Version using `lineDeriv`. -/
theorem norm_lineDeriv_le_of_lipschitzOn {f : E → F} {x₀ : E} {s : Set E} (hs : s ∈ 𝓝 x₀)
    {C : ℝ≥0} (hlip : LipschitzOnWith C f s) : ‖lineDeriv 𝕜 f x₀ v‖ ≤ C * ‖v‖ 
goal: ‖lineDeriv 𝕜 f x₀ v‖ ≤ ↑C * ‖v‖

full_name: norm_lineDeriv_le_of_lipschitz
code: /-- Converse to the mean value inequality: if `f` is `C`-lipschitz then
its line derivative at `x₀` in the direction `v` has norm bounded by `C * ‖v‖`.
Version using `lineDeriv`. -/
theorem norm_lineDeriv_le_of_lipschitz {f : E → F} {x₀ : E}
    {C : ℝ≥0} (hlip : LipschitzWith C f) : ‖lineDeriv 𝕜 f x₀ v‖ ≤ C * ‖v‖ 
goal: ‖lineDeriv 𝕜 f x₀ v‖ ≤ ↑C * ‖v‖

full_name: hasLineDerivWithinAt_zero
code: theorem hasLineDerivWithinAt_zero : HasLineDerivWithinAt 𝕜 f 0 s x 0 
goal: HasLineDerivWithinAt 𝕜 f 0 s x 0

full_name: hasLineDerivAt_zero
code: theorem hasLineDerivAt_zero : HasLineDerivAt 𝕜 f 0 x 0 
goal: HasLineDerivAt 𝕜 f 0 x 0

full_name: lineDifferentiableWithinAt_zero
code: theorem lineDifferentiableWithinAt_zero : LineDifferentiableWithinAt 𝕜 f s x 0 
goal: LineDifferentiableWithinAt 𝕜 f s x 0

full_name: lineDifferentiableAt_zero
code: theorem lineDifferentiableAt_zero : LineDifferentiableAt 𝕜 f x 0 
goal: LineDifferentiableAt 𝕜 f x 0

full_name: lineDeriv_zero
code: theorem lineDeriv_zero : lineDeriv 𝕜 f x 0 = 0 
goal: lineDeriv 𝕜 f x 0 = 0

full_name: HasLineDerivAt.of_comp
code: theorem HasLineDerivAt.of_comp {v : E'} (hf : HasLineDerivAt 𝕜 (f ∘ L) f' x v) :
    HasLineDerivAt 𝕜 f f' (L x) (L v) 
goal: HasLineDerivAt 𝕜 f f' (L x) (L v)

full_name: LineDifferentiableAt.of_comp
code: theorem LineDifferentiableAt.of_comp {v : E'} (hf : LineDifferentiableAt 𝕜 (f ∘ L) x v) :
    LineDifferentiableAt 𝕜 f (L x) (L v) 
goal: LineDifferentiableAt 𝕜 f (L x) (L v)

full_name: HasLineDerivWithinAt.smul
code: theorem HasLineDerivWithinAt.smul (h : HasLineDerivWithinAt 𝕜 f f' s x v) (c : 𝕜) :
    HasLineDerivWithinAt 𝕜 f (c • f') s x (c • v) 
goal: HasLineDerivWithinAt 𝕜 f (c • f') s x (c • v)

full_name: hasLineDerivWithinAt_smul_iff
code: theorem hasLineDerivWithinAt_smul_iff {c : 𝕜} (hc : c ≠ 0) :
    HasLineDerivWithinAt 𝕜 f (c • f') s x (c • v) ↔ HasLineDerivWithinAt 𝕜 f f' s x v 
goal: HasLineDerivWithinAt 𝕜 f (c • f') s x (c • v) ↔ HasLineDerivWithinAt 𝕜 f f' s x v

full_name: HasLineDerivAt.smul
code: theorem HasLineDerivAt.smul (h : HasLineDerivAt 𝕜 f f' x v) (c : 𝕜) :
    HasLineDerivAt 𝕜 f (c • f') x (c • v) 
goal: HasLineDerivAt 𝕜 f (c • f') x (c • v)

full_name: hasLineDerivAt_smul_iff
code: theorem hasLineDerivAt_smul_iff {c : 𝕜} (hc : c ≠ 0) :
    HasLineDerivAt 𝕜 f (c • f') x (c • v) ↔ HasLineDerivAt 𝕜 f f' x v 
goal: HasLineDerivAt 𝕜 f (c • f') x (c • v) ↔ HasLineDerivAt 𝕜 f f' x v

full_name: LineDifferentiableWithinAt.smul
code: theorem LineDifferentiableWithinAt.smul (h : LineDifferentiableWithinAt 𝕜 f s x v) (c : 𝕜) :
    LineDifferentiableWithinAt 𝕜 f s x (c • v) 
goal: LineDifferentiableWithinAt 𝕜 f s x (c • v)

full_name: lineDifferentiableWithinAt_smul_iff
code: theorem lineDifferentiableWithinAt_smul_iff {c : 𝕜} (hc : c ≠ 0) :
    LineDifferentiableWithinAt 𝕜 f s x (c • v) ↔ LineDifferentiableWithinAt 𝕜 f s x v 
goal: LineDifferentiableWithinAt 𝕜 f s x (c • v) ↔ LineDifferentiableWithinAt 𝕜 f s x v

full_name: LineDifferentiableAt.smul
code: theorem LineDifferentiableAt.smul (h : LineDifferentiableAt 𝕜 f x v) (c : 𝕜) :
    LineDifferentiableAt 𝕜 f x (c • v) 
goal: LineDifferentiableAt 𝕜 f x (c • v)

full_name: lineDifferentiableAt_smul_iff
code: theorem lineDifferentiableAt_smul_iff {c : 𝕜} (hc : c ≠ 0) :
    LineDifferentiableAt 𝕜 f x (c • v) ↔ LineDifferentiableAt 𝕜 f x v 
goal: LineDifferentiableAt 𝕜 f x (c • v) ↔ LineDifferentiableAt 𝕜 f x v

full_name: lineDeriv_smul
code: theorem lineDeriv_smul {c : 𝕜} : lineDeriv 𝕜 f x (c • v) = c • lineDeriv 𝕜 f x v 
goal: lineDeriv 𝕜 f x (c • v) = c • lineDeriv 𝕜 f x v

full_name: lineDeriv_neg
code: theorem lineDeriv_neg : lineDeriv 𝕜 f x (-v) = - lineDeriv 𝕜 f x v 
goal: lineDeriv 𝕜 f x (-v) = -lineDeriv 𝕜 f x v