Аналіз I, Розділ 10.1: Базові визначення
Я (прим. перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним підходом Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підправити", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
-
API для
HasDerivWithinAt,derivWithinіDifferentiableWithinAtз Mathlib.
Зауважте, що конвенції Mathlib дещо відрізняються від тих, що в тексті: диференційовність
визначена навіть у точках, які не є точками границі домену; похідні у таких випадках
можуть бути неунікальними, але derivWithin все одно вибирає одну з них (або 0, якщо похідної не існує).
namespace Chapter10variable (x₀ : ℝ)
Визначення 10.1.1 (Диференційовність у точці). Для поняття HasDerivWithinAt з Mathlib
гіпотеза про те, що x₀ є граничною точкою, не потрібна.
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 (Ньютонівське наближення) / Вправа 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) (Диференціальне числення) / Вправа 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) (Диференціальне числення) / Вправа 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) (Правило суми) / Вправа 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) (Правило добутку) / Вправа 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) (Диференціальне числення) / Вправа 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) (Правило різниці) / Вправа 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) (Диференціальне числення) / Вправа 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) (Правило частки) / Вправа 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 (Правило складання) / Вправа 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