Documentation

Mathlib.Analysis.Complex.UpperHalfPlane.MoebiusAction

Group action on the upper half-plane #

We equip the upper half-plane with the structure of a GL (Fin 2) ℝ action by fractional linear transformations (composing with complex conjugation when needed to extend the action from the positive-determinant subgroup, so that !![-1, 0; 0, 1] acts as z ↦ -conj z.)

The coercion first into an element of GL(2, ℝ)⁺, then GL(2, ℝ) and finally a 2 × 2 matrix.

This notation is scoped in namespace UpperHalfPlane.

Equations
Instances For
    instance UpperHalfPlane.instCoeFun :
    CoeFun (Matrix.GLPos (Fin 2) ) fun (x : (Matrix.GLPos (Fin 2) )) => Fin 2Fin 2
    Equations

    The coercion into an element of GL(2, R) and finally a 2 × 2 matrix over R. This is similar to ↑ₘ, but without positivity requirements, and allows the user to specify the ring R, which can be useful to help Lean elaborate correctly.

    This notation is scoped in namespace UpperHalfPlane.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def UpperHalfPlane.num (g : GL (Fin 2) ) (z : ) :

      Numerator of the formula for a fractional linear transformation

      Equations
      Instances For
        def UpperHalfPlane.denom (g : GL (Fin 2) ) (z : ) :

        Denominator of the formula for a fractional linear transformation

        Equations
        Instances For
          @[simp]
          theorem UpperHalfPlane.num_neg (g : GL (Fin 2) ) (z : ) :
          num (-g) z = -num g z
          @[simp]
          theorem UpperHalfPlane.denom_neg (g : GL (Fin 2) ) (z : ) :
          denom (-g) z = -denom g z
          theorem UpperHalfPlane.linear_ne_zero_of_im {cd : Fin 2} {z : } (hz : z.im 0) (h : cd 0) :
          (cd 0) * z + (cd 1) 0
          theorem UpperHalfPlane.linear_ne_zero {cd : Fin 2} (τ : UpperHalfPlane) (h : cd 0) :
          (cd 0) * τ + (cd 1) 0
          theorem UpperHalfPlane.denom_ne_zero_of_im (g : GL (Fin 2) ) {z : } (hz : z.im 0) :
          denom g z 0
          theorem UpperHalfPlane.normSq_denom_pos (g : GL (Fin 2) ) {z : } (hz : z.im 0) :
          theorem UpperHalfPlane.normSq_denom_ne_zero (g : GL (Fin 2) ) {z : } (hz : z.im 0) :
          theorem UpperHalfPlane.denom_cocycle (g h : GL (Fin 2) ) {z : } (hz : z.im 0) :
          denom (g * h) z = denom g (num h z / denom h z) * denom h z

          Automorphism of : the identity if 0 < det g and conjugation otherwise.

          Equations
          Instances For
            @[simp]
            theorem UpperHalfPlane.σ_ofReal (g : GL (Fin 2) ) (y : ) :
            (σ g) y = y
            theorem UpperHalfPlane.σ_num (g h : GL (Fin 2) ) (z : ) :
            (σ g) (num h z) = num h ((σ g) z)
            theorem UpperHalfPlane.σ_denom (g h : GL (Fin 2) ) (z : ) :
            (σ g) (denom h z) = denom h ((σ g) z)
            @[simp]
            theorem UpperHalfPlane.σ_neg (g : GL (Fin 2) ) :
            σ (-g) = σ g
            @[simp]
            theorem UpperHalfPlane.σ_sq (g : GL (Fin 2) ) (z : ) :
            (σ g) ((σ g) z) = z
            theorem UpperHalfPlane.σ_im_ne_zero {g : GL (Fin 2) } {z : } :
            ((σ g) z).im 0 z.im 0
            theorem UpperHalfPlane.σ_mul (g g' : GL (Fin 2) ) (z : ) :
            (σ (g * g')) z = (σ g) ((σ g') z)
            theorem UpperHalfPlane.σ_mul_comm (g h : GL (Fin 2) ) (z : ) :
            (σ g) ((σ h) z) = (σ h) ((σ g) z)
            def UpperHalfPlane.smulAux' (g : GL (Fin 2) ) (z : ) :

            Fractional linear transformation, also known as the Moebius transformation

            Equations
            Instances For

              Fractional linear transformation, also known as the Moebius transformation

              Equations
              Instances For
                theorem UpperHalfPlane.denom_cocycle' (g h : GL (Fin 2) ) (z : UpperHalfPlane) :
                denom (g * h) z = (σ h) (denom g (smulAux h z)) * denom h z
                theorem UpperHalfPlane.mul_smul' (g h : GL (Fin 2) ) (z : UpperHalfPlane) :
                smulAux (g * h) z = smulAux g (smulAux h z)

                Action of GL (Fin 2) ℝ on the upper half-plane, with GL(2, ℝ)⁺ acting by Moebius transformations in the usual way, extended to all of GL (Fin 2) ℝ using complex conjugation.

                Equations
                theorem UpperHalfPlane.coe_smul (g : GL (Fin 2) ) (z : UpperHalfPlane) :
                ↑(g z) = (σ g) (num g z / denom g z)
                theorem UpperHalfPlane.coe_smul_of_det_pos {g : GL (Fin 2) } (hg : 0 < (Matrix.GeneralLinearGroup.det g)) (z : UpperHalfPlane) :
                ↑(g z) = num g z / denom g z
                theorem UpperHalfPlane.denom_cocycle_σ (g h : GL (Fin 2) ) (z : UpperHalfPlane) :
                denom (g * h) z = (σ h) (denom g ↑(h z)) * denom h z
                theorem UpperHalfPlane.glPos_smul_def {g : GL (Fin 2) } (hg : 0 < (Matrix.GeneralLinearGroup.det g)) (z : UpperHalfPlane) :
                g z = mk (num g z / denom g z)
                theorem UpperHalfPlane.re_smul (g : GL (Fin 2) ) (z : UpperHalfPlane) :
                (g z).re = (num g z / denom g z).re
                theorem UpperHalfPlane.im_smul (g : GL (Fin 2) ) (z : UpperHalfPlane) :
                (g z).im = |(num g z / denom g z).im|
                @[simp]
                theorem UpperHalfPlane.neg_smul (g : GL (Fin 2) ) (z : UpperHalfPlane) :
                -g z = g z
                theorem UpperHalfPlane.coe_specialLinearGroup_apply {R : Type u_1} [CommRing R] [Algebra R ] (g : Matrix.SpecialLinearGroup (Fin 2) R) (z : UpperHalfPlane) :
                ↑(g z) = (((algebraMap R ) (g 0 0)) * z + ((algebraMap R ) (g 0 1))) / (((algebraMap R ) (g 1 0)) * z + ((algebraMap R ) (g 1 1)))
                theorem UpperHalfPlane.specialLinearGroup_apply {R : Type u_1} [CommRing R] [Algebra R ] (g : Matrix.SpecialLinearGroup (Fin 2) R) (z : UpperHalfPlane) :
                g z = mk ((((algebraMap R ) (g 0 0)) * z + ((algebraMap R ) (g 0 1))) / (((algebraMap R ) (g 1 0)) * z + ((algebraMap R ) (g 1 1))))
                theorem UpperHalfPlane.exists_SL2_smul_eq_of_apply_zero_one_eq_zero (g : Matrix.SpecialLinearGroup (Fin 2) ) (hc : g 1 0 = 0) :
                ∃ (u : { x : // 0 < x }) (v : ), (fun (x : UpperHalfPlane) => g x) = (fun (x : UpperHalfPlane) => v +ᵥ x) fun (x : UpperHalfPlane) => u x
                theorem UpperHalfPlane.exists_SL2_smul_eq_of_apply_zero_one_ne_zero (g : Matrix.SpecialLinearGroup (Fin 2) ) (hc : g 1 0 0) :
                ∃ (u : { x : // 0 < x }) (v : ) (w : ), (fun (x : UpperHalfPlane) => g x) = (fun (x : UpperHalfPlane) => w +ᵥ x) (fun (x : UpperHalfPlane) => ModularGroup.S x) (fun (x : UpperHalfPlane) => v +ᵥ x) fun (x : UpperHalfPlane) => u x

                Canonical embedding of SL(2, ℤ) into GL(2, ℝ)⁺.

                Equations
                Instances For
                  @[simp]
                  theorem ModularGroup.coe_inj (a b : Matrix.SpecialLinearGroup (Fin 2) ) :
                  a = b a = b
                  @[deprecated ModularGroup.coe (since := "2024-11-19")]

                  Alias of ModularGroup.coe.


                  Canonical embedding of SL(2, ℤ) into GL(2, ℝ)⁺.

                  Equations
                  Instances For

                    Canonical embedding of SL(2, ℤ) into GL(2, ℝ)⁺, bundled as a group hom.

                    Equations
                    Instances For
                      @[simp]
                      theorem ModularGroup.coe_apply_complex {g : Matrix.SpecialLinearGroup (Fin 2) } {i j : Fin 2} :
                      (g i j) = (g i j)
                      @[deprecated ModularGroup.coe_apply_complex (since := "2024-11-19")]
                      theorem ModularGroup.coe'_apply_complex {g : Matrix.SpecialLinearGroup (Fin 2) } {i j : Fin 2} :
                      (g i j) = (g i j)

                      Alias of ModularGroup.coe_apply_complex.

                      @[simp]
                      theorem ModularGroup.det_coe {g : Matrix.SpecialLinearGroup (Fin 2) } :
                      (↑g).det = 1
                      @[deprecated ModularGroup.det_coe (since := "2024-11-19")]
                      theorem ModularGroup.det_coe' {g : Matrix.SpecialLinearGroup (Fin 2) } :
                      (↑g).det = 1

                      Alias of ModularGroup.det_coe.