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 (-Ο€, Ο€].

theorem Circle.injective_arg :
Function.Injective fun (z : Circle) => (↑z).arg
@[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 (-Ο€) Ο€.

Instances For
    noncomputable def Circle.argEquiv :

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

    Instances For
      @[simp]
      theorem Circle.argEquiv_apply_coe (z : Circle) :
      ↑(argEquiv z) = (↑z).arg
      @[simp]
      theorem Circle.argEquiv_symm_apply :
      ⇑argEquiv.symm = ⇑exp ∘ Subtype.val
      theorem Circle.leftInverse_exp_arg :
      Function.LeftInverse (⇑exp) (Complex.arg ∘ Subtype.val)
      theorem Circle.exp_eq_exp {x y : ℝ} :
      exp x = exp y ↔ βˆƒ (m : β„€), x = y + ↑m * (2 * Real.pi)
      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 : ℝ} :
      exp r = exp s ↔ r ≑ s [PMOD 2 * Real.pi]
      noncomputable def Real.Angle.toCircle (ΞΈ : Angle) :

      Circle.exp, applied to a Real.Angle.

      Instances For
        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 : ℝ} :
        AddCircle T β†’ Circle

        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.

        Instances For
          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
          theorem AddCircle.injective_toCircle {T : ℝ} (hT : T β‰  0) :
          Function.Injective toCircle

          The homeomorphism between AddCircle (2 * Ο€) and Circle.

          Instances For
            noncomputable def AddCircle.homeomorphCircle {T : ℝ} (hT : T β‰  0) :

            The homeomorphism between AddCircle and Circle.

            Instances For
              theorem Circle.isQuotientCoveringMap_zpow (n : β„€) [NeZero n] :
              IsQuotientCoveringMap (fun (x : Circle) => x ^ n) β†₯(zpowGroupHom n).ker
              theorem Circle.isQuotientCoveringMap_npow (n : β„•) [NeZero n] :
              IsQuotientCoveringMap (fun (x : Circle) => x ^ n) β†₯(powMonoidHom n).ker