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
Equations
- UpperHalfPlane.instInhabitedUpperHalfPlane = { default := { val := Complex.I, property := UpperHalfPlane.instInhabitedUpperHalfPlane.proof_1 } }
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 = { val := z, property := h }
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
- UpperHalfPlane.smulAux g z = UpperHalfPlane.mk (UpperHalfPlane.smulAux' g z) (_ : 0 < (UpperHalfPlane.smulAux' g z).im)
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 (MonoidHom.comp Matrix.SpecialLinearGroup.toGLPos (Matrix.SpecialLinearGroup.map (algebraMap R ℝ)))
Equations
- ↑g = Matrix.SpecialLinearGroup.toGLPos ((Matrix.SpecialLinearGroup.map (Int.castRingHom ℝ)) g)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- UpperHalfPlane.SLOnGLPos = { smul := fun (s : Matrix.SpecialLinearGroup (Fin 2) ℤ) (g : ↥(Matrix.GLPos (Fin 2) ℝ)) => ↑s * g }
Equations
- UpperHalfPlane.SL_to_GL_tower = (_ : IsScalarTower (Matrix.SpecialLinearGroup (Fin 2) ℤ) (↥(Matrix.GLPos (Fin 2) ℝ)) UpperHalfPlane)
Equations
- UpperHalfPlane.subgroupGLPos Γ = { smul := fun (s : ↥Γ) (g : ↥(Matrix.GLPos (Fin 2) ℝ)) => ↑↑s * g }
Equations
- (_ : IsScalarTower (↥Γ) (↥(Matrix.GLPos (Fin 2) ℝ)) UpperHalfPlane) = (_ : IsScalarTower (↥Γ) (↥(Matrix.GLPos (Fin 2) ℝ)) UpperHalfPlane)
Equations
- UpperHalfPlane.subgroupSL Γ = { smul := fun (s : ↥Γ) (g : Matrix.SpecialLinearGroup (Fin 2) ℤ) => ↑s * g }
Equations
- (_ : IsScalarTower (↥Γ) (Matrix.SpecialLinearGroup (Fin 2) ℤ) UpperHalfPlane) = (_ : IsScalarTower (↥Γ) (Matrix.SpecialLinearGroup (Fin 2) ℤ) UpperHalfPlane)
Equations
- One or more equations did not get rendered due to their size.