Documentation

Mathlib.Analysis.Complex.UpperHalfPlane.Basic

The upper half plane #

This file defines UpperHalfPlane to be the upper half plane in β„‚.

We define the notation ℍ for the upper half plane available in the locale UpperHalfPlane so as not to conflict with the quaternions.

structure UpperHalfPlane :

The open upper half plane, denoted as ℍ within the UpperHalfPlane namespace

  • coe : β„‚

    Canonical embedding of the upper half-plane into β„‚.

  • coe_im_pos : 0 < (↑self).im
Instances For
    theorem UpperHalfPlane.ext_iff {x y : UpperHalfPlane} :
    x = y ↔ ↑x = ↑y
    theorem UpperHalfPlane.ext {x y : UpperHalfPlane} (coe : ↑x = ↑y) :
    x = y
    def UpperHalfPlane.termℍ :
    Lean.ParserDescr

    The open upper half plane, denoted as ℍ within the UpperHalfPlane namespace

    Instances For

      Define I := √-1 as an element on the upper half plane.

      Instances For
        @[implicit_reducible]
        @[simp]
        theorem UpperHalfPlane.coe_inj {a b : UpperHalfPlane} :
        ↑a = ↑b ↔ a = b
        @[deprecated UpperHalfPlane.coe_inj (since := "2026-01-31")]
        theorem UpperHalfPlane.ext_iff' {a b : UpperHalfPlane} :
        ↑a = ↑b ↔ a = b

        Alias of UpperHalfPlane.coe_inj.

        theorem UpperHalfPlane.forall {P : UpperHalfPlane β†’ Prop} :
        (βˆ€ (z : UpperHalfPlane), P z) ↔ βˆ€ (z : β„‚) (hz : 0 < z.im), P { coe := z, coe_im_pos := hz }
        theorem UpperHalfPlane.exists {P : UpperHalfPlane β†’ Prop} :
        (βˆƒ (z : UpperHalfPlane), P z) ↔ βˆƒ (z : β„‚) (hz : 0 < z.im), P { coe := z, coe_im_pos := hz }

        Imaginary part

        Instances For
          theorem UpperHalfPlane.ext_re_im {a b : UpperHalfPlane} (hre : a.re = b.re) (him : a.im = b.im) :
          a = b

          Extensionality lemma in terms of UpperHalfPlane.re and UpperHalfPlane.im.

          @[deprecated UpperHalfPlane.ext_re_im (since := "2026-01-29")]
          theorem UpperHalfPlane.ext' {a b : UpperHalfPlane} (hre : a.re = b.re) (him : a.im = b.im) :
          a = b

          Alias of UpperHalfPlane.ext_re_im.


          Extensionality lemma in terms of UpperHalfPlane.re and UpperHalfPlane.im.

          @[simp]
          theorem UpperHalfPlane.coe_im (z : UpperHalfPlane) :
          (↑z).im = z.im
          @[simp]
          theorem UpperHalfPlane.coe_re (z : UpperHalfPlane) :
          (↑z).re = z.re
          @[simp]
          theorem UpperHalfPlane.mk_re (z : β„‚) (h : 0 < z.im) :
          { coe := z, coe_im_pos := h }.re = z.re
          @[simp]
          theorem UpperHalfPlane.mk_im (z : β„‚) (h : 0 < z.im) :
          { coe := z, coe_im_pos := h }.im = z.im
          theorem UpperHalfPlane.coe_mk (z : β„‚) (h : 0 < z.im) :
          ↑{ coe := z, coe_im_pos := h } = z
          @[simp]
          theorem UpperHalfPlane.mk_coe (z : UpperHalfPlane) (h : 0 < (↑z).im := β‹―) :
          { coe := ↑z, coe_im_pos := h } = z
          @[deprecated UpperHalfPlane.coe_mk (since := "2026-01-29")]
          theorem UpperHalfPlane.coe_mk_subtype {z : β„‚} (hz : 0 < z.im) :
          ↑{ coe := z, coe_im_pos := hz } = z
          theorem UpperHalfPlane.re_add_im (z : UpperHalfPlane) :
          ↑z.re + ↑z.im * Complex.I = ↑z
          theorem UpperHalfPlane.ne_zero (z : UpperHalfPlane) :
          ↑z β‰  0
          theorem UpperHalfPlane.im_pnat_div_pos (n : β„•) [NeZero n] (z : UpperHalfPlane) :
          0 < (-↑n / ↑z).im
          theorem UpperHalfPlane.ne_ofReal (z : UpperHalfPlane) (x : ℝ) :
          ↑z β‰  ↑x
          theorem UpperHalfPlane.ne_intCast (z : UpperHalfPlane) (n : β„€) :
          ↑z β‰  ↑n
          @[deprecated UpperHalfPlane.ne_intCast (since := "2026-01-29")]
          theorem UpperHalfPlane.ne_int (z : UpperHalfPlane) (n : β„€) :
          ↑z β‰  ↑n

          Alias of UpperHalfPlane.ne_intCast.

          theorem UpperHalfPlane.ne_natCast (z : UpperHalfPlane) (n : β„•) :
          ↑z β‰  ↑n
          @[deprecated UpperHalfPlane.ne_natCast (since := "2026-01-29")]
          theorem UpperHalfPlane.ne_nat (z : UpperHalfPlane) (n : β„•) :
          ↑z β‰  ↑n

          Alias of UpperHalfPlane.ne_natCast.

          @[implicit_reducible]
          noncomputable instance UpperHalfPlane.posRealAction :
          @[simp]
          theorem UpperHalfPlane.coe_pos_real_smul (x : { x : ℝ // 0 < x }) (z : UpperHalfPlane) :
          ↑(x β€’ z) = ↑x β€’ ↑z
          @[simp]
          theorem UpperHalfPlane.pos_real_im (x : { x : ℝ // 0 < x }) (z : UpperHalfPlane) :
          (x β€’ z).im = ↑x * z.im
          @[simp]
          theorem UpperHalfPlane.pos_real_re (x : { x : ℝ // 0 < x }) (z : UpperHalfPlane) :
          (x β€’ z).re = ↑x * z.re
          theorem UpperHalfPlane.pos_real_smul_injective (z : UpperHalfPlane) :
          Function.Injective fun (x : { x : ℝ // 0 < x }) => x β€’ z
          @[simp]
          theorem UpperHalfPlane.coe_vadd (x : ℝ) (z : UpperHalfPlane) :
          ↑(x +α΅₯ z) = ↑x + ↑z
          @[reducible, inline]

          The upper half plane as a subset of β„‚. This is convenient for taking derivatives of functions on the upper half plane.

          Instances For