Аналіз I, Розділ 10.1: Basic definitions
I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.
Main constructions and results of this section:
-
API for Mathlib's
HasDerivWithinAt,derivWithin, andDifferentiableWithinAt.
Note that the Mathlib conventions differ slightly from that in the text, in that
differentiability is defined even at points that are not limit points of the domain;
derivatives in such cases may not be unique, but derivWithin still selects one such
derivative in such cases (or 0, if no derivative exists).
namespace Chapter10variable (x₀ : ℝ)
Визначення 10.1.1 (Differentiability at a point). For the Mathlib notion HasDerivWithinAt, the
hypothesis that x₀ is a limit point is not needed.
theorem _root_.HasDerivWithinAt.iff (X: Set ℝ) (x₀ : ℝ) (f: ℝ → ℝ)
(L:ℝ) :
HasDerivWithinAt f L X x₀ ↔ (nhdsWithin x₀ (X \ {x₀})).Tendsto (fun x ↦ (f x - f x₀) / (x - x₀))
(nhds L) := X:Set ℝx₀:ℝf:ℝ → ℝL:ℝ⊢ HasDerivWithinAt f L X x₀ ↔ Filter.Tendsto (fun x => (f x - f x₀) / (x - x₀)) (nhdsWithin x₀ (X \ {x₀})) (nhds L)
All goals completed! 🐙theorem _root_.DifferentiableWithinAt.iff (X: Set ℝ) (x₀ : ℝ) (f: ℝ → ℝ) :
DifferentiableWithinAt ℝ f X x₀ ↔ ∃ L, HasDerivWithinAt f L X x₀ := X:Set ℝx₀:ℝf:ℝ → ℝ⊢ DifferentiableWithinAt ℝ f X x₀ ↔ ∃ L, HasDerivWithinAt f L X x₀
X:Set ℝx₀:ℝf:ℝ → ℝ⊢ DifferentiableWithinAt ℝ f X x₀ → ∃ L, HasDerivWithinAt f L X x₀X:Set ℝx₀:ℝf:ℝ → ℝ⊢ (∃ L, HasDerivWithinAt f L X x₀) → DifferentiableWithinAt ℝ f X x₀
X:Set ℝx₀:ℝf:ℝ → ℝ⊢ DifferentiableWithinAt ℝ f X x₀ → ∃ L, HasDerivWithinAt f L X x₀ X:Set ℝx₀:ℝf:ℝ → ℝh:DifferentiableWithinAt ℝ f X x₀⊢ ∃ L, HasDerivWithinAt f L X x₀; X:Set ℝx₀:ℝf:ℝ → ℝh:DifferentiableWithinAt ℝ f X x₀⊢ HasDerivWithinAt f (derivWithin f X x₀) X x₀; All goals completed! 🐙
X:Set ℝx₀:ℝf:ℝ → ℝL:ℝh:HasDerivWithinAt f L X x₀⊢ DifferentiableWithinAt ℝ f X x₀; All goals completed! 🐙theorem _root_.DifferentiableWithinAt.of_hasDeriv {X: Set ℝ} {x₀ : ℝ} {f: ℝ → ℝ} {L:ℝ}
(hL: HasDerivWithinAt f L X x₀) : DifferentiableWithinAt ℝ f X x₀ := X:Set ℝx₀:ℝf:ℝ → ℝL:ℝhL:HasDerivWithinAt f L X x₀⊢ DifferentiableWithinAt ℝ f X x₀
X:Set ℝx₀:ℝf:ℝ → ℝL:ℝhL:HasDerivWithinAt f L X x₀⊢ ∃ L, HasDerivWithinAt f L X x₀; All goals completed! 🐙theorem derivative_unique {X: Set ℝ} {x₀ : ℝ}
(hx₀: ClusterPt x₀ (.principal (X \ {x₀}))) {f: ℝ → ℝ} {L L':ℝ}
(hL: HasDerivWithinAt f L X x₀) (hL': HasDerivWithinAt f L' X x₀) :
L = L' := X:Set ℝx₀:ℝhx₀:ClusterPt x₀ (Filter.principal (X \ {x₀}))f:ℝ → ℝL:ℝL':ℝhL:HasDerivWithinAt f L X x₀hL':HasDerivWithinAt f L' X x₀⊢ L = L'
X:Set ℝx₀:ℝhx₀:ClusterPt x₀ (Filter.principal (X \ {x₀}))f:ℝ → ℝL:ℝL':ℝhL:Filter.Tendsto (fun x => (f x - f x₀) / (x - x₀)) (nhdsWithin x₀ (X \ {x₀})) (nhds L)hL':Filter.Tendsto (fun x => (f x - f x₀) / (x - x₀)) (nhdsWithin x₀ (X \ {x₀})) (nhds L')⊢ L = L'
X:Set ℝx₀:ℝhx₀:(nhds x₀ ⊓ Filter.principal (X \ {x₀})).NeBotf:ℝ → ℝL:ℝL':ℝhL:Filter.Tendsto (fun x => (f x - f x₀) / (x - x₀)) (nhdsWithin x₀ (X \ {x₀})) (nhds L)hL':Filter.Tendsto (fun x => (f x - f x₀) / (x - x₀)) (nhdsWithin x₀ (X \ {x₀})) (nhds L')⊢ L = L'
All goals completed! 🐙theorem derivative_unique' (X: Set ℝ) {x₀ : ℝ}
(hx₀: ClusterPt x₀ (.principal (X \ {x₀}))) {f: ℝ → ℝ} {L :ℝ}
(hL: HasDerivWithinAt f L X x₀)
(hdiff : DifferentiableWithinAt ℝ f X x₀):
L = derivWithin f X x₀ := X:Set ℝx₀:ℝhx₀:ClusterPt x₀ (Filter.principal (X \ {x₀}))f:ℝ → ℝL:ℝhL:HasDerivWithinAt f L X x₀hdiff:DifferentiableWithinAt ℝ f X x₀⊢ L = derivWithin f X x₀
All goals completed! 🐙Приклад 10.1.3
example (x₀:ℝ) : HasDerivWithinAt (fun x ↦ x^2) (2 * x₀) .univ x₀ := x₀✝:ℝx₀:ℝ⊢ HasDerivWithinAt (fun x => x ^ 2) (2 * x₀) Set.univ x₀
All goals completed! 🐙example (x₀:ℝ) : DifferentiableWithinAt ℝ (fun x ↦ x^2) .univ x₀ := x₀✝:ℝx₀:ℝ⊢ DifferentiableWithinAt ℝ (fun x => x ^ 2) Set.univ x₀
All goals completed! 🐙example (x₀:ℝ) : derivWithin (fun x ↦ x^2) .univ x₀ = 2 * x₀ := x₀✝:ℝx₀:ℝ⊢ derivWithin (fun x => x ^ 2) Set.univ x₀ = 2 * x₀
All goals completed! 🐙Ремарка 10.1.4
example (X: Set ℝ) (x₀ : ℝ) {f g: ℝ → ℝ} (hfg: f = g):
DifferentiableWithinAt ℝ f X x₀ ↔ DifferentiableWithinAt ℝ g X x₀ := x₀✝:ℝX:Set ℝx₀:ℝf:ℝ → ℝg:ℝ → ℝhfg:f = g⊢ DifferentiableWithinAt ℝ f X x₀ ↔ DifferentiableWithinAt ℝ g X x₀ All goals completed! 🐙example (X: Set ℝ) (x₀ : ℝ) {f g: ℝ → ℝ} (L:ℝ) (hfg: f = g):
HasDerivWithinAt f L X x₀ ↔ HasDerivWithinAt g L X x₀ := x₀✝:ℝX:Set ℝx₀:ℝf:ℝ → ℝg:ℝ → ℝL:ℝhfg:f = g⊢ HasDerivWithinAt f L X x₀ ↔ HasDerivWithinAt g L X x₀ All goals completed! 🐙example : ∃ (X: Set ℝ) (x₀ :ℝ) (f g: ℝ → ℝ) (L:ℝ) (hfg: f x₀ = g x₀),
HasDerivWithinAt f L X x₀ ∧ ¬ HasDerivWithinAt g L X x₀ := x₀:ℝ⊢ ∃ X x₀ f g L, ∃ (_ : f x₀ = g x₀), HasDerivWithinAt f L X x₀ ∧ ¬HasDerivWithinAt g L X x₀
All goals completed! 🐙
example : (nhdsWithin 0 (.Ioi 0)).Tendsto (fun x ↦ (f_10_1_6 x - f_10_1_6 0) / (x - 0)) (nhds 1) := x₀:ℝ⊢ Filter.Tendsto (fun x => (f_10_1_6 x - f_10_1_6 0) / (x - 0)) (nhdsWithin 0 (Set.Ioi 0)) (nhds 1)
All goals completed! 🐙example : (nhdsWithin 0 (.Iio 0)).Tendsto (fun x ↦ (f_10_1_6 x - f_10_1_6 0) / (x - 0)) (nhds (-1)) := x₀:ℝ⊢ Filter.Tendsto (fun x => (f_10_1_6 x - f_10_1_6 0) / (x - 0)) (nhdsWithin 0 (Set.Iio 0)) (nhds (-1))
All goals completed! 🐙example : ¬ ∃ L, (nhdsWithin 0 (.univ \ {0})).Tendsto (fun x ↦ (f_10_1_6 x - f_10_1_6 0) / (x - 0))
(nhds L) := x₀:ℝ⊢ ¬∃ L, Filter.Tendsto (fun x => (f_10_1_6 x - f_10_1_6 0) / (x - 0)) (nhdsWithin 0 (Set.univ \ {0})) (nhds L) All goals completed! 🐙example : ¬ DifferentiableWithinAt ℝ f_10_1_6 (.univ) 0 := x₀:ℝ⊢ ¬DifferentiableWithinAt ℝ f_10_1_6 Set.univ 0
All goals completed! 🐙example : DifferentiableWithinAt ℝ f_10_1_6 (.Ioi 0) 0 := x₀:ℝ⊢ DifferentiableWithinAt ℝ f_10_1_6 (Set.Ioi 0) 0
All goals completed! 🐙example : derivWithin f_10_1_6 (.Ioi 0) 0 = 1 := x₀:ℝ⊢ derivWithin f_10_1_6 (Set.Ioi 0) 0 = 1
All goals completed! 🐙example : DifferentiableWithinAt ℝ f_10_1_6 (.Iio 0) 0 := x₀:ℝ⊢ DifferentiableWithinAt ℝ f_10_1_6 (Set.Iio 0) 0
All goals completed! 🐙example : derivWithin f_10_1_6 (.Iio 0) 0 = -1 := x₀:ℝ⊢ derivWithin f_10_1_6 (Set.Iio 0) 0 = -1
All goals completed! 🐙Твердження 10.1.7 (Newton's approximation) / Вправа 10.1.2
theorem _root_.HasDerivWithinAt.iff_approx_linear (X: Set ℝ) (x₀ :ℝ) (f: ℝ → ℝ) (L:ℝ) :
HasDerivWithinAt f L X x₀ ↔
∀ ε > 0, ∃ δ > 0, ∀ x ∈ X, |x - x₀| < δ → |f x - f x₀ - L * (x - x₀)| ≤ ε * |x - x₀| := X:Set ℝx₀:ℝf:ℝ → ℝL:ℝ⊢ HasDerivWithinAt f L X x₀ ↔ ∀ ε > 0, ∃ δ > 0, ∀ x ∈ X, |x - x₀| < δ → |f x - f x₀ - L * (x - x₀)| ≤ ε * |x - x₀|
All goals completed! 🐙Твердження 10.1.10 / Вправа 10.1.3
theorem _root_.ContinuousWithinAt.of_differentiableWithinAt {X: Set ℝ} {x₀ : ℝ} {f: ℝ → ℝ}
(h: DifferentiableWithinAt ℝ f X x₀) :
ContinuousWithinAt f X x₀ := X:Set ℝx₀:ℝf:ℝ → ℝh:DifferentiableWithinAt ℝ f X x₀⊢ ContinuousWithinAt f X x₀
All goals completed! 🐙Наслідок 10.1.12
theorem _root_.ContinuousOn.of_differentiableOn {X: Set ℝ} {f: ℝ → ℝ}
(h: DifferentiableOn ℝ f X) :
ContinuousOn f X := X:Set ℝf:ℝ → ℝh:DifferentiableOn ℝ f X⊢ ContinuousOn f X
All goals completed! 🐙Теорема 10.1.13 (a) (Differential calculus) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_const (X: Set ℝ) (x₀ : ℝ) (c:ℝ) :
HasDerivWithinAt (fun x ↦ c) 0 X x₀ := X:Set ℝx₀:ℝc:ℝ⊢ HasDerivWithinAt (fun x => c) 0 X x₀ All goals completed! 🐙Теорема 10.1.13 (b) (Differential calculus) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_id (X: Set ℝ) (x₀ : ℝ) :
HasDerivWithinAt (fun x ↦ x) 1 X x₀ := X:Set ℝx₀:ℝ⊢ HasDerivWithinAt (fun x => x) 1 X x₀ All goals completed! 🐙Теорема 10.1.13 (c) (Sum rule) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_add {X: Set ℝ} {x₀ f'x₀ g'x₀: ℝ}
{f g: ℝ → ℝ} (hf: HasDerivWithinAt f f'x₀ X x₀) (hg: HasDerivWithinAt g g'x₀ X x₀) :
HasDerivWithinAt (f + g) (f'x₀ + g'x₀) X x₀ := X:Set ℝx₀:ℝf'x₀:ℝg'x₀:ℝf:ℝ → ℝg:ℝ → ℝhf:HasDerivWithinAt f f'x₀ X x₀hg:HasDerivWithinAt g g'x₀ X x₀⊢ HasDerivWithinAt (f + g) (f'x₀ + g'x₀) X x₀
All goals completed! 🐙Теорема 10.1.13 (d) (Product rule) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_mul {X: Set ℝ} {x₀ f'x₀ g'x₀: ℝ}
{f g: ℝ → ℝ} (hf: HasDerivWithinAt f f'x₀ X x₀) (hg: HasDerivWithinAt g g'x₀ X x₀) :
HasDerivWithinAt (f * g) (f'x₀ * (g x₀) + (f x₀) * g'x₀) X x₀ := X:Set ℝx₀:ℝf'x₀:ℝg'x₀:ℝf:ℝ → ℝg:ℝ → ℝhf:HasDerivWithinAt f f'x₀ X x₀hg:HasDerivWithinAt g g'x₀ X x₀⊢ HasDerivWithinAt (f * g) (f'x₀ * g x₀ + f x₀ * g'x₀) X x₀
All goals completed! 🐙Теорема 10.1.13 (e) (Differential calculus) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_smul {X: Set ℝ} {x₀ f'x₀: ℝ} (c:ℝ)
{f: ℝ → ℝ} (hf: HasDerivWithinAt f f'x₀ X x₀) :
HasDerivWithinAt (c • f) (c * f'x₀) X x₀ := X:Set ℝx₀:ℝf'x₀:ℝc:ℝf:ℝ → ℝhf:HasDerivWithinAt f f'x₀ X x₀⊢ HasDerivWithinAt (c • f) (c * f'x₀) X x₀
All goals completed! 🐙Теорема 10.1.13 (f) (Difference rule) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_sub {X: Set ℝ} {x₀ f'x₀ g'x₀: ℝ}
{f g: ℝ → ℝ} (hf: HasDerivWithinAt f f'x₀ X x₀) (hg: HasDerivWithinAt g g'x₀ X x₀) :
HasDerivWithinAt (f - g) (f'x₀ - g'x₀) X x₀ := X:Set ℝx₀:ℝf'x₀:ℝg'x₀:ℝf:ℝ → ℝg:ℝ → ℝhf:HasDerivWithinAt f f'x₀ X x₀hg:HasDerivWithinAt g g'x₀ X x₀⊢ HasDerivWithinAt (f - g) (f'x₀ - g'x₀) X x₀
All goals completed! 🐙Теорема 10.1.13 (g) (Differential calculus) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_inv {X: Set ℝ} {x₀ g'x₀: ℝ}
{g: ℝ → ℝ} (hgx₀ : g x₀ ≠ 0) (hg: HasDerivWithinAt g g'x₀ X x₀) :
HasDerivWithinAt (1/g) (-g'x₀ / (g x₀)^2) X x₀ := X:Set ℝx₀:ℝg'x₀:ℝg:ℝ → ℝhgx₀:g x₀ ≠ 0hg:HasDerivWithinAt g g'x₀ X x₀⊢ HasDerivWithinAt (1 / g) (-g'x₀ / g x₀ ^ 2) X x₀
All goals completed! 🐙Теорема 10.1.13 (h) (Quotient rule) / Вправа 10.1.4
theorem _root_.HasDerivWithinAt.of_div {X: Set ℝ} {x₀ f'x₀ g'x₀: ℝ}
{f g: ℝ → ℝ} (hgx₀ : g x₀ ≠ 0) (hf: HasDerivWithinAt f f'x₀ X x₀)
(hg: HasDerivWithinAt g g'x₀ X x₀) :
HasDerivWithinAt (f / g) ((f'x₀ * (g x₀) - (f x₀) * g'x₀) / (g x₀)^2) X x₀ := X:Set ℝx₀:ℝf'x₀:ℝg'x₀:ℝf:ℝ → ℝg:ℝ → ℝhgx₀:g x₀ ≠ 0hf:HasDerivWithinAt f f'x₀ X x₀hg:HasDerivWithinAt g g'x₀ X x₀⊢ HasDerivWithinAt (f / g) ((f'x₀ * g x₀ - f x₀ * g'x₀) / g x₀ ^ 2) X x₀
All goals completed! 🐙example (x₀:ℝ) (hx₀: x₀ ≠ 1): HasDerivWithinAt (fun x ↦ (x-2)/(x-1)) (1 /(x₀-1)^2) (.univ \ {1}) x₀ := x₀✝:ℝx₀:ℝhx₀:x₀ ≠ 1⊢ HasDerivWithinAt (fun x => (x - 2) / (x - 1)) (1 / (x₀ - 1) ^ 2) (Set.univ \ {1}) x₀
All goals completed! 🐙Теорема 10.1.15 (Chain rule) / Вправа 10.1.7
theorem _root_.HasDerivWithinAt.of_comp {X Y: Set ℝ} {x₀ y₀ f'x₀ g'y₀: ℝ}
{f g: ℝ → ℝ} (hfx₀: f x₀ = y₀) (hfX : ∀ x ∈ X, f x ∈ Y)
(hf: HasDerivWithinAt f f'x₀ X x₀) (hg: HasDerivWithinAt g g'y₀ Y y₀) :
HasDerivWithinAt (g ∘ f) (g'y₀ * f'x₀) X x₀ := X:Set ℝY:Set ℝx₀:ℝy₀:ℝf'x₀:ℝg'y₀:ℝf:ℝ → ℝg:ℝ → ℝhfx₀:f x₀ = y₀hfX:∀ x ∈ X, f x ∈ Yhf:HasDerivWithinAt f f'x₀ X x₀hg:HasDerivWithinAt g g'y₀ Y y₀⊢ HasDerivWithinAt (g ∘ f) (g'y₀ * f'x₀) X x₀
All goals completed! 🐙Вправа 10.1.5
theorem _root_.HasDerivWithinAt.of_pow (n:ℕ) (x₀:ℝ) : HasDerivWithinAt (fun x ↦ x^n)
(n * x₀^((n:ℤ)-1)) .univ x₀ := n:ℕx₀:ℝ⊢ HasDerivWithinAt (fun x => x ^ n) (↑n * x₀ ^ (↑n - 1)) Set.univ x₀
All goals completed! 🐙Вправа 10.1.6
theorem _root_.HasDerivWithinAt.of_zpow (n:ℤ) (x₀:ℝ) (hx₀: x₀ ≠ 0) :
HasDerivWithinAt (fun x ↦ x^n) (n * x₀^(n-1)) (.univ \ {0}) x₀ := n:ℤx₀:ℝhx₀:x₀ ≠ 0⊢ HasDerivWithinAt (fun x => x ^ n) (↑n * x₀ ^ (n - 1)) (Set.univ \ {0}) x₀
All goals completed! 🐙end Chapter10