Documentation

Mathlib.Analysis.SpecialFunctions.Complex.Circle

Maps on the unit circle #

In this file we prove some basic lemmas about Circle.exp and the restriction of Complex.arg to the unit circle. These two maps define a partial equivalence between Circle and , see Circle.argPartialEquiv and Circle.argEquiv, that sends the whole circle to (-π, π].

@[simp]
theorem Circle.arg_eq_arg {z w : Circle} :
(↑z).arg = (↑w).arg z = w
@[simp]
theorem Circle.arg_eq_zero {z : Circle} :
(↑z).arg = 0 z = 1
theorem Circle.arg_exp {x : } (h₁ : -Real.pi < x) (h₂ : x Real.pi) :
(↑(exp x)).arg = x
@[simp]
theorem Circle.exp_arg (z : Circle) :
exp (↑z).arg = z

Complex.arg ∘ (↑) and Circle.exp define a partial equivalence between Circle and with source = Set.univ and target = Set.Ioc (-π) π.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def Circle.argEquiv :

    Complex.arg and Circle.exp ∘ (↑) define an equivalence between Circle and (-π, π].

    Equations
    Instances For
      @[simp]
      theorem Circle.argEquiv_apply_coe (z : Circle) :
      (argEquiv z) = (↑z).arg
      theorem Circle.exp_eq_exp {x y : } :
      exp x = exp y ∃ (m : ), x = y + m * (2 * Real.pi)
      @[simp]
      theorem Circle.exp_int_mul_two_pi (n : ) :
      exp (n * (2 * Real.pi)) = 1
      theorem Circle.exp_two_pi_mul_int (n : ) :
      exp (2 * Real.pi * n) = 1
      theorem Circle.exp_eq_one {r : } :
      exp r = 1 ∃ (n : ), r = n * (2 * Real.pi)
      theorem Circle.exp_inj {r s : } :
      theorem Circle.exp_injOn_of_forall_sub_mem_Ioo {s : Set } (hs : xs, ys, x - y Set.Ioo (-2 * Real.pi) (2 * Real.pi)) :
      Set.InjOn (⇑exp) s
      theorem Circle.exp_injOn_Icc {a b : } (h : b - a < 2 * Real.pi) :
      Set.InjOn (⇑exp) (Set.Icc a b)
      theorem Circle.exp_injOn_Ico {a b : } (h : b - a 2 * Real.pi) :
      Set.InjOn (⇑exp) (Set.Ico a b)
      theorem Circle.exp_injOn_Ioc {a b : } (h : b - a 2 * Real.pi) :
      Set.InjOn (⇑exp) (Set.Ioc a b)

      The image under Circle.exp of the interval of angles (-r, r).

      Equations
      Instances For
        theorem Circle.mem_centeredArc {r : } (hr : r Real.pi) {z : Circle} :
        z centeredArc r |(↑z).arg| < r
        theorem Circle.mem_centeredArc_div {z : Circle} {s : } {n : } (hs : s Real.pi) (h1 : z centeredArc (Real.pi / n)) (h2 : z ^ n centeredArc s) :
        z centeredArc (s / n)
        noncomputable def Circle.angleDiff (x y : Circle) :

        Length of the anti-clockwise arc from x to y.

        Equations
        Instances For
          @[simp]
          theorem Circle.angleDiff_pos {x y : Circle} (h : x y) :
          0 < x.angleDiff y
          @[simp]
          theorem Circle.angleDiff_add_angleDiff {x y : Circle} (h : x y) :
          @[simp]
          theorem Circle.exp_angleDiff_mul {x y : Circle} :
          exp (x.angleDiff y) * x = y
          theorem Circle.Icc_union_Icc_angleDiff_add_arg {x y : Circle} (h : x y) :
          Set.Icc (↑x).arg (x.angleDiff y + (↑x).arg) Set.Icc (↑y).arg (y.angleDiff x + (↑y).arg) = Set.Icc (min (↑x).arg (↑y).arg) (min (↑x).arg (↑y).arg + 2 * Real.pi)
          theorem Circle.Ico_union_Ico_angleDiff_add_arg {x y : Circle} (h : x y) :
          Set.Ico (↑x).arg (x.angleDiff y + (↑x).arg) Set.Ico (↑y).arg (y.angleDiff x + (↑y).arg) = Set.Ico (min (↑x).arg (↑y).arg) (min (↑x).arg (↑y).arg + 2 * Real.pi)
          theorem Circle.Ioc_union_Ioc_angleDiff_add_arg {x y : Circle} (h : x y) :
          Set.Ioc (↑x).arg (x.angleDiff y + (↑x).arg) Set.Ioc (↑y).arg (y.angleDiff x + (↑y).arg) = Set.Ioc (min (↑x).arg (↑y).arg) (min (↑x).arg (↑y).arg + 2 * Real.pi)
          noncomputable def Circle.path (x y : Circle) :
          Path x y

          Path from x to y on the circle traversing in anti-clockwise direction.

          Equations
          Instances For
            @[simp]
            theorem Circle.path_apply (x y : Circle) (a : unitInterval) :
            (x.path y) a = exp ((Path.segment (↑x).arg (x.angleDiff y + (↑x).arg)) a)
            @[simp]
            theorem Circle.coe_path (x y : Circle) :
            (x.path y) = exp (Path.segment (↑x).arg (x.angleDiff y + (↑x).arg))
            @[simp]
            theorem Circle.path_self (x : Circle) :
            theorem Circle.range_path (x y : Circle) :
            Set.range (x.path y) = exp '' Set.Icc (↑x).arg (x.angleDiff y + (↑x).arg)
            theorem Circle.path_image_Ico_of_ne {x y : Circle} (h : x y) :
            (x.path y) '' Set.Ico 0 1 = exp '' Set.Ico (↑x).arg (x.angleDiff y + (↑x).arg)
            theorem Circle.path_image_Ioc_of_ne {x y : Circle} (h : x y) :
            (x.path y) '' Set.Ioc 0 1 = exp '' Set.Ioc (↑x).arg (x.angleDiff y + (↑x).arg)
            theorem Circle.path_image_Ioc_union {x y : Circle} (h : x y) :
            (x.path y) '' Set.Ioc 0 1 (y.path x) '' Set.Ioc 0 1 = Set.univ
            theorem Circle.disjoint_path_image_Ioc {x y : Circle} (h : x y) :
            Disjoint ((x.path y) '' Set.Ioc 0 1) ((y.path x) '' Set.Ioc 0 1)
            theorem Circle.compl_path_image_Ioc {x y : Circle} (h : x y) :
            ((x.path y) '' Set.Ioc 0 1) = (y.path x) '' Set.Ioc 0 1
            theorem Circle.compl_range_path {x y : Circle} (h : x y) :
            (Set.range (x.path y)) = (y.path x) '' Set.Ioo 0 1
            theorem Circle.range_path_inter_range_path {x y : Circle} (h : x y) :
            Set.range (x.path y) Set.range (y.path x) = {x, y}
            noncomputable def Real.Angle.toCircle (θ : Angle) :

            Circle.exp, applied to a Real.Angle.

            Equations
            Instances For
              @[simp]
              theorem Real.Angle.coe_toCircle (θ : Angle) :
              θ.toCircle = θ.cos + θ.sin * Complex.I
              @[simp]
              theorem Real.Angle.toCircle_add (θ₁ θ₂ : Angle) :
              (θ₁ + θ₂).toCircle = θ₁.toCircle * θ₂.toCircle
              @[simp]
              theorem Real.Angle.arg_toCircle (θ : Angle) :
              (↑θ.toCircle).arg = θ

              Map from AddCircle to Circle #

              noncomputable def AddCircle.toCircle {T : } :

              The canonical map fun x => exp (2 π i x / T) from ℝ / ℤ • T to the unit circle in . If T = 0 we understand this as the constant function 1.

              Equations
              Instances For
                @[simp]
                theorem AddCircle.toCircle_nsmul {T : } (x : AddCircle T) (n : ) :
                (n x).toCircle = x.toCircle ^ n
                theorem AddCircle.toCircle_zsmul {T : } (x : AddCircle T) (n : ) :
                (n x).toCircle = x.toCircle ^ n

                The homeomorphism between AddCircle (2 * π) and Circle.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Circle.hasBasis_centeredArc_div_two_pow :
                  (nhds 1).HasBasis (fun (x : ) => True) fun (n : ) => centeredArc (Real.pi / 2 ^ (n + 1))

                  The centered arcs centeredArc (π / 2 ^ (n + 1)) form a neighborhood basis at 1. This basis is useful because multiplying two sufficiently small arcs stays inside an earlier arc.

                  If all positive powers of a point on the circle lie in the right half centered arc, then the point is 1.