Documentation

Mathlib.Analysis.SpecialFunctions.Pow.Complex

Power function on โ„‚ #

We construct the power functions x ^ y, where x and y are complex numbers.

noncomputable def Complex.cpow (x y : โ„‚) :

The complex power function x ^ y, given by x ^ y = exp(y log x) (where log is the principal determination of the logarithm), unless x = 0 where one sets 0 ^ 0 = 1 and 0 ^ y = 0 for y โ‰  0.

Instances For
    @[implicit_reducible]
    noncomputable instance Complex.instPow :
    @[simp]
    theorem Complex.cpow_eq_pow (x y : โ„‚) :
    x.cpow y = x ^ y
    theorem Complex.cpow_def (x y : โ„‚) :
    x ^ y = if x = 0 then if y = 0 then 1 else 0 else exp (log x * y)
    theorem Complex.cpow_def_of_ne_zero {x : โ„‚} (hx : x โ‰  0) (y : โ„‚) :
    x ^ y = exp (log x * y)
    @[simp]
    theorem Complex.cpow_zero (x : โ„‚) :
    x ^ 0 = 1
    @[simp]
    theorem Complex.cpow_eq_zero_iff (x y : โ„‚) :
    x ^ y = 0 โ†” x = 0 โˆง y โ‰  0
    theorem Complex.cpow_ne_zero_iff {x y : โ„‚} :
    x ^ y โ‰  0 โ†” x โ‰  0 โˆจ y = 0
    theorem Complex.cpow_ne_zero_iff_of_exponent_ne_zero {x y : โ„‚} (hy : y โ‰  0) :
    x ^ y โ‰  0 โ†” x โ‰  0
    @[simp]
    theorem Complex.zero_cpow {x : โ„‚} (h : x โ‰  0) :
    0 ^ x = 0
    theorem Complex.zero_cpow_eq_iff {x a : โ„‚} :
    0 ^ x = a โ†” x โ‰  0 โˆง a = 0 โˆจ x = 0 โˆง a = 1
    theorem Complex.eq_zero_cpow_iff {x a : โ„‚} :
    a = 0 ^ x โ†” x โ‰  0 โˆง a = 0 โˆจ x = 0 โˆง a = 1
    @[simp]
    theorem Complex.cpow_one (x : โ„‚) :
    x ^ 1 = x
    @[simp]
    theorem Complex.one_cpow (x : โ„‚) :
    1 ^ x = 1
    theorem Complex.cpow_add {x : โ„‚} (y z : โ„‚) (hx : x โ‰  0) :
    x ^ (y + z) = x ^ y * x ^ z
    theorem Complex.cpow_mul {x y : โ„‚} (z : โ„‚) (hโ‚ : -Real.pi < (log x * y).im) (hโ‚‚ : (log x * y).im โ‰ค Real.pi) :
    x ^ (y * z) = (x ^ y) ^ z
    theorem Complex.cpow_sub {x : โ„‚} (y z : โ„‚) (hx : x โ‰  0) :
    x ^ (y - z) = x ^ y / x ^ z
    theorem Complex.cpow_int_mul (x : โ„‚) (n : โ„ค) (y : โ„‚) :
    x ^ (โ†‘n * y) = (x ^ y) ^ n

    See also Complex.cpow_int_mul'.

    theorem Complex.cpow_mul_int (x y : โ„‚) (n : โ„ค) :
    x ^ (y * โ†‘n) = (x ^ y) ^ n
    theorem Complex.cpow_nat_mul (x : โ„‚) (n : โ„•) (y : โ„‚) :
    x ^ (โ†‘n * y) = (x ^ y) ^ n
    theorem Complex.cpow_ofNat_mul (x : โ„‚) (n : โ„•) [n.AtLeastTwo] (y : โ„‚) :
    x ^ (OfNat.ofNat n * y) = (x ^ y) ^ OfNat.ofNat n
    theorem Complex.cpow_mul_nat (x y : โ„‚) (n : โ„•) :
    x ^ (y * โ†‘n) = (x ^ y) ^ n
    theorem Complex.cpow_mul_ofNat (x y : โ„‚) (n : โ„•) [n.AtLeastTwo] :
    x ^ (y * OfNat.ofNat n) = (x ^ y) ^ OfNat.ofNat n
    @[simp]
    theorem Complex.cpow_natCast (x : โ„‚) (n : โ„•) :
    x ^ โ†‘n = x ^ n
    @[simp]
    theorem Complex.cpow_ofNat (x : โ„‚) (n : โ„•) [n.AtLeastTwo] :
    x ^ OfNat.ofNat n = x ^ OfNat.ofNat n
    theorem Complex.cpow_two (x : โ„‚) :
    x ^ 2 = x ^ 2
    @[simp]
    theorem Complex.cpow_intCast (x : โ„‚) (n : โ„ค) :
    x ^ โ†‘n = x ^ n
    @[simp]
    theorem Complex.cpow_nat_inv_pow (x : โ„‚) {n : โ„•} (hn : n โ‰  0) :
    (x ^ (โ†‘n)โปยน) ^ n = x
    @[simp]
    theorem Complex.cpow_ofNat_inv_pow (x : โ„‚) (n : โ„•) [n.AtLeastTwo] :
    (x ^ (OfNat.ofNat n)โปยน) ^ OfNat.ofNat n = x
    theorem Complex.cpow_int_mul' {x : โ„‚} {n : โ„ค} (hlt : -Real.pi < โ†‘n * x.arg) (hle : โ†‘n * x.arg โ‰ค Real.pi) (y : โ„‚) :
    x ^ (โ†‘n * y) = (x ^ n) ^ y

    A version of Complex.cpow_int_mul with RHS that matches Complex.cpow_mul.

    The assumptions on the arguments are needed because the equality fails, e.g., for x = -I, n = 2, y = 1/2.

    theorem Complex.cpow_nat_mul' {x : โ„‚} {n : โ„•} (hlt : -Real.pi < โ†‘n * x.arg) (hle : โ†‘n * x.arg โ‰ค Real.pi) (y : โ„‚) :
    x ^ (โ†‘n * y) = (x ^ n) ^ y

    A version of Complex.cpow_nat_mul with RHS that matches Complex.cpow_mul.

    The assumptions on the arguments are needed because the equality fails, e.g., for x = -I, n = 2, y = 1/2.

    theorem Complex.cpow_ofNat_mul' {x : โ„‚} {n : โ„•} [n.AtLeastTwo] (hlt : -Real.pi < OfNat.ofNat n * x.arg) (hle : OfNat.ofNat n * x.arg โ‰ค Real.pi) (y : โ„‚) :
    x ^ (OfNat.ofNat n * y) = (x ^ OfNat.ofNat n) ^ y
    theorem Complex.pow_cpow_nat_inv {x : โ„‚} {n : โ„•} (hโ‚€ : n โ‰  0) (hlt : -(Real.pi / โ†‘n) < x.arg) (hle : x.arg โ‰ค Real.pi / โ†‘n) :
    (x ^ n) ^ (โ†‘n)โปยน = x
    theorem Complex.pow_cpow_ofNat_inv {x : โ„‚} {n : โ„•} [n.AtLeastTwo] (hlt : -(Real.pi / OfNat.ofNat n) < x.arg) (hle : x.arg โ‰ค Real.pi / OfNat.ofNat n) :
    (x ^ OfNat.ofNat n) ^ (OfNat.ofNat n)โปยน = x
    theorem Complex.sq_cpow_two_inv {x : โ„‚} (hx : 0 < x.re) :
    (x ^ 2) ^ 2โปยน = x

    See also Complex.pow_cpow_ofNat_inv for a version that also works for x * I, 0 โ‰ค x.

    theorem Complex.mul_cpow_ofReal_nonneg {a b : โ„} (ha : 0 โ‰ค a) (hb : 0 โ‰ค b) (r : โ„‚) :
    (โ†‘a * โ†‘b) ^ r = โ†‘a ^ r * โ†‘b ^ r
    theorem Complex.natCast_mul_natCast_cpow (m n : โ„•) (s : โ„‚) :
    (โ†‘m * โ†‘n) ^ s = โ†‘m ^ s * โ†‘n ^ s
    theorem Complex.natCast_cpow_natCast_mul (n m : โ„•) (z : โ„‚) :
    โ†‘n ^ (โ†‘m * z) = (โ†‘n ^ m) ^ z
    theorem Complex.natCast_add_one_cpow_ne_zero (n : โ„•) (z : โ„‚) :
    (โ†‘n + 1) ^ z โ‰  0