Compare commits

...

3 Commits

Author SHA1 Message Date
Stefan Kebekus f4655ef1d3 working… 2024-08-05 14:53:26 +02:00
Stefan Kebekus 4387149e33 working 2024-08-05 14:18:02 +02:00
Stefan Kebekus 854b7ef492 working 2024-08-05 13:47:20 +02:00
1 changed files with 88 additions and 69 deletions

View File

@ -289,61 +289,30 @@ theorem primitive_hasDerivAtBasepoint
exact hasDerivAt_id z₀ exact hasDerivAt_id z₀
lemma integrability₁
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : → E)
(hf : Differentiable f)
(a₁ a₂ b : ) :
IntervalIntegrable (fun x => f { re := x, im := b }) MeasureTheory.volume a₁ a₂ := by
apply Continuous.intervalIntegrable
apply Continuous.comp
exact Differentiable.continuous hf
have : ((fun x => { re := x, im := b }) : ) = (fun x => Complex.ofRealCLM x + { re := 0, im := b }) := by
funext x
apply Complex.ext
rw [Complex.add_re]
simp
rw [Complex.add_im]
simp
rw [this]
continuity
lemma integrability₂
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : → E)
(hf : Differentiable f)
(a₁ a₂ b : ) :
IntervalIntegrable (fun x => f { re := b, im := x }) MeasureTheory.volume a₁ a₂ := by
apply Continuous.intervalIntegrable
apply Continuous.comp
exact Differentiable.continuous hf
have : (Complex.mk b) = (fun x => Complex.I • Complex.ofRealCLM x + { re := b, im := 0 }) := by
funext x
apply Complex.ext
rw [Complex.add_re]
simp
simp
rw [this]
apply Continuous.add
continuity
fun_prop
theorem primitive_additivity theorem primitive_additivity
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : → E) {f : → E}
(z₀ : ) {z₀ : }
(rx ry : ) {rx ry : }
(hry : 0 < ry)
(hf : DifferentiableOn f (Metric.ball z₀.re rx × Metric.ball z₀.im ry)) (hf : DifferentiableOn f (Metric.ball z₀.re rx × Metric.ball z₀.im ry))
(z₁ : ) (hry : 0 < ry)
{z₁ : }
(hz₁ : z₁ ∈ (Metric.ball z₀.re rx × Metric.ball z₀.im ry)) (hz₁ : z₁ ∈ (Metric.ball z₀.re rx × Metric.ball z₀.im ry))
: :
∃ εx εy : , ∀ z ∈ (Metric.ball z₁.re εx × Metric.ball z₁.im εy), (primitive z₀ f z) - (primitive z₁ f z) - (primitive z₀ f z₁) = 0 := by ∃ εx > 0, ∃ εy > 0, ∀ z ∈ (Metric.ball z₁.re εx × Metric.ball z₁.im εy), (primitive z₀ f z) - (primitive z₁ f z) - (primitive z₀ f z₁) = 0 := by
let εx := rx - dist z₀.re z₁.re
have hεx : εx > 0 := by
sorry
let εy := ry - dist z₀.im z₁.im
have hεy : εy > 0 := by
sorry
use εx
use hεx
use εy
use hεy
use rx - dist z₀.re z₁.re
use ry - dist z₀.im z₁.im
intro z hz intro z hz
unfold primitive unfold primitive
@ -538,27 +507,77 @@ theorem primitive_additivity
theorem primitive_additivity' theorem primitive_additivity'
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : → E) {f : → E}
(z₀ : ) {z₀ z₁ : }
(R : ) {R : }
(hf : DifferentiableOn f (Metric.ball z₀ R)) (hf : DifferentiableOn f (Metric.ball z₀ R))
(z₁ : ) (hz₁ : z₁ ∈ Metric.ball z₀ R)
(hz₁ : z₁ ∈ (Metric.ball z₀ R))
: :
primitive z₀ f =ᶠ[nhds z₁] fun z ↦ (primitive z₁ f z) + (primitive z₀ f z₁) := by primitive z₀ f =ᶠ[nhds z₁] fun z ↦ (primitive z₁ f z) + (primitive z₀ f z₁) := by
sorry
let ε := R - dist z₀ z₁
have hε : 0 < ε := by
dsimp [ε]
simp
exact Metric.mem_ball'.mp hz₁
let rx := dist z₀.re z₁.re + ε/(2 : )
let ry := dist z₀.im z₁.im + ε/(2 : )
have h'ry : 0 < ry := by
dsimp [ry]
apply add_pos_of_nonneg_of_pos
exact dist_nonneg
simpa
have h'f : DifferentiableOn f (Metric.ball z₀.re rx × Metric.ball z₀.im ry) := by
apply hf.mono
intro x hx
simp
let A := hx.1
simp at A
let B := hx.2
simp at B
calc dist x z₀
_ = √((x.re - z₀.re) ^ 2 + (x.im - z₀.im) ^ 2) := by exact Complex.dist_eq_re_im x z₀
_ =
sorry
have h'z₁ : z₁ ∈ (Metric.ball z₀.re rx × Metric.ball z₀.im ry) := by
dsimp [rx, ry]
constructor
· rw [dist_comm]; simp; exact hε
· rw [dist_comm]; simp; exact hε
obtain ⟨εx, hεx, εy, hεy, hε⟩ := primitive_additivity h'f h'ry h'z₁
apply Filter.eventuallyEq_iff_exists_mem.2
use (Metric.ball z₁.re εx × Metric.ball z₁.im εy)
constructor
· apply IsOpen.mem_nhds
apply IsOpen.reProdIm
exact Metric.isOpen_ball
exact Metric.isOpen_ball
constructor
· simpa
· simpa
· intro x hx
simp
rw [← sub_zero (primitive z₀ f x), ← hε x hx]
abel
theorem primitive_hasDerivAt theorem primitive_hasDerivAt
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : → E) {f : → E}
(z₀ z : ) {z₀ z : }
(R : ) {R : }
(hf : DifferentiableOn f (Metric.ball z₀ R)) (hf : DifferentiableOn f (Metric.ball z₀ R))
(hz : z ∈ Metric.ball z₀ R) : (hz : z ∈ Metric.ball z₀ R) :
HasDerivAt (primitive z₀ f) (f z) z := by HasDerivAt (primitive z₀ f) (f z) z := by
let A := primitive_additivity' f z₀ R hf z hz let A := primitive_additivity' hf hz
rw [Filter.EventuallyEq.hasDerivAt_iff A] rw [Filter.EventuallyEq.hasDerivAt_iff A]
rw [← add_zero (f z)] rw [← add_zero (f z)]
apply HasDerivAt.add apply HasDerivAt.add
@ -579,7 +598,7 @@ theorem primitive_differentiable
DifferentiableOn (primitive z₀ f) (Metric.ball z₀ R) := by DifferentiableOn (primitive z₀ f) (Metric.ball z₀ R) := by
intro z hz intro z hz
apply DifferentiableAt.differentiableWithinAt apply DifferentiableAt.differentiableWithinAt
exact (primitive_hasDerivAt f z₀ z R hf hz).differentiableAt exact (primitive_hasDerivAt hf hz).differentiableAt
theorem primitive_hasFderivAt theorem primitive_hasFderivAt
@ -593,27 +612,27 @@ theorem primitive_hasFderivAt
intro z hz intro z hz
rw [hasFDerivAt_iff_hasDerivAt] rw [hasFDerivAt_iff_hasDerivAt]
simp simp
apply primitive_hasDerivAt f z₀ z R hf hz apply primitive_hasDerivAt hf hz
theorem primitive_hasFderivAt' theorem primitive_hasFderivAt'
{f : } {f : }
(z₀ : ) {z₀ : }
(R : ) {R : }
(hf : DifferentiableOn f (Metric.ball z₀ R)) (hf : DifferentiableOn f (Metric.ball z₀ R))
: :
∀ z ∈ Metric.ball z₀ R, HasFDerivAt (primitive z₀ f) (ContinuousLinearMap.lsmul (f z)) z := by ∀ z ∈ Metric.ball z₀ R, HasFDerivAt (primitive z₀ f) (ContinuousLinearMap.lsmul (f z)) z := by
intro z hz intro z hz
rw [hasFDerivAt_iff_hasDerivAt] rw [hasFDerivAt_iff_hasDerivAt]
simp simp
exact primitive_hasDerivAt f z₀ z R hf hz exact primitive_hasDerivAt hf hz
theorem primitive_fderiv theorem primitive_fderiv
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] {E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
{f : → E} {f : → E}
(z₀ : ) {z₀ : }
(R : ) {R : }
(hf : DifferentiableOn f (Metric.ball 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 ∀ z ∈ Metric.ball z₀ R, (fderiv (primitive z₀ f) z) = (ContinuousLinearMap.lsmul ).flip (f z) := by
@ -624,11 +643,11 @@ theorem primitive_fderiv
theorem primitive_fderiv' theorem primitive_fderiv'
{f : } {f : }
(z₀ : ) {z₀ : }
(R : ) {R : }
(hf : DifferentiableOn f (Metric.ball z₀ R)) (hf : DifferentiableOn f (Metric.ball z₀ R))
: :
∀ z ∈ Metric.ball z₀ R, (fderiv (primitive z₀ f) z) = ContinuousLinearMap.lsmul (f z) := by ∀ z ∈ Metric.ball z₀ R, (fderiv (primitive z₀ f) z) = ContinuousLinearMap.lsmul (f z) := by
intro z hz intro z hz
apply HasFDerivAt.fderiv apply HasFDerivAt.fderiv
exact primitive_hasFderivAt' z₀ R hf z hz exact primitive_hasFderivAt' hf z hz