Documentation

Mathlib.Analysis.Complex.Circle

The circle #

This file defines circle to be the metric sphere (Metric.sphere) in ℂ centred at 0 of radius 1. We equip it with the following structure:

We furthermore define expMapCircle to be the natural map fun t ↦ exp (t * I) from ℝ to circle, and show that this map is a group homomorphism.

Implementation notes #

Because later (in Geometry.Manifold.Instances.Sphere) one wants to equip the circle with a smooth manifold structure borrowed from Metric.sphere, the underlying set is {z : ℂ | abs (z - 0) = 1}. This prevents certain algebraic facts from working definitionally -- for example, the circle is not defeq to {z : ℂ | abs z = 1}, which is the kernel of Complex.abs considered as a homomorphism from ℂ to ℝ, nor is it defeq to {z : ℂ | normSq z = 1}, which is the kernel of the homomorphism Complex.normSq from ℂ to ℝ.

The unit circle in ℂ.

Equations
Instances For
    theorem Circle.ext {x y : Circle} :
    ↑x = ↑y → x = y
    theorem Circle.coe_inj {x y : Circle} :
    ↑x = ↑y ↔ x = y
    theorem Circle.norm_coe (z : Circle) :
    ‖↑z‖ = 1
    @[deprecated Circle.norm_coe (since := "2025-02-16")]
    theorem Circle.abs_coe (z : Circle) :
    ‖↑z‖ = 1

    Alias of Circle.norm_coe.

    @[simp]
    @[simp]
    theorem Circle.coe_ne_zero (z : Circle) :
    ↑z ≠ 0
    @[simp]
    theorem Circle.coe_one :
    ↑1 = 1
    theorem Circle.coe_eq_one {x : Circle} :
    ↑x = 1 ↔ x = 1
    @[simp]
    theorem Circle.coe_mul (z w : Circle) :
    ↑(z * w) = ↑z * ↑w
    @[simp]
    theorem Circle.coe_inv (z : Circle) :
    ↑z⁻¹ = (↑z)⁻¹
    @[simp]
    theorem Circle.coe_div (z w : Circle) :
    ↑(z / w) = ↑z / ↑w

    The coercion Circle → ℂ as a monoid homomorphism.

    Equations
    Instances For
      @[simp]
      theorem Circle.coeHom_apply (self : ↥(Submonoid.unitSphere ℂ)) :
      coeHom self = ↑self

      The elements of the circle embed into the units.

      Equations
      Instances For
        @[simp]
        theorem Circle.toUnits_apply (z : Circle) :
        toUnits z = Units.mk0 ↑z ⋯
        def Circle.ofConjDivSelf (z : ℂ) (hz : z ≠ 0) :

        If z is a nonzero complex number, then conj z / z belongs to the unit circle.

        Equations
        Instances For
          @[simp]
          theorem Circle.ofConjDivSelf_coe (z : ℂ) (hz : z ≠ 0) :
          ↑(ofConjDivSelf z hz) = (starRingEnd ℂ) z / z

          The map fun t => exp (t * I) from ℝ to the unit circle in ℂ.

          Equations
          Instances For
            @[simp]
            theorem Circle.coe_exp (t : ℝ) :
            ↑(exp t) = Complex.exp (↑t * Complex.I)
            @[simp]
            theorem Circle.exp_zero :
            exp 0 = 1
            @[simp]
            theorem Circle.exp_add (x y : ℝ) :
            exp (x + y) = exp x * exp y

            The map fun t => exp (t * I) from ℝ to the unit circle in ℂ, considered as a homomorphism of groups.

            Equations
            Instances For
              @[simp]
              theorem Circle.expHom_apply (a✝ : ℝ) :
              expHom a✝ = (⇑Additive.ofMul ∘ ⇑exp) a✝
              @[simp]
              theorem Circle.exp_sub (x y : ℝ) :
              exp (x - y) = exp x / exp y
              @[simp]
              theorem Circle.exp_neg (x : ℝ) :
              exp (-x) = (exp x)⁻¹
              instance Circle.instSMulCommClass_left {α : Type u_1} {β : Type u_2} [SMul ℂ β] [SMul α β] [SMulCommClass ℂ α β] :
              instance Circle.instSMulCommClass_right {α : Type u_1} {β : Type u_2} [SMul ℂ β] [SMul α β] [SMulCommClass α ℂ β] :
              instance Circle.instIsScalarTower {α : Type u_1} {β : Type u_2} [SMul ℂ α] [SMul ℂ β] [SMul α β] [IsScalarTower ℂ α β] :
              theorem Circle.smul_def {α : Type u_1} [SMul ℂ α] (z : Circle) (a : α) :
              z • a = ↑z • a
              @[simp]
              theorem Circle.norm_smul {E : Type u_4} [SeminormedAddCommGroup E] [NormedSpace ℂ E] (u : Circle) (v : E) :