Update holomorphic.primitive.lean

This commit is contained in:
Stefan Kebekus 2024-06-14 10:53:24 +02:00
parent ce751dff83
commit 0f6c905f60
1 changed files with 24 additions and 88 deletions

View File

@ -4,67 +4,6 @@ import Mathlib.MeasureTheory.Function.LocallyIntegrable
import Nevanlinna.cauchyRiemann
import Nevanlinna.partialDeriv
/-
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace E]
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace F] [CompleteSpace F]
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace G] [CompleteSpace G]
noncomputable def Complex.primitive
(f : → F) : → F :=
fun z ↦ ∫ t : in (0)..1, z • f (t * z)
-/
theorem MeasureTheory.integral2_divergence_prod_of_hasFDerivWithinAt_off_countable₁
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : × → E)
(g : × → E)
(f' : × × →L[] E)
(g' : × × →L[] E)
(a₁ : )
(a₂ : )
(b₁ : )
(b₂ : )
(s : Set ( × ))
(hs : s.Countable)
(Hcf : ContinuousOn f (Set.uIcc a₁ b₁ ×ˢ Set.uIcc a₂ b₂))
(Hcg : ContinuousOn g (Set.uIcc a₁ b₁ ×ˢ Set.uIcc a₂ b₂))
(Hdf : ∀ x ∈ Set.Ioo (min a₁ b₁) (max a₁ b₁) ×ˢ Set.Ioo (min a₂ b₂) (max a₂ b₂) \ s, HasFDerivAt f (f' x) x)
(Hdg : ∀ x ∈ Set.Ioo (min a₁ b₁) (max a₁ b₁) ×ˢ Set.Ioo (min a₂ b₂) (max a₂ b₂) \ s, HasFDerivAt g (g' x) x)
(Hi : MeasureTheory.IntegrableOn (fun (x : × ) => (f' x) (1, 0) + (g' x) (0, 1)) (Set.uIcc a₁ b₁ ×ˢ Set.uIcc a₂ b₂) MeasureTheory.volume) :
∫ (x : ) in a₁..b₁, ∫ (y : ) in a₂..b₂, (f' (x, y)) (1, 0) + (g' (x, y)) (0, 1) = (((∫ (x : ) in a₁..b₁, g (x, b₂)) - ∫ (x : ) in a₁..b₁, g (x, a₂)) + ∫ (y : ) in a₂..b₂, f (b₁, y)) - ∫ (y : ) in a₂..b₂, f (a₁, y) := by
exact
integral2_divergence_prod_of_hasFDerivWithinAt_off_countable f g f' g' a₁ a₂ b₁ b₂ s hs Hcf Hcg
Hdf Hdg Hi
theorem MeasureTheory.integral2_divergence_prod_of_hasFDerivWithinAt_off_countable₂
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(f : × → E)
(g : × → E)
(f' : × × →L[] E)
(g' : × × →L[] E)
(a₁ : )
(a₂ : )
(b₁ : )
(b₂ : )
(Hcf : ContinuousOn f (Set.uIcc a₁ b₁ ×ˢ Set.uIcc a₂ b₂))
(Hcg : ContinuousOn g (Set.uIcc a₁ b₁ ×ˢ Set.uIcc a₂ b₂))
(Hdf : ∀ x ∈ Set.Ioo (min a₁ b₁) (max a₁ b₁) ×ˢ Set.Ioo (min a₂ b₂) (max a₂ b₂), HasFDerivAt f (f' x) x)
(Hdg : ∀ x ∈ Set.Ioo (min a₁ b₁) (max a₁ b₁) ×ˢ Set.Ioo (min a₂ b₂) (max a₂ b₂), HasFDerivAt g (g' x) x)
(Hi : MeasureTheory.IntegrableOn (fun (x : × ) => (f' x) (1, 0) + (g' x) (0, 1)) (Set.uIcc a₁ b₁ ×ˢ Set.uIcc a₂ b₂) MeasureTheory.volume) :
∫ (x : ) in a₁..b₁, ∫ (y : ) in a₂..b₂, (f' (x, y)) (1, 0) + (g' (x, y)) (0, 1) = (((∫ (x : ) in a₁..b₁, g (x, b₂)) - ∫ (x : ) in a₁..b₁, g (x, a₂)) + ∫ (y : ) in a₂..b₂, f (b₁, y)) - ∫ (y : ) in a₂..b₂, f (a₁, y) := by
apply
integral2_divergence_prod_of_hasFDerivWithinAt_off_countable f g f' g' a₁ a₂ b₁ b₂ ∅
exact Set.countable_empty
assumption
assumption
rwa [Set.diff_empty]
rwa [Set.diff_empty]
assumption
theorem MeasureTheory.integral2_divergence₃
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
@ -149,49 +88,46 @@ theorem integral_divergence₄
theorem integral_divergence₅
{E : Type u} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E]
(F : )
(F : E)
(hF : Differentiable F)
(a₁ : )
(a₂ : )
(b₁ : )
(b₂ : ) :
(∫ (x : ) in a₁..b₁, Complex.I • F { re := x, im := b₂ }) +
(∫ (y : ) in a₂..b₂, F { re := b₁, im := y })
=
(∫ (x : ) in a₁..b₁, Complex.I • F { re := x, im := a₂ }) +
(∫ (y : ) in a₂..b₂, F { re := a₁, im := y }) := by
(lowerLeft upperRight : ) :
(∫ (x : ) in lowerLeft.re..upperRight.re, F ⟨x, lowerLeft.im⟩) + Complex.I • ∫ (x : ) in lowerLeft.im..upperRight.im, F ⟨upperRight.re, x⟩ =
(∫ (x : ) in lowerLeft.re..upperRight.re, F ⟨x, upperRight.im⟩) + Complex.I • ∫ (x : ) in lowerLeft.im..upperRight.im, F ⟨lowerLeft.re, x⟩ := by
let h₁f : ContDiff 1 F := (hF.contDiff : ContDiff 1 F).restrict_scalars
let g := Complex.I • F
let h₁g : ContDiff 1 (Complex.I • F) := by
have : Complex.I • F = fun x ↦ Complex.I • F x := by rfl
let h₁g : ContDiff 1 (-Complex.I • F) := by
have : -Complex.I • F = fun x ↦ -Complex.I • F x := by rfl
rw [this]
apply ContDiff.comp
exact contDiff_const_smul Complex.I
exact contDiff_const_smul _
exact h₁f
let A := integral_divergence₄ (-Complex.I • F) F h₁g h₁f lowerLeft.re upperRight.im upperRight.re lowerLeft.im
let A := integral_divergence₄ F g h₁f h₁g a₁ a₂ b₁ b₂
have {z : } : fderiv F z 1 = partialDeriv 1 F z := by rfl
conv at A in (fderiv F _) 1 => rw [this]
have {z : } : fderiv g z Complex.I = partialDeriv Complex.I g z := by rfl
conv at A in (fderiv g _) Complex.I => rw [this]
have : Differentiable g := by sorry
have {z : } : fderiv F z Complex.I = partialDeriv _ F z := by rfl
conv at A in (fderiv F _) _ => rw [this]
have {z : } : fderiv (-Complex.I • F) z 1 = partialDeriv _ (-Complex.I • F) z := by rfl
conv at A in (fderiv (-Complex.I • F) _) _ => rw [this]
conv at A =>
left
arg 1
intro x
arg 1
intro y
rw [CauchyRiemann₄ this]
rw [CauchyRiemann₄ hF]
rw [partialDeriv_smul'₂]
rw [← smul_assoc]
simp
simp at A
sorry
have {t₁ t₂ t₃ t₄ : E} : 0 = (t₁ - t₂) + t₃ + t₄ → t₁ + t₃ = t₂ - t₄ := by
intro hyp
calc
t₁ + t₃ = t₁ + t₃ - 0 := by rw [sub_zero (t₁ + t₃)]
_ = t₁ + t₃ - (t₁ - t₂ + t₃ + t₄) := by rw [hyp]
_ = t₂ - t₄ := by abel
let B := this A
repeat
rw [intervalIntegral.integral_symm lowerLeft.im upperRight.im] at B
simp at B
exact B