Documentation

Mathlib.Analysis.Complex.UpperHalfPlane.Manifold

Manifold structure on the upper half plane. #

In this file we define the complex manifold structure on the upper half-plane, and show it is invariant under Moebius transformations. We also calculate the derivative, and give an explicit formula for its Jacobian determinant over ℝ (used in proving that the action preserves a suitable measure).

The inclusion map ℍ → ℂ is a map of C^n manifolds.

The inclusion map ℍ → ℂ is a differentiable map of manifolds.

theorem UpperHalfPlane.mdifferentiableAt_ofComplex {z : ℂ} (hz : 0 < z.im) :
MDiffAt ↑ofComplex z

Each element of GL(2, ℝ)⁺ defines a map of C ^ n manifolds ℍ → ℍ.

theorem UpperHalfPlane.mdifferentiable_num (g : GL (Fin 2) ℝ) :
MDiff fun (τ : UpperHalfPlane) => num g ↑τ
theorem UpperHalfPlane.mdifferentiable_denom (g : GL (Fin 2) ℝ) :
MDiff fun (τ : UpperHalfPlane) => denom g ↑τ
theorem UpperHalfPlane.mdifferentiable_denom_zpow (g : GL (Fin 2) ℝ) (k : ℤ) :
MDiff fun (x : UpperHalfPlane) => denom g ↑x ^ k
theorem UpperHalfPlane.mdifferentiable_inv_denom (g : GL (Fin 2) ℝ) :
MDiff fun (τ : UpperHalfPlane) => (denom g ↑τ)⁻¹
theorem UpperHalfPlane.mdifferentiable_smul {g : GL (Fin 2) ℝ} (hg : 0 < ↑(Matrix.GeneralLinearGroup.det g)) :
MDiff fun (τ : UpperHalfPlane) => g • τ

Each element of GL(2, ℝ)⁺ defines a complex-differentiable map ℍ → ℍ.

theorem UpperHalfPlane.eq_zero_of_frequently {f : UpperHalfPlane → ℂ} (hf : MDiff f) {τ : UpperHalfPlane} (hτ : ∃ᶠ (z : UpperHalfPlane) in nhdsWithin τ {τ}ᶜ, f z = 0) :
f = 0
theorem UpperHalfPlane.mul_eq_zero_iff {f g : UpperHalfPlane → ℂ} (hf : MDiff f) (hg : MDiff g) :
f * g = 0 ↔ f = 0 ∨ g = 0
theorem UpperHalfPlane.prod_eq_zero_iff {ι : Type u_1} {f : ι → UpperHalfPlane → ℂ} {s : Finset ι} (hf : ∀ i ∈ s, MDiff (f i)) :
∏ i ∈ s, f i = 0 ↔ ∃ i ∈ s, f i = 0

Explicit calculations of the derivative of τ ↦ g • τ #

TODO: would it be better to reimplement these using mfderiv together with a trivialization of the tangent space of ℍ, rather than using ofComplex as we currently do? Or would that bring more pain than gain?

theorem UpperHalfPlane.hasStrictDerivAt_smul {g : GL (Fin 2) ℝ} (hg : 0 < (↑g).det) (τ : UpperHalfPlane) :
HasStrictDerivAt (fun (z : ℂ) => ↑(g • ↑ofComplex z)) (↑(↑g).det / denom g ↑τ ^ 2) ↑τ
theorem UpperHalfPlane.deriv_smul {g : GL (Fin 2) ℝ} (hg : 0 < (↑g).det) (τ : UpperHalfPlane) :
deriv (fun (z : ℂ) => ↑(g • ↑ofComplex z)) ↑τ = ↑(↑g).det / denom g ↑τ ^ 2
theorem UpperHalfPlane.deriv_smul_ne_zero {g : GL (Fin 2) ℝ} (hg : 0 < (↑g).det) (τ : UpperHalfPlane) :
deriv (fun (z : ℂ) => ↑(g • ↑ofComplex z)) ↑τ ≠ 0
theorem UpperHalfPlane.analyticAt_smul {g : GL (Fin 2) ℝ} (hg : 0 < (↑g).det) (τ : UpperHalfPlane) :
AnalyticAt ℂ (fun (z : ℂ) => ↑(g • ↑ofComplex z)) ↑τ
theorem UpperHalfPlane.meromorphicOrderAt_comp_smul {f : UpperHalfPlane → ℂ} {τ : UpperHalfPlane} {g : GL (Fin 2) ℝ} (hg : 0 < (↑g).det) :
meromorphicOrderAt (fun (z : ℂ) => f (g • ↑ofComplex z)) ↑τ = meromorphicOrderAt (fun (z : ℂ) => f (↑ofComplex z)) ↑(g • τ)
noncomputable def UpperHalfPlane.smulFDeriv (g : GL (Fin 2) ℝ) (z : ℂ) :

ℝ-linear map from ℂ to itself, which we shall show is the real derivative of the GL(2, ℝ)-action on ℍ.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]

    Determinant of the derivative of g : ℍ → ℍ considered as an ℝ-linear map. This is used in the proof that the action is measure-preserving. Note this formula applies for both orientation- preserving and orientation-reserving isometries.

    theorem UpperHalfPlane.hasStrictFDerivAt_smul (g : GL (Fin 2) ℝ) (τ : UpperHalfPlane) :
    HasStrictFDerivAt (fun (z : ℂ) => ↑(g • ↑ofComplex z)) (smulFDeriv g ↑τ) ↑τ