Update holomorphic_primitive2.lean
This commit is contained in:
parent
83f9aa5d72
commit
acb1f34879
|
@ -49,9 +49,6 @@ theorem primitive_fderivAtBasepointZero
|
|||
rw [this]
|
||||
|
||||
obtain ⟨s, h₁s, h₂s⟩ : ∃ s ⊆ f⁻¹' Metric.ball (f 0) (c / (4 : ℝ)), IsOpen s ∧ 0 ∈ s := by
|
||||
have B : Metric.ball (f 0) (c / 4) ∈ nhds (f 0) := by
|
||||
apply Metric.ball_mem_nhds (f 0)
|
||||
linarith
|
||||
apply eventually_nhds_iff.mp
|
||||
apply continuousAt_def.1
|
||||
apply Continuous.continuousAt
|
||||
|
@ -124,74 +121,106 @@ theorem primitive_fderivAtBasepointZero
|
|||
apply h₁s
|
||||
exact h₂ε.1 hy
|
||||
|
||||
have t₀ {r : ℝ} (hr : r ∈ Metric.ball 0 ε) : IntervalIntegrable (fun x => f { re := x, im := 0 }) MeasureTheory.volume 0 r := by
|
||||
apply ContinuousOn.intervalIntegrable
|
||||
apply ContinuousOn.comp
|
||||
exact hf
|
||||
have : (fun x => ({ re := x, im := 0 } : ℂ)) = Complex.ofRealLI := by rfl
|
||||
rw [this]
|
||||
apply Continuous.continuousOn
|
||||
continuity
|
||||
intro x hx
|
||||
apply h₂ε.2
|
||||
simp
|
||||
constructor
|
||||
· simp
|
||||
calc |x|
|
||||
_ < ε := by
|
||||
sorry
|
||||
· simpa
|
||||
|
||||
have t₁ {r : ℝ} (hr : r ∈ Metric.ball 0 ε) : IntervalIntegrable (fun _ => f 0) MeasureTheory.volume 0 r := by
|
||||
apply ContinuousOn.intervalIntegrable
|
||||
apply ContinuousOn.comp
|
||||
apply hf
|
||||
fun_prop
|
||||
intro x hx
|
||||
simpa
|
||||
have intervalComputation_uIcc {x' y' : ℝ} (h : x' ∈ Set.uIcc 0 y') : |x'| ≤ |y'| := by
|
||||
let A := h.1
|
||||
let B := h.2
|
||||
rcases le_total 0 y' with hy | hy
|
||||
· simp [hy] at A
|
||||
simp [hy] at B
|
||||
rwa [abs_of_nonneg A, abs_of_nonneg hy]
|
||||
· simp [hy] at A
|
||||
simp [hy] at B
|
||||
rw [abs_of_nonpos hy]
|
||||
rw [abs_of_nonpos]
|
||||
linarith [h.1]
|
||||
exact B
|
||||
|
||||
|
||||
have t₂ {a b : ℝ} : IntervalIntegrable (fun x_1 => f { re := a, im := x_1 }) MeasureTheory.volume 0 b := by
|
||||
apply Continuous.intervalIntegrable
|
||||
apply Continuous.comp hf
|
||||
have : (Complex.mk a) = (fun x => Complex.I • Complex.ofRealCLM x + { re := a, im := 0 }) := by
|
||||
funext x
|
||||
apply Complex.ext
|
||||
rw [Complex.add_re]
|
||||
simp
|
||||
simp
|
||||
rw [this]
|
||||
apply Continuous.add
|
||||
continuity
|
||||
fun_prop
|
||||
|
||||
have t₃ {a : ℝ} : IntervalIntegrable (fun _ => f 0) MeasureTheory.volume 0 a := by
|
||||
apply Continuous.intervalIntegrable
|
||||
apply Continuous.comp
|
||||
exact hf
|
||||
fun_prop
|
||||
|
||||
have {A B C D :E} : (A + B) - (C + D) = (A - C) + (B - D) := by
|
||||
abel
|
||||
conv =>
|
||||
left
|
||||
intro x
|
||||
left
|
||||
arg 1
|
||||
rw [this]
|
||||
rw [← smul_sub]
|
||||
|
||||
rw [← intervalIntegral.integral_sub t₀ t₁]
|
||||
rw [← intervalIntegral.integral_sub t₂ t₃]
|
||||
|
||||
rw [Filter.eventually_iff_exists_mem]
|
||||
|
||||
|
||||
use Metric.ball 0 (ε / (4 : ℝ))
|
||||
|
||||
constructor
|
||||
· apply Metric.ball_mem_nhds 0
|
||||
linarith
|
||||
· intro y hy
|
||||
|
||||
have {A B C D :E} : (A + B) - (C + D) = (A - C) + (B - D) := by
|
||||
abel
|
||||
rw [this]
|
||||
rw [← smul_sub]
|
||||
|
||||
|
||||
have t₀ : IntervalIntegrable (fun x => f { re := x, im := 0 }) MeasureTheory.volume 0 y.re := by
|
||||
apply ContinuousOn.intervalIntegrable
|
||||
apply ContinuousOn.comp
|
||||
exact hf
|
||||
have : (fun x => ({ re := x, im := 0 } : ℂ)) = Complex.ofRealLI := by rfl
|
||||
rw [this]
|
||||
apply Continuous.continuousOn
|
||||
continuity
|
||||
intro x hx
|
||||
apply h₂ε.2
|
||||
simp
|
||||
constructor
|
||||
· simp
|
||||
calc |x|
|
||||
_ ≤ |y.re| := by apply intervalComputation_uIcc hx
|
||||
_ ≤ Complex.abs y := by exact Complex.abs_re_le_abs y
|
||||
_ < ε / 4 := by simp at hy; assumption
|
||||
_ < ε := by linarith
|
||||
· simpa
|
||||
have t₁ : IntervalIntegrable (fun _ => f 0) MeasureTheory.volume 0 y.re := by
|
||||
apply ContinuousOn.intervalIntegrable
|
||||
apply ContinuousOn.comp
|
||||
apply hf
|
||||
fun_prop
|
||||
intro x _
|
||||
simpa
|
||||
rw [← intervalIntegral.integral_sub t₀ t₁]
|
||||
|
||||
have t₂ : IntervalIntegrable (fun x_1 => f { re := y.re, im := x_1 }) MeasureTheory.volume 0 y.im := by
|
||||
apply ContinuousOn.intervalIntegrable
|
||||
apply ContinuousOn.comp
|
||||
exact hf
|
||||
have : (Complex.mk y.re) = (fun x => Complex.I • Complex.ofRealCLM x + { re := y.re, im := 0 }) := by
|
||||
funext x
|
||||
apply Complex.ext
|
||||
rw [Complex.add_re]
|
||||
simp
|
||||
simp
|
||||
rw [this]
|
||||
apply ContinuousOn.add
|
||||
apply Continuous.continuousOn
|
||||
continuity
|
||||
fun_prop
|
||||
intro x hx
|
||||
apply h₂ε.2
|
||||
constructor
|
||||
· simp
|
||||
calc |y.re|
|
||||
_ ≤ Complex.abs y := by exact Complex.abs_re_le_abs y
|
||||
_ < ε / 4 := by simp at hy; assumption
|
||||
_ < ε := by linarith
|
||||
· simp
|
||||
calc |x|
|
||||
_ ≤ |y.im| := by apply intervalComputation_uIcc hx
|
||||
_ ≤ Complex.abs y := by exact Complex.abs_im_le_abs y
|
||||
_ < ε / 4 := by simp at hy; assumption
|
||||
_ < ε := by linarith
|
||||
have t₃ : IntervalIntegrable (fun _ => f 0) MeasureTheory.volume 0 y.im := by
|
||||
apply ContinuousOn.intervalIntegrable
|
||||
apply ContinuousOn.comp
|
||||
exact hf
|
||||
fun_prop
|
||||
intro x _
|
||||
apply h₂ε.2
|
||||
simp
|
||||
constructor
|
||||
· simpa
|
||||
· simpa
|
||||
rw [← intervalIntegral.integral_sub t₂ t₃]
|
||||
|
||||
have h₁y : |y.re| < ε / 4 := by
|
||||
calc |y.re|
|
||||
_ ≤ Complex.abs y := by apply Complex.abs_re_le_abs
|
||||
|
|
Loading…
Reference in New Issue