The upper half plane and its automorphisms #
This file defines UpperHalfPlane
to be the upper half plane in ℂ
.
We furthermore equip it with the structure of a GLPos 2 ℝ
action by
fractional linear transformations.
We define the notation ℍ
for the upper half plane available in the locale
UpperHalfPlane
so as not to conflict with the quaternions.
The open upper half plane
Equations
- UpperHalfPlane.termℍ = Lean.ParserDescr.node `UpperHalfPlane.termℍ 1024 (Lean.ParserDescr.symbol "ℍ")
Instances For
Equations
- UpperHalfPlane.instCoeOutComplex = { coe := UpperHalfPlane.coe }
Equations
- UpperHalfPlane.instInhabited = { default := ⟨Complex.I, UpperHalfPlane.instInhabited.proof_1⟩ }
Equations
Extensionality lemma in terms of UpperHalfPlane.re
and UpperHalfPlane.im
.
Constructor for UpperHalfPlane
. It is useful if ⟨z, h⟩
makes Lean use a wrong
typeclass instance.
Equations
- UpperHalfPlane.mk z h = ⟨z, h⟩
Instances For
Define I := √-1 as an element on the upper half plane.
Equations
Instances For
Extension for the positivity
tactic: UpperHalfPlane.im
.
Instances For
Extension for the positivity
tactic: UpperHalfPlane.coe
.
Instances For
Numerator of the formula for a fractional linear transformation
Equations
- UpperHalfPlane.num g z = ↑(↑↑g 0 0) * ↑z + ↑(↑↑g 0 1)
Instances For
Denominator of the formula for a fractional linear transformation
Equations
- UpperHalfPlane.denom g z = ↑(↑↑g 1 0) * ↑z + ↑(↑↑g 1 1)
Instances For
Fractional linear transformation, also known as the Moebius transformation
Equations
- UpperHalfPlane.smulAux' g z = UpperHalfPlane.num g z / UpperHalfPlane.denom g z
Instances For
Fractional linear transformation, also known as the Moebius transformation
Equations
Instances For
The action of GLPos 2 ℝ
on the upper half-plane by fractional linear transformations.
Equations
- One or more equations did not get rendered due to their size.
Equations
- UpperHalfPlane.SLAction = MulAction.compHom UpperHalfPlane (Matrix.SpecialLinearGroup.toGLPos.comp (Matrix.SpecialLinearGroup.map (algebraMap R ℝ)))
Canonical embedding of SL(2, ℤ)
into GL(2, ℝ)⁺
.
Equations
- ↑g = Matrix.SpecialLinearGroup.toGLPos ((Matrix.SpecialLinearGroup.map (Int.castRingHom ℝ)) g)
Instances For
Equations
- UpperHalfPlane.ModularGroup.SLOnGLPos = { smul := fun (s : Matrix.SpecialLinearGroup (Fin 2) ℤ) (g : ↥(Matrix.GLPos (Fin 2) ℝ)) => ↑s * g }
Equations
Equations
- UpperHalfPlane.ModularGroup.subgroupGLPos Γ = { smul := fun (s : ↥Γ) (g : ↥(Matrix.GLPos (Fin 2) ℝ)) => ↑↑s * g }
Equations
- ⋯ = ⋯
Equations
- UpperHalfPlane.ModularGroup.subgroupSL Γ = { smul := fun (s : ↥Γ) (g : Matrix.SpecialLinearGroup (Fin 2) ℤ) => ↑s * g }
Equations
- ⋯ = ⋯