131 lines
3.4 KiB
Plaintext
131 lines
3.4 KiB
Plaintext
import Mathlib.Analysis.Complex.CauchyIntegral
|
||
--import Mathlib.Analysis.Complex.Module
|
||
-- test
|
||
|
||
open ComplexConjugate
|
||
|
||
#check DiffContOnCl.circleIntegral_sub_inv_smul
|
||
|
||
open Real
|
||
|
||
theorem CauchyIntegralFormula :
|
||
∀
|
||
{R : ℝ} -- Radius of the ball
|
||
{w : ℂ} -- Point in the interior of the ball
|
||
{f : ℂ → ℂ}, -- Holomorphic function
|
||
DiffContOnCl ℂ f (Metric.ball 0 R)
|
||
→ w ∈ Metric.ball 0 R
|
||
→ (∮ (z : ℂ) in C(0, R), (z - w)⁻¹ • f z) = (2 * π * Complex.I) • f w := by
|
||
|
||
exact DiffContOnCl.circleIntegral_sub_inv_smul
|
||
|
||
#check CauchyIntegralFormula
|
||
#check HasDerivAt.continuousAt
|
||
#check Real.log
|
||
#check ComplexConjugate.conj
|
||
#check Complex.exp
|
||
|
||
theorem SimpleCauchyFormula :
|
||
∀
|
||
{R : ℝ} -- Radius of the ball
|
||
{w : ℂ} -- Point in the interior of the ball
|
||
{f : ℂ → ℂ}, -- Holomorphic function
|
||
Differentiable ℂ f
|
||
→ w ∈ Metric.ball 0 R
|
||
→ (∮ (z : ℂ) in C(0, R), (z - w)⁻¹ • f z) = (2 * Real.pi * Complex.I) • f w := by
|
||
|
||
intro R w f fHyp
|
||
|
||
apply DiffContOnCl.circleIntegral_sub_inv_smul
|
||
|
||
constructor
|
||
· exact Differentiable.differentiableOn fHyp
|
||
· suffices Continuous f from by
|
||
exact Continuous.continuousOn this
|
||
rw [continuous_iff_continuousAt]
|
||
intro x
|
||
exact DifferentiableAt.continuousAt (fHyp x)
|
||
|
||
|
||
theorem JensenFormula₂ :
|
||
∀
|
||
{R : ℝ} -- Radius of the ball
|
||
{f : ℂ → ℂ}, -- Holomorphic function
|
||
Differentiable ℂ f
|
||
→ (∀ z ∈ Metric.ball 0 R, f z ≠ 0)
|
||
→ (∫ (θ : ℝ) in Set.Icc 0 (2 * π), Complex.log ‖f (circleMap 0 R θ)‖ ) = 2 * π * Complex.log ‖f 0‖ := by
|
||
|
||
intro r f fHyp₁ fHyp₂
|
||
|
||
/- We treat the trivial case r = 0 separately. -/
|
||
by_cases rHyp : r = 0
|
||
rw [rHyp]
|
||
simp
|
||
left
|
||
unfold ENNReal.ofReal
|
||
simp
|
||
rw [max_eq_left (mul_nonneg zero_le_two pi_nonneg)]
|
||
simp
|
||
/- From hereon, we assume that r ≠ 0. -/
|
||
|
||
/- Replace the integral over 0 … 2π by a circle integral -/
|
||
suffices (∮ (z : ℂ) in C(0, r), -(Complex.I * z⁻¹ * Complex.log ↑(Complex.abs (f z)))) = 2 * ↑π * Complex.log ↑‖f 0‖ from by
|
||
have : ∫ (θ : ℝ) in Set.Icc 0 (2 * π), Complex.log ↑‖f (circleMap 0 r θ)‖ = (∮ (z : ℂ) in C(0, r), -(Complex.I * z⁻¹ * Complex.log ↑(Complex.abs (f z)))) := by
|
||
have : (fun θ ↦ Complex.log ‖f (circleMap 0 r θ)‖) = (fun θ ↦ ((deriv (circleMap 0 r) θ)) • ((deriv (circleMap 0 r) θ)⁻¹ • Complex.log ↑‖f (circleMap 0 r θ)‖)) := by
|
||
funext θ
|
||
rw [← smul_assoc, smul_eq_mul, smul_eq_mul, mul_inv_cancel, one_mul]
|
||
simp
|
||
exact rHyp
|
||
rw [this]
|
||
simp
|
||
let tmp := circleIntegral_def_Icc (fun z ↦ -(Complex.I * z⁻¹ * (Complex.log ↑‖f z‖))) 0 r
|
||
simp at tmp
|
||
rw [← tmp]
|
||
rw [this]
|
||
|
||
|
||
|
||
have : ∀ z : ℂ, log (Complex.abs z) = 1/2 * Complex.log z + 1/2 * Complex.log (conj z) := by
|
||
intro z
|
||
|
||
by_cases argHyp : Complex.arg z = π
|
||
|
||
· rw [Complex.log, argHyp, Complex.log]
|
||
let ZZ := Complex.arg_conj z
|
||
rw [argHyp] at ZZ
|
||
|
||
simp at ZZ
|
||
|
||
have : conj z = z := by
|
||
apply?
|
||
sorry
|
||
|
||
let ZZ := Complex.log_conj z
|
||
|
||
nth_rewrite 1 [Complex.log]
|
||
|
||
simp
|
||
|
||
let φ := Complex.arg z
|
||
let r := Complex.abs z
|
||
have : z = r * Complex.exp (φ * Complex.I) := by
|
||
exact (Complex.abs_mul_exp_arg_mul_I z).symm
|
||
|
||
have : Complex.log z = Complex.log r + r*Complex.I := by
|
||
apply?
|
||
sorry
|
||
simp at XX
|
||
|
||
|
||
sorry
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
sorry
|