Documentation

Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic

Trigonometric functions #

Main definitions #

This file contains the definition of π.

See also Analysis.SpecialFunctions.Trigonometric.Inverse and Analysis.SpecialFunctions.Trigonometric.Arctan for the inverse trigonometric functions.

See also Analysis.SpecialFunctions.Complex.Arg and Analysis.SpecialFunctions.Complex.Log for the complex argument function and the complex logarithm.

Main statements #

Many basic inequalities on the real trigonometric functions are established.

The continuity of the usual trigonometric functions is proved.

Several facts about the real trigonometric functions have the proofs deferred to Analysis.SpecialFunctions.Trigonometric.Complex, as they are most easily proved by appealing to the corresponding fact for complex trigonometric functions.

See also Analysis.SpecialFunctions.Trigonometric.Chebyshev for the multiple angle formulas in terms of Chebyshev polynomials.

Tags #

sin, cos, tan, angle

noncomputable def Real.pi :

The number π = 3.14159265... Defined here using choice as twice a zero of cos in [1,2], from which one can derive all its properties. For explicit bounds on π, see Data.Real.Pi.Bounds.

Equations
Instances For

    The number π = 3.14159265... Defined here using choice as twice a zero of cos in [1,2], from which one can derive all its properties. For explicit bounds on π, see Data.Real.Pi.Bounds.

    Equations
    Instances For
      @[simp]
      theorem Real.cos_pi_div_two :
      (Real.pi / 2).cos = 0

      Extension for the positivity tactic: π is always positive.

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

        π considered as a nonnegative real.

        Equations
        Instances For
          @[simp]
          theorem Real.sin_pi :
          Real.pi.sin = 0
          @[simp]
          theorem Real.cos_pi :
          Real.pi.cos = -1
          @[simp]
          theorem Real.sin_two_pi :
          (2 * Real.pi).sin = 0
          @[simp]
          theorem Real.cos_two_pi :
          (2 * Real.pi).cos = 1
          @[simp]
          theorem Real.sin_add_pi (x : ) :
          (x + Real.pi).sin = -x.sin
          @[simp]
          theorem Real.sin_add_two_pi (x : ) :
          (x + 2 * Real.pi).sin = x.sin
          @[simp]
          theorem Real.sin_sub_pi (x : ) :
          (x - Real.pi).sin = -x.sin
          @[simp]
          theorem Real.sin_sub_two_pi (x : ) :
          (x - 2 * Real.pi).sin = x.sin
          @[simp]
          theorem Real.sin_pi_sub (x : ) :
          (Real.pi - x).sin = x.sin
          @[simp]
          theorem Real.sin_two_pi_sub (x : ) :
          (2 * Real.pi - x).sin = -x.sin
          @[simp]
          theorem Real.sin_nat_mul_pi (n : ) :
          (n * Real.pi).sin = 0
          @[simp]
          theorem Real.sin_int_mul_pi (n : ) :
          (n * Real.pi).sin = 0
          @[simp]
          theorem Real.sin_add_nat_mul_two_pi (x : ) (n : ) :
          (x + n * (2 * Real.pi)).sin = x.sin
          @[simp]
          theorem Real.sin_add_int_mul_two_pi (x : ) (n : ) :
          (x + n * (2 * Real.pi)).sin = x.sin
          @[simp]
          theorem Real.sin_sub_nat_mul_two_pi (x : ) (n : ) :
          (x - n * (2 * Real.pi)).sin = x.sin
          @[simp]
          theorem Real.sin_sub_int_mul_two_pi (x : ) (n : ) :
          (x - n * (2 * Real.pi)).sin = x.sin
          @[simp]
          theorem Real.sin_nat_mul_two_pi_sub (x : ) (n : ) :
          (n * (2 * Real.pi) - x).sin = -x.sin
          @[simp]
          theorem Real.sin_int_mul_two_pi_sub (x : ) (n : ) :
          (n * (2 * Real.pi) - x).sin = -x.sin
          theorem Real.sin_add_int_mul_pi (x : ) (n : ) :
          (x + n * Real.pi).sin = (-1) ^ n * x.sin
          theorem Real.sin_add_nat_mul_pi (x : ) (n : ) :
          (x + n * Real.pi).sin = (-1) ^ n * x.sin
          theorem Real.sin_sub_int_mul_pi (x : ) (n : ) :
          (x - n * Real.pi).sin = (-1) ^ n * x.sin
          theorem Real.sin_sub_nat_mul_pi (x : ) (n : ) :
          (x - n * Real.pi).sin = (-1) ^ n * x.sin
          theorem Real.sin_int_mul_pi_sub (x : ) (n : ) :
          (n * Real.pi - x).sin = -((-1) ^ n * x.sin)
          theorem Real.sin_nat_mul_pi_sub (x : ) (n : ) :
          (n * Real.pi - x).sin = -((-1) ^ n * x.sin)
          @[simp]
          theorem Real.cos_add_pi (x : ) :
          (x + Real.pi).cos = -x.cos
          @[simp]
          theorem Real.cos_add_two_pi (x : ) :
          (x + 2 * Real.pi).cos = x.cos
          @[simp]
          theorem Real.cos_sub_pi (x : ) :
          (x - Real.pi).cos = -x.cos
          @[simp]
          theorem Real.cos_sub_two_pi (x : ) :
          (x - 2 * Real.pi).cos = x.cos
          @[simp]
          theorem Real.cos_pi_sub (x : ) :
          (Real.pi - x).cos = -x.cos
          @[simp]
          theorem Real.cos_two_pi_sub (x : ) :
          (2 * Real.pi - x).cos = x.cos
          @[simp]
          theorem Real.cos_nat_mul_two_pi (n : ) :
          (n * (2 * Real.pi)).cos = 1
          @[simp]
          theorem Real.cos_int_mul_two_pi (n : ) :
          (n * (2 * Real.pi)).cos = 1
          @[simp]
          theorem Real.cos_add_nat_mul_two_pi (x : ) (n : ) :
          (x + n * (2 * Real.pi)).cos = x.cos
          @[simp]
          theorem Real.cos_add_int_mul_two_pi (x : ) (n : ) :
          (x + n * (2 * Real.pi)).cos = x.cos
          @[simp]
          theorem Real.cos_sub_nat_mul_two_pi (x : ) (n : ) :
          (x - n * (2 * Real.pi)).cos = x.cos
          @[simp]
          theorem Real.cos_sub_int_mul_two_pi (x : ) (n : ) :
          (x - n * (2 * Real.pi)).cos = x.cos
          @[simp]
          theorem Real.cos_nat_mul_two_pi_sub (x : ) (n : ) :
          (n * (2 * Real.pi) - x).cos = x.cos
          @[simp]
          theorem Real.cos_int_mul_two_pi_sub (x : ) (n : ) :
          (n * (2 * Real.pi) - x).cos = x.cos
          theorem Real.cos_add_int_mul_pi (x : ) (n : ) :
          (x + n * Real.pi).cos = (-1) ^ n * x.cos
          theorem Real.cos_add_nat_mul_pi (x : ) (n : ) :
          (x + n * Real.pi).cos = (-1) ^ n * x.cos
          theorem Real.cos_sub_int_mul_pi (x : ) (n : ) :
          (x - n * Real.pi).cos = (-1) ^ n * x.cos
          theorem Real.cos_sub_nat_mul_pi (x : ) (n : ) :
          (x - n * Real.pi).cos = (-1) ^ n * x.cos
          theorem Real.cos_int_mul_pi_sub (x : ) (n : ) :
          (n * Real.pi - x).cos = (-1) ^ n * x.cos
          theorem Real.cos_nat_mul_pi_sub (x : ) (n : ) :
          (n * Real.pi - x).cos = (-1) ^ n * x.cos
          theorem Real.cos_nat_mul_two_pi_add_pi (n : ) :
          (n * (2 * Real.pi) + Real.pi).cos = -1
          theorem Real.cos_int_mul_two_pi_add_pi (n : ) :
          (n * (2 * Real.pi) + Real.pi).cos = -1
          theorem Real.cos_nat_mul_two_pi_sub_pi (n : ) :
          (n * (2 * Real.pi) - Real.pi).cos = -1
          theorem Real.cos_int_mul_two_pi_sub_pi (n : ) :
          (n * (2 * Real.pi) - Real.pi).cos = -1
          theorem Real.sin_pos_of_pos_of_lt_pi {x : } (h0x : 0 < x) (hxp : x < Real.pi) :
          0 < x.sin
          theorem Real.sin_pos_of_mem_Ioo {x : } (hx : x Set.Ioo 0 Real.pi) :
          0 < x.sin
          theorem Real.sin_nonneg_of_mem_Icc {x : } (hx : x Set.Icc 0 Real.pi) :
          0 x.sin
          theorem Real.sin_nonneg_of_nonneg_of_le_pi {x : } (h0x : 0 x) (hxp : x Real.pi) :
          0 x.sin
          theorem Real.sin_neg_of_neg_of_neg_pi_lt {x : } (hx0 : x < 0) (hpx : -Real.pi < x) :
          x.sin < 0
          theorem Real.sin_nonpos_of_nonnpos_of_neg_pi_le {x : } (hx0 : x 0) (hpx : -Real.pi x) :
          x.sin 0
          @[simp]
          theorem Real.sin_pi_div_two :
          (Real.pi / 2).sin = 1
          theorem Real.sin_add_pi_div_two (x : ) :
          (x + Real.pi / 2).sin = x.cos
          theorem Real.sin_sub_pi_div_two (x : ) :
          (x - Real.pi / 2).sin = -x.cos
          theorem Real.sin_pi_div_two_sub (x : ) :
          (Real.pi / 2 - x).sin = x.cos
          theorem Real.cos_add_pi_div_two (x : ) :
          (x + Real.pi / 2).cos = -x.sin
          theorem Real.cos_sub_pi_div_two (x : ) :
          (x - Real.pi / 2).cos = x.sin
          theorem Real.cos_pi_div_two_sub (x : ) :
          (Real.pi / 2 - x).cos = x.sin
          theorem Real.cos_pos_of_mem_Ioo {x : } (hx : x Set.Ioo (-(Real.pi / 2)) (Real.pi / 2)) :
          0 < x.cos
          theorem Real.cos_nonneg_of_mem_Icc {x : } (hx : x Set.Icc (-(Real.pi / 2)) (Real.pi / 2)) :
          0 x.cos
          theorem Real.cos_nonneg_of_neg_pi_div_two_le_of_le {x : } (hl : -(Real.pi / 2) x) (hu : x Real.pi / 2) :
          0 x.cos
          theorem Real.cos_neg_of_pi_div_two_lt_of_lt {x : } (hx₁ : Real.pi / 2 < x) (hx₂ : x < Real.pi + Real.pi / 2) :
          x.cos < 0
          theorem Real.cos_nonpos_of_pi_div_two_le_of_le {x : } (hx₁ : Real.pi / 2 x) (hx₂ : x Real.pi + Real.pi / 2) :
          x.cos 0
          theorem Real.sin_eq_sqrt_one_sub_cos_sq {x : } (hl : 0 x) (hu : x Real.pi) :
          x.sin = (1 - x.cos ^ 2)
          theorem Real.cos_eq_sqrt_one_sub_sin_sq {x : } (hl : -(Real.pi / 2) x) (hu : x Real.pi / 2) :
          x.cos = (1 - x.sin ^ 2)
          theorem Real.cos_half {x : } (hl : -Real.pi x) (hr : x Real.pi) :
          (x / 2).cos = ((1 + x.cos) / 2)
          theorem Real.abs_sin_half (x : ) :
          |(x / 2).sin| = ((1 - x.cos) / 2)
          theorem Real.sin_half_eq_sqrt {x : } (hl : 0 x) (hr : x 2 * Real.pi) :
          (x / 2).sin = ((1 - x.cos) / 2)
          theorem Real.sin_half_eq_neg_sqrt {x : } (hl : -(2 * Real.pi) x) (hr : x 0) :
          (x / 2).sin = -((1 - x.cos) / 2)
          theorem Real.sin_eq_zero_iff_of_lt_of_lt {x : } (hx₁ : -Real.pi < x) (hx₂ : x < Real.pi) :
          x.sin = 0 x = 0
          theorem Real.sin_eq_zero_iff {x : } :
          x.sin = 0 ∃ (n : ), n * Real.pi = x
          theorem Real.sin_ne_zero_iff {x : } :
          x.sin 0 ∀ (n : ), n * Real.pi x
          theorem Real.sin_eq_zero_iff_cos_eq {x : } :
          x.sin = 0 x.cos = 1 x.cos = -1
          theorem Real.cos_eq_one_iff (x : ) :
          x.cos = 1 ∃ (n : ), n * (2 * Real.pi) = x
          theorem Real.cos_eq_one_iff_of_lt_of_lt {x : } (hx₁ : -(2 * Real.pi) < x) (hx₂ : x < 2 * Real.pi) :
          x.cos = 1 x = 0
          theorem Real.sin_lt_sin_of_lt_of_le_pi_div_two {x : } {y : } (hx₁ : -(Real.pi / 2) x) (hy₂ : y Real.pi / 2) (hxy : x < y) :
          x.sin < y.sin
          theorem Real.cos_lt_cos_of_nonneg_of_le_pi {x : } {y : } (hx₁ : 0 x) (hy₂ : y Real.pi) (hxy : x < y) :
          y.cos < x.cos
          theorem Real.cos_lt_cos_of_nonneg_of_le_pi_div_two {x : } {y : } (hx₁ : 0 x) (hy₂ : y Real.pi / 2) (hxy : x < y) :
          y.cos < x.cos
          theorem Real.cos_le_cos_of_nonneg_of_le_pi {x : } {y : } (hx₁ : 0 x) (hy₂ : y Real.pi) (hxy : x y) :
          y.cos x.cos
          theorem Real.sin_le_sin_of_le_of_le_pi_div_two {x : } {y : } (hx₁ : -(Real.pi / 2) x) (hy₂ : y Real.pi / 2) (hxy : x y) :
          x.sin y.sin
          theorem Real.sin_mem_Icc (x : ) :
          x.sin Set.Icc (-1) 1
          theorem Real.cos_mem_Icc (x : ) :
          x.cos Set.Icc (-1) 1
          noncomputable def Real.sqrtTwoAddSeries (x : ) :

          the series sqrtTwoAddSeries x n is sqrt(2 + sqrt(2 + ... )) with n square roots, starting with x. We define it here because cos (pi / 2 ^ (n+1)) = sqrtTwoAddSeries 0 n / 2

          Equations
          • x.sqrtTwoAddSeries 0 = x
          • x.sqrtTwoAddSeries n.succ = (2 + x.sqrtTwoAddSeries n)
          Instances For
            theorem Real.sqrtTwoAddSeries_zero (x : ) :
            x.sqrtTwoAddSeries 0 = x
            theorem Real.sqrtTwoAddSeries_nonneg {x : } (h : 0 x) (n : ) :
            0 x.sqrtTwoAddSeries n
            theorem Real.sqrtTwoAddSeries_succ (x : ) (n : ) :
            x.sqrtTwoAddSeries (n + 1) = ((2 + x)).sqrtTwoAddSeries n
            theorem Real.sqrtTwoAddSeries_monotone_left {x : } {y : } (h : x y) (n : ) :
            x.sqrtTwoAddSeries n y.sqrtTwoAddSeries n
            @[simp]
            theorem Real.cos_pi_over_two_pow (n : ) :
            (Real.pi / 2 ^ (n + 1)).cos = Real.sqrtTwoAddSeries 0 n / 2
            theorem Real.sin_sq_pi_over_two_pow (n : ) :
            (Real.pi / 2 ^ (n + 1)).sin ^ 2 = 1 - (Real.sqrtTwoAddSeries 0 n / 2) ^ 2
            theorem Real.sin_sq_pi_over_two_pow_succ (n : ) :
            (Real.pi / 2 ^ (n + 2)).sin ^ 2 = 1 / 2 - Real.sqrtTwoAddSeries 0 n / 4
            @[simp]
            theorem Real.sin_pi_over_two_pow_succ (n : ) :
            (Real.pi / 2 ^ (n + 2)).sin = (2 - Real.sqrtTwoAddSeries 0 n) / 2
            @[simp]
            theorem Real.cos_pi_div_four :
            (Real.pi / 4).cos = 2 / 2
            @[simp]
            theorem Real.sin_pi_div_four :
            (Real.pi / 4).sin = 2 / 2
            @[simp]
            theorem Real.cos_pi_div_eight :
            (Real.pi / 8).cos = (2 + 2) / 2
            @[simp]
            theorem Real.sin_pi_div_eight :
            (Real.pi / 8).sin = (2 - 2) / 2
            @[simp]
            theorem Real.cos_pi_div_sixteen :
            (Real.pi / 16).cos = (2 + (2 + 2)) / 2
            @[simp]
            theorem Real.sin_pi_div_sixteen :
            (Real.pi / 16).sin = (2 - (2 + 2)) / 2
            @[simp]
            theorem Real.cos_pi_div_thirty_two :
            (Real.pi / 32).cos = (2 + (2 + (2 + 2))) / 2
            @[simp]
            theorem Real.sin_pi_div_thirty_two :
            (Real.pi / 32).sin = (2 - (2 + (2 + 2))) / 2
            @[simp]
            theorem Real.cos_pi_div_three :
            (Real.pi / 3).cos = 1 / 2

            The cosine of π / 3 is 1 / 2.

            @[simp]
            theorem Real.cos_pi_div_six :
            (Real.pi / 6).cos = 3 / 2

            The cosine of π / 6 is √3 / 2.

            theorem Real.sq_cos_pi_div_six :
            (Real.pi / 6).cos ^ 2 = 3 / 4

            The square of the cosine of π / 6 is 3 / 4 (this is sometimes more convenient than the result for cosine itself).

            @[simp]
            theorem Real.sin_pi_div_six :
            (Real.pi / 6).sin = 1 / 2

            The sine of π / 6 is 1 / 2.

            theorem Real.sq_sin_pi_div_three :
            (Real.pi / 3).sin ^ 2 = 3 / 4

            The square of the sine of π / 3 is 3 / 4 (this is sometimes more convenient than the result for cosine itself).

            @[simp]
            theorem Real.sin_pi_div_three :
            (Real.pi / 3).sin = 3 / 2

            The sine of π / 3 is √3 / 2.

            def Real.sinOrderIso :
            (Set.Icc (-(Real.pi / 2)) (Real.pi / 2)) ≃o (Set.Icc (-1) 1)

            Real.sin as an OrderIso between [-(π / 2), π / 2] and [-1, 1].

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem Real.coe_sinOrderIso_apply (x : (Set.Icc (-(Real.pi / 2)) (Real.pi / 2))) :
              (Real.sinOrderIso x) = (x).sin
              theorem Real.sinOrderIso_apply (x : (Set.Icc (-(Real.pi / 2)) (Real.pi / 2))) :
              Real.sinOrderIso x = (x).sin,
              @[simp]
              theorem Real.tan_pi_div_four :
              (Real.pi / 4).tan = 1
              @[simp]
              theorem Real.tan_pi_div_two :
              (Real.pi / 2).tan = 0
              @[simp]
              theorem Real.tan_pi_div_six :
              (Real.pi / 6).tan = 1 / 3
              @[simp]
              theorem Real.tan_pi_div_three :
              (Real.pi / 3).tan = 3
              theorem Real.tan_pos_of_pos_of_lt_pi_div_two {x : } (h0x : 0 < x) (hxp : x < Real.pi / 2) :
              0 < x.tan
              theorem Real.tan_nonneg_of_nonneg_of_le_pi_div_two {x : } (h0x : 0 x) (hxp : x Real.pi / 2) :
              0 x.tan
              theorem Real.tan_neg_of_neg_of_pi_div_two_lt {x : } (hx0 : x < 0) (hpx : -(Real.pi / 2) < x) :
              x.tan < 0
              theorem Real.tan_nonpos_of_nonpos_of_neg_pi_div_two_le {x : } (hx0 : x 0) (hpx : -(Real.pi / 2) x) :
              x.tan 0
              theorem Real.tan_lt_tan_of_lt_of_lt_pi_div_two {x : } {y : } (hx₁ : -(Real.pi / 2) < x) (hy₂ : y < Real.pi / 2) (hxy : x < y) :
              x.tan < y.tan
              theorem Real.tan_lt_tan_of_nonneg_of_lt_pi_div_two {x : } {y : } (hx₁ : 0 x) (hy₂ : y < Real.pi / 2) (hxy : x < y) :
              x.tan < y.tan
              theorem Real.tan_inj_of_lt_of_lt_pi_div_two {x : } {y : } (hx₁ : -(Real.pi / 2) < x) (hx₂ : x < Real.pi / 2) (hy₁ : -(Real.pi / 2) < y) (hy₂ : y < Real.pi / 2) (hxy : x.tan = y.tan) :
              x = y
              @[simp]
              theorem Real.tan_pi :
              Real.pi.tan = 0
              theorem Real.tan_add_pi (x : ) :
              (x + Real.pi).tan = x.tan
              theorem Real.tan_sub_pi (x : ) :
              (x - Real.pi).tan = x.tan
              theorem Real.tan_pi_sub (x : ) :
              (Real.pi - x).tan = -x.tan
              theorem Real.tan_pi_div_two_sub (x : ) :
              (Real.pi / 2 - x).tan = x.tan⁻¹
              theorem Real.tan_nat_mul_pi (n : ) :
              (n * Real.pi).tan = 0
              theorem Real.tan_int_mul_pi (n : ) :
              (n * Real.pi).tan = 0
              theorem Real.tan_add_nat_mul_pi (x : ) (n : ) :
              (x + n * Real.pi).tan = x.tan
              theorem Real.tan_add_int_mul_pi (x : ) (n : ) :
              (x + n * Real.pi).tan = x.tan
              theorem Real.tan_sub_nat_mul_pi (x : ) (n : ) :
              (x - n * Real.pi).tan = x.tan
              theorem Real.tan_sub_int_mul_pi (x : ) (n : ) :
              (x - n * Real.pi).tan = x.tan
              theorem Real.tan_nat_mul_pi_sub (x : ) (n : ) :
              (n * Real.pi - x).tan = -x.tan
              theorem Real.tan_int_mul_pi_sub (x : ) (n : ) :
              (n * Real.pi - x).tan = -x.tan
              theorem Complex.sin_eq_zero_iff_cos_eq {z : } :
              z.sin = 0 z.cos = 1 z.cos = -1
              @[simp]
              theorem Complex.cos_pi_div_two :
              (Real.pi / 2).cos = 0
              @[simp]
              theorem Complex.sin_pi_div_two :
              (Real.pi / 2).sin = 1
              @[simp]
              theorem Complex.sin_pi :
              (Real.pi).sin = 0
              @[simp]
              theorem Complex.cos_pi :
              (Real.pi).cos = -1
              @[simp]
              theorem Complex.sin_two_pi :
              (2 * Real.pi).sin = 0
              @[simp]
              theorem Complex.cos_two_pi :
              (2 * Real.pi).cos = 1
              theorem Complex.sin_add_pi (x : ) :
              (x + Real.pi).sin = -x.sin
              theorem Complex.sin_add_two_pi (x : ) :
              (x + 2 * Real.pi).sin = x.sin
              theorem Complex.sin_sub_pi (x : ) :
              (x - Real.pi).sin = -x.sin
              theorem Complex.sin_sub_two_pi (x : ) :
              (x - 2 * Real.pi).sin = x.sin
              theorem Complex.sin_pi_sub (x : ) :
              (Real.pi - x).sin = x.sin
              theorem Complex.sin_two_pi_sub (x : ) :
              (2 * Real.pi - x).sin = -x.sin
              theorem Complex.sin_nat_mul_pi (n : ) :
              (n * Real.pi).sin = 0
              theorem Complex.sin_int_mul_pi (n : ) :
              (n * Real.pi).sin = 0
              theorem Complex.sin_add_nat_mul_two_pi (x : ) (n : ) :
              (x + n * (2 * Real.pi)).sin = x.sin
              theorem Complex.sin_add_int_mul_two_pi (x : ) (n : ) :
              (x + n * (2 * Real.pi)).sin = x.sin
              theorem Complex.sin_sub_nat_mul_two_pi (x : ) (n : ) :
              (x - n * (2 * Real.pi)).sin = x.sin
              theorem Complex.sin_sub_int_mul_two_pi (x : ) (n : ) :
              (x - n * (2 * Real.pi)).sin = x.sin
              theorem Complex.sin_nat_mul_two_pi_sub (x : ) (n : ) :
              (n * (2 * Real.pi) - x).sin = -x.sin
              theorem Complex.sin_int_mul_two_pi_sub (x : ) (n : ) :
              (n * (2 * Real.pi) - x).sin = -x.sin
              theorem Complex.cos_add_pi (x : ) :
              (x + Real.pi).cos = -x.cos
              theorem Complex.cos_add_two_pi (x : ) :
              (x + 2 * Real.pi).cos = x.cos
              theorem Complex.cos_sub_pi (x : ) :
              (x - Real.pi).cos = -x.cos
              theorem Complex.cos_sub_two_pi (x : ) :
              (x - 2 * Real.pi).cos = x.cos
              theorem Complex.cos_pi_sub (x : ) :
              (Real.pi - x).cos = -x.cos
              theorem Complex.cos_two_pi_sub (x : ) :
              (2 * Real.pi - x).cos = x.cos
              theorem Complex.cos_nat_mul_two_pi (n : ) :
              (n * (2 * Real.pi)).cos = 1
              theorem Complex.cos_int_mul_two_pi (n : ) :
              (n * (2 * Real.pi)).cos = 1
              theorem Complex.cos_add_nat_mul_two_pi (x : ) (n : ) :
              (x + n * (2 * Real.pi)).cos = x.cos
              theorem Complex.cos_add_int_mul_two_pi (x : ) (n : ) :
              (x + n * (2 * Real.pi)).cos = x.cos
              theorem Complex.cos_sub_nat_mul_two_pi (x : ) (n : ) :
              (x - n * (2 * Real.pi)).cos = x.cos
              theorem Complex.cos_sub_int_mul_two_pi (x : ) (n : ) :
              (x - n * (2 * Real.pi)).cos = x.cos
              theorem Complex.cos_nat_mul_two_pi_sub (x : ) (n : ) :
              (n * (2 * Real.pi) - x).cos = x.cos
              theorem Complex.cos_int_mul_two_pi_sub (x : ) (n : ) :
              (n * (2 * Real.pi) - x).cos = x.cos
              theorem Complex.cos_nat_mul_two_pi_add_pi (n : ) :
              (n * (2 * Real.pi) + Real.pi).cos = -1
              theorem Complex.cos_int_mul_two_pi_add_pi (n : ) :
              (n * (2 * Real.pi) + Real.pi).cos = -1
              theorem Complex.cos_nat_mul_two_pi_sub_pi (n : ) :
              (n * (2 * Real.pi) - Real.pi).cos = -1
              theorem Complex.cos_int_mul_two_pi_sub_pi (n : ) :
              (n * (2 * Real.pi) - Real.pi).cos = -1
              theorem Complex.sin_add_pi_div_two (x : ) :
              (x + Real.pi / 2).sin = x.cos
              theorem Complex.sin_sub_pi_div_two (x : ) :
              (x - Real.pi / 2).sin = -x.cos
              theorem Complex.sin_pi_div_two_sub (x : ) :
              (Real.pi / 2 - x).sin = x.cos
              theorem Complex.cos_add_pi_div_two (x : ) :
              (x + Real.pi / 2).cos = -x.sin
              theorem Complex.cos_sub_pi_div_two (x : ) :
              (x - Real.pi / 2).cos = x.sin
              theorem Complex.cos_pi_div_two_sub (x : ) :
              (Real.pi / 2 - x).cos = x.sin
              theorem Complex.tan_add_pi (x : ) :
              (x + Real.pi).tan = x.tan
              theorem Complex.tan_sub_pi (x : ) :
              (x - Real.pi).tan = x.tan
              theorem Complex.tan_pi_sub (x : ) :
              (Real.pi - x).tan = -x.tan
              theorem Complex.tan_pi_div_two_sub (x : ) :
              (Real.pi / 2 - x).tan = x.tan⁻¹
              theorem Complex.tan_nat_mul_pi (n : ) :
              (n * Real.pi).tan = 0
              theorem Complex.tan_int_mul_pi (n : ) :
              (n * Real.pi).tan = 0
              theorem Complex.tan_add_nat_mul_pi (x : ) (n : ) :
              (x + n * Real.pi).tan = x.tan
              theorem Complex.tan_add_int_mul_pi (x : ) (n : ) :
              (x + n * Real.pi).tan = x.tan
              theorem Complex.tan_sub_nat_mul_pi (x : ) (n : ) :
              (x - n * Real.pi).tan = x.tan
              theorem Complex.tan_sub_int_mul_pi (x : ) (n : ) :
              (x - n * Real.pi).tan = x.tan
              theorem Complex.tan_nat_mul_pi_sub (x : ) (n : ) :
              (n * Real.pi - x).tan = -x.tan
              theorem Complex.tan_int_mul_pi_sub (x : ) (n : ) :
              (n * Real.pi - x).tan = -x.tan
              @[simp]
              @[simp]
              @[simp]
              theorem Complex.exp_nat_mul_two_pi_mul_I (n : ) :
              (n * (2 * Real.pi * Complex.I)).exp = 1
              @[simp]
              theorem Complex.exp_int_mul_two_pi_mul_I (n : ) :
              (n * (2 * Real.pi * Complex.I)).exp = 1
              @[simp]
              theorem Complex.exp_add_pi_mul_I (z : ) :
              (z + Real.pi * Complex.I).exp = -z.exp
              @[simp]
              theorem Complex.exp_sub_pi_mul_I (z : ) :
              (z - Real.pi * Complex.I).exp = -z.exp
              theorem Complex.abs_exp_mul_exp_add_exp_neg_le_of_abs_im_le {a : } {b : } (ha : a 0) {z : } (hz : |z.im| b) (hb : b Real.pi / 2) :
              Complex.abs (a * (z.exp + (-z).exp)).exp (a * b.cos * |z.re|.exp).exp

              A supporting lemma for the Phragmen-Lindelöf principle in a horizontal strip. If z : ℂ belongs to a horizontal strip |Complex.im z| ≤ b, b ≤ π / 2, and a ≤ 0, then $$\left|exp^{a\left(e^{z}+e^{-z}\right)}\right| \le e^{a\cos b \exp^{|re z|}}.$$