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 {x y : UpperHalfPlane} (coe : ↑x = ↑y) :
    x = y

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

    Equations
      Instances For

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

        Equations
          Instances For
            @[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

            Equations
              Instances For

                Real part

                Equations
                  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.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.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.

                    @[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
                    @[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.

                    Equations
                      Instances For