Documentation

TauCeti.Analysis.Complex.UpperHalfPlane.MoebiusAction

The Möbius-action conjugation at a positive determinant #

Mathlib's UpperHalfPlane.σ sends a matrix g : GL(2, ℝ) to the automorphism of ℂ which is the identity when det g is positive and complex conjugation otherwise. It is the twist that makes the Möbius action of a negative-determinant matrix antiholomorphic, and it is carried through the weight-k slash action of a general real matrix.

Positive determinant is the case everything in this project works in — congruence subgroups, the semigroups Δ₀(N) of the Hecke theory, and the scaling matrices diag(d, 1) all consist of matrices of positive determinant — so the conjugation is invariably trivial and every computation begins by discharging it. This file names that branch, so σ need never be unfolded by hand.

Main results #

Provenance #

The statement and its role follow AINTLIB's sigma_eq_id_of_pos_det in the LeanModularForms project (LeanModularForms/HeckeRIngs/GL2/HeckeAction.lean, commit 2baa76f742bdb4fb8ee323fabba41203bd390e08, Apache-2.0, Chris Birkbeck), where it discharges the σ branch for the Hecke slash action. The proof is written against the current pin — if_pos is deprecated here in favour of ite_eq_left.

@[simp]

The Möbius-action conjugation σ is the identity on matrices of positive determinant: that is the branch its definition picks. On the other branch σ is complex conjugation, which is where the antiholomorphic behaviour of a negative-determinant Möbius transformation comes from.

The hypothesis is stated with Matrix.det of the underlying matrix rather than with the ℝˣ-valued GeneralLinearGroup.det: the two agree by Matrix.GeneralLinearGroup.val_det_apply, which is simp, so only this form is in simp-normal form and only this form makes the lemma usable as a conditional simp rule.

@[simp]

The SL(2, ℝ)-action on ℍ is the GL(2, ℝ)-action of the underlying matrix.

theorem UpperHalfPlane.ofReal_mul_add_eq_zero_iff (z : UpperHalfPlane) {m n : ℝ} :
↑m * ↑z + ↑n = 0 ↔ m = 0 ∧ n = 0

A real linear combination m z + n of a point z of the upper half-plane and 1 vanishes only when both coefficients do, as z is not real: the iff form of UpperHalfPlane.linear_ne_zero.

theorem UpperHalfPlane.num_sub_smul_mul_denom {g : GL (Fin 2) ℝ} (hg : 0 < (↑g).det) (τ z : UpperHalfPlane) :
num g ↑z - ↑(g • τ) * denom g ↑z = ↑(↑g).det * (↑z - ↑τ) / denom g ↑τ

For g = !![a, b; c, d] of positive determinant, (az + b) - (g • τ)(cz + d) = det g · (z - τ) / (cτ + d): dividing by cz + d gives the difference formula g • z - g • τ = det g · (z - τ) / ((cz + d)(cτ + d)), in the form that clears the denominator of g • z.

@[simp]

The SL(2, ℤ)-action on subsets of ℍ is the GL(2, ℝ)-action along the coercion, the pointwise-image counterpart of ModularGroup.sl_moeb. This is useful as a rewrite even though the two actions are definitionally equal.

Elements of SL(2, ℤ) that agree up to sign act alike on ℍ, since -1 acts trivially (ModularGroup.SL_neg_smul). This absorbs the sign ambiguity g = k ∨ g = -k in the cases of Mathlib's classification ModularGroup.cases_of_mem_fd_smul_mem_fd.

The inversion S negates the real part of every point and divides by its norm-square.

The inversion S is an involution of ℍ.