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 differentiable map of manifolds.

theorem UpperHalfPlane.mdifferentiableAt_iff {f : UpperHalfPlane โ†’ โ„‚} {ฯ„ : UpperHalfPlane} :
MDiffAt f ฯ„ โ†” DifferentiableAt โ„‚ (f โˆ˜ โ†‘ofComplex) โ†‘ฯ„

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_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 โ€ข ฯ„)

โ„-linear map from โ„‚ to itself, which we shall show is the real derivative of the GL(2, โ„)-action on โ„.

Instances For

    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 โ†‘ฯ„) โ†‘ฯ„