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
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)
      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