This commit is contained in:
Stefan Kebekus 2024-08-05 13:41:41 +02:00
parent 6759baea2f
commit c041cff4ad
1 changed files with 44 additions and 34 deletions

View File

@ -21,7 +21,7 @@ theorem primitive_zeroAtBasepoint
theorem primitive_fderivAtBasepointZero
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : → E)
(hf : Continuous f) :
(hf : ContinuousAt f 0) :
HasDerivAt (primitive 0 f) (f 0) 0 := by
unfold primitive
simp
@ -253,8 +253,8 @@ theorem primitive_translation
theorem primitive_hasDerivAtBasepoint
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
{f : → E}
(hf : Continuous f)
(z₀ : ) :
(z₀ : )
(hf : ContinuousAt f z₀) :
HasDerivAt (primitive z₀ f) (f z₀) z₀ := by
let g := f ∘ fun z ↦ z + z₀
@ -545,7 +545,7 @@ theorem primitive_additivity'
(z₁ : )
(hz₁ : z₁ ∈ (Metric.ball z₀ R))
:
∃ ε : , ∀ z ∈ (Metric.ball z₁ ε), (primitive z₀ f z) - (primitive z₁ f z) - (primitive z₀ f z₁) = 0 := by
primitive z₀ f =ᶠ[nhds z₁] fun z ↦ (primitive z₁ f z) + (primitive z₀ f z₁) := by
sorry
@ -559,66 +559,76 @@ theorem primitive_hasDerivAt
HasDerivAt (primitive z₀ f) (f z) z := by
let A := primitive_additivity' f z₀ R hf z hz
rw [primitive_additivity' f hf z₀ z]
rw [Filter.EventuallyEq.hasDerivAt_iff A]
rw [← add_zero (f z)]
apply HasDerivAt.add
apply primitive_hasDerivAtBasepoint
exact hf.continuous
apply hf.continuousOn.continuousAt
apply (IsOpen.mem_nhds_iff Metric.isOpen_ball).2 hz
apply hasDerivAt_const
theorem primitive_differentiable
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
{f : → E}
(hf : Differentiable f)
(z₀ : ) :
Differentiable (primitive z₀ f) := by
intro z
exact (primitive_hasDerivAt hf z₀ z).differentiableAt
(z₀ : )
(R : )
(hf : DifferentiableOn f (Metric.ball z₀ R))
:
DifferentiableOn (primitive z₀ f) (Metric.ball z₀ R) := by
intro z hz
apply DifferentiableAt.differentiableWithinAt
exact (primitive_hasDerivAt f z₀ z R hf hz).differentiableAt
theorem primitive_hasFderivAt
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
{f : → E}
(hf : Differentiable f)
(z₀ : ) :
∀ z, HasFDerivAt (primitive z₀ f) ((ContinuousLinearMap.lsmul ).flip (f z)) z := by
intro z
(z₀ : )
(R : )
(hf : DifferentiableOn f (Metric.ball z₀ R))
:
∀ z ∈ Metric.ball z₀ R, HasFDerivAt (primitive z₀ f) ((ContinuousLinearMap.lsmul ).flip (f z)) z := by
intro z hz
rw [hasFDerivAt_iff_hasDerivAt]
simp
exact primitive_hasDerivAt hf z₀ z
apply primitive_hasDerivAt f z₀ z R hf hz
theorem primitive_hasFderivAt'
{f : }
(hf : Differentiable f)
(z₀ : ) :
∀ z, HasFDerivAt (primitive z₀ f) (ContinuousLinearMap.lsmul (f z)) z := by
intro z
(z₀ : )
(R : )
(hf : DifferentiableOn f (Metric.ball z₀ R))
:
∀ z ∈ Metric.ball z₀ R, HasFDerivAt (primitive z₀ f) (ContinuousLinearMap.lsmul (f z)) z := by
intro z hz
rw [hasFDerivAt_iff_hasDerivAt]
simp
exact primitive_hasDerivAt hf z₀ z
exact primitive_hasDerivAt f z₀ z R hf hz
theorem primitive_fderiv
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
{f : → E}
(hf : Differentiable f)
(z₀ : ) :
∀ z, (fderiv (primitive z₀ f) z) = (ContinuousLinearMap.lsmul ).flip (f z) := by
intro z
(z₀ : )
(R : )
(hf : DifferentiableOn f (Metric.ball z₀ R))
:
∀ z ∈ Metric.ball z₀ R, (fderiv (primitive z₀ f) z) = (ContinuousLinearMap.lsmul ).flip (f z) := by
intro z hz
apply HasFDerivAt.fderiv
exact primitive_hasFderivAt hf z₀ z
exact primitive_hasFderivAt z₀ R hf z hz
theorem primitive_fderiv'
{f : }
(hf : Differentiable f)
(z₀ : ) :
∀ z, (fderiv (primitive z₀ f) z) = ContinuousLinearMap.lsmul (f z) := by
intro z
(z₀ : )
(R : )
(hf : DifferentiableOn f (Metric.ball z₀ R))
:
∀ z ∈ Metric.ball z₀ R, (fderiv (primitive z₀ f) z) = ContinuousLinearMap.lsmul (f z) := by
intro z hz
apply HasFDerivAt.fderiv
exact primitive_hasFderivAt' hf z₀ z
exact primitive_hasFderivAt' z₀ R hf z hz