Documentation

TauCeti.Geometry.Manifold.Instances.OnePoint.Moebius

MΓΆbius transformations of the projective line are analytic #

Mathlib identifies the projective line OnePoint π•œ with the projectivization β„™ π•œ (Fin 2 β†’ π•œ) (OnePoint.equivProjectivization) and lets GL (Fin 2) π•œ act on it through this identification (OnePoint.instGLAction), by the MΓΆbius transformations z ↦ (a * z + b) / (c * z + d). This file relates that description to the two charts of the analytic manifold OnePoint π•œ, and shows that every MΓΆbius transformation is analytic.

In homogeneous coordinates, the affine chart reads the point [vβ‚€ : v₁] as vβ‚€ / v₁ where v₁ β‰  0, and the inverted chart reads it as v₁ / vβ‚€ where vβ‚€ β‰  0. The inverse of the inverted chart is itself the MΓΆbius transformation of the matrix !![0, 1; 1, 0], restricted to π•œ.

Analyticity is checked on π•œ first: near a point zβ‚€ where c * zβ‚€ + d β‰  0 the transformation is the analytic function (a * z + b) / (c * z + d) followed by the inclusion π•œ β†’ OnePoint π•œ, and near a pole it is (c * z + d) / (a * z + b) followed by the inverse of the inverted chart, the numerator a * zβ‚€ + b being nonzero there because the matrix is invertible. Near ∞, a MΓΆbius transformation precomposed with the inverse of the inverted chart is again a MΓΆbius transformation restricted to π•œ.

Hence GL (Fin 2) π•œ acts on OnePoint π•œ by analytic maps (OnePoint.instContMDiffConstSMul), and so does PSL(2, π•œ), which acts through representatives (OnePoint.instContMDiffConstSMulPSL). For π•œ = β„‚, each MΓΆbius transformation is therefore a biholomorphism of the Riemann sphere, with inverse the transformation of the inverse matrix: this is Diffeomorph.constSmul π“˜(β„‚) Ο‰ g. Restricting scalars, the MΓΆbius transformations are also smooth maps of the underlying real surface, and in the affine coordinate the transformation of !![a, b; c, d] has derivative det / (c * z + d) ^ 2.

Main results #

References #

The charts in homogeneous coordinates #

These lemmas are simp↓ (pre-simp) lemmas: as ordinary simp lemmas they would never fire, since simp first rewrites the inner point with Mathlib's equivProjectivization_symm_apply_mk.

@[simp]
theorem OnePoint.equivProjectivization_symm_mk_mem_affineChart_source_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] {v : Fin 2 β†’ π•œ} (hv : v β‰  0) :

The point [vβ‚€ : v₁] of the projective line lies in the source of the affine chart exactly when v₁ β‰  0.

@[simp]
theorem OnePoint.affineChart_equivProjectivization_symm_mk {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] {v : Fin 2 β†’ π•œ} (hv : v β‰  0) :
↑affineChart ((equivProjectivization π•œ).symm (Projectivization.mk π•œ v hv)) = v 0 / v 1

The affine chart reads the point [vβ‚€ : v₁] of the projective line as vβ‚€ / v₁. Off its source, where v₁ = 0, both sides are 0.

@[simp]
theorem OnePoint.equivProjectivization_symm_mk_mem_invChart_source_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] {v : Fin 2 β†’ π•œ} (hv : v β‰  0) :

The point [vβ‚€ : v₁] of the projective line lies in the source of the inverted chart exactly when vβ‚€ β‰  0.

@[simp]
theorem OnePoint.invChart_equivProjectivization_symm_mk {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] {v : Fin 2 β†’ π•œ} (hv : v β‰  0) :
↑invChart ((equivProjectivization π•œ).symm (Projectivization.mk π•œ v hv)) = v 1 / v 0

The inverted chart reads the point [vβ‚€ : v₁] of the projective line as v₁ / vβ‚€. Off its source, where vβ‚€ = 0, both sides are 0.

MΓΆbius transformations #

theorem OnePoint.invChart_symm_eq_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] (w : π•œ) :
↑invChart.symm w = Matrix.GeneralLinearGroup.mkOfDetNeZero !![0, 1; 1, 0] β‹― β€’ ↑w

The inverse of the inverted chart, 0 ↦ ∞ and w ↦ w⁻¹ for w β‰  0, is the MΓΆbius transformation z ↦ 1 / z of the matrix !![0, 1; 1, 0], restricted to π•œ.

theorem Matrix.GeneralLinearGroup.contMDiff_smul_coe {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] (g : GL (Fin 2) π•œ) :
ContMDiff (modelWithCornersSelf π•œ π•œ) (modelWithCornersSelf π•œ π•œ) ⊀ fun (z : π•œ) => g β€’ ↑z

A MΓΆbius transformation restricted to π•œ is analytic. For g = !![a, b; c, d], it is z ↦ (a * z + b) / (c * z + d) away from the pole and sends the pole to ∞.

instance OnePoint.instContMDiffConstSMul {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] :
ContMDiffConstSMul (modelWithCornersSelf π•œ π•œ) ⊀ (GL (Fin 2) π•œ) (OnePoint π•œ)

MΓΆbius transformations of the projective line are analytic. For π•œ = β„‚, every transformation z ↦ (a * z + b) / (c * z + d) of the Riemann sphere is holomorphic, and hence a biholomorphism Diffeomorph.constSmul π“˜(β„‚) Ο‰ g with inverse the transformation of g⁻¹.

instance OnePoint.instContMDiffConstSMulPGL {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] :

The MΓΆbius transformations of PGL(2, π•œ) are analytic, since the class of a matrix acts as the matrix does.

instance OnePoint.instContinuousConstSMul {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] :
ContinuousConstSMul (GL (Fin 2) π•œ) (OnePoint π•œ)

MΓΆbius transformations are homeomorphisms of the projective line.

instance OnePoint.instContMDiffConstSMulPSL {π•œ : Type u_1} [NontriviallyNormedField π•œ] [DecidableEq π•œ] [ProperSpace π•œ] :

PSL(2, π•œ) acts on the projective line by analytic maps, through representatives.

MΓΆbius transformations as smooth maps of the real surface #

GL(2, β„‚) acts on the Riemann sphere, regarded as a real surface, by smooth (indeed real-analytic) maps: each MΓΆbius transformation is holomorphic.

PSL(2, β„‚) acts on the Riemann sphere, regarded as a real surface, by smooth (indeed real-analytic) maps.

theorem OnePoint.mfderiv_smul_coe_apply (g : GL (Fin 2) β„‚) {z : β„‚} (hz : ↑g 1 0 * z + ↑g 1 1 β‰  0) (v : β„‚) :
((mfderiv% fun (x : OnePoint β„‚) => g β€’ x) ↑z) v = (↑g).det / (↑g 1 0 * z + ↑g 1 1) ^ 2 * v

The derivative of a Mâbius transformation in the affine coordinate. At a finite point z which g = !![a, b; c, d] does not send to ∞, the derivative of g on the Riemann sphere, read in the affine charts, is multiplication by det g / (c * z + d) ^ 2.