Documentation

LeanPool.IsTranscendentalPi.ComplexExponential

The complex exponential and subset sums #

Properties of t ↦ exp(-(t · x)) and the expansion of ∏ (1 + exp x) over a multiset of roots into zero- and nonzero-sum subset contributions, the analytic heart of Niven's proof of the transcendence of π.

For x ∈ ℂ, one has exp(x) * exp(-x) = 1.

theorem continuousWithinAt_exp_neg_mul (x : ) (t : ) :
ContinuousWithinAt (fun (t : ) => Complex.exp (-(t * x))) (Set.uIcc 0 1) t

For x ∈ ℂ, the map t ↦ exp(-(t * x)) is continuous on [0, 1] at t.

theorem deriv_exp_neg_mul_real (x : ) (t : ) :
deriv (fun (t : ) => Complex.exp (-(t * x))) t = -x * Complex.exp (-(t * x))

For t ∈ ℝ and x ∈ ℂ, it holds that d/dt exp(-(t * x)) = -x * exp(-(t * x)).

For a ∈ ℂ and t ∈ [0, 1], one has ‖exp(-(t * a))‖ ≤ exp(‖a‖).

theorem prod_one_add_cexp_aroots_eq_zero (P : Polynomial ) (hP : P 0) (hroot : (Polynomial.aeval (Real.pi * Complex.I)) P = 0) :
(Multiset.map (fun (x : ) => 1 + Complex.exp x) (P.aroots )).prod = 0

If P(π i) = 0 and P ≠ 0, then ∏_{x ∈ roots(P)} (1 + e^x) = 0.

noncomputable def cexpMultisetSum :

The map t ↦ e^(∑_{x ∈ t} x) on multisets of complex numbers.

Equations
Instances For
    noncomputable def zeroSumPowerset (s : Multiset ) :

    The submultisets t ⊆ s with ∑_{x ∈ t} x = 0.

    Equations
    Instances For
      noncomputable def nonZeroSumPowerset (s : Multiset ) :

      The submultisets t ⊆ s with ∑_{x ∈ t} x ≠ 0.

      Equations
      Instances For

        The sum ∑_{t ⊆ s} e^(∑_{x ∈ t} x) splits into the zero-sum and nonzero-sum parts.

        The product ∏_{x ∈ s} (1 + e^x) equals to ∑_{t ⊆ s, ∑_{y ∈ t} y = 0} e^(∑_{y ∈ t} y) + ∑_{t ⊆ s, ∑_{y ∈ t} y ≠ 0} e^(∑_{y ∈ t} y).

        def subsetSums {α : Type u_1} [AddCommMonoid α] (s : Multiset α) :

        The multiset of all subset sums of s, i.e. { ∑_{x ∈ t} x | t ⊆ s }.

        Equations
        Instances For
          def nonzeroSubsetSums {α : Type u_1} [AddCommMonoid α] [DecidableEq α] (s : Multiset α) :

          The multiset of all nonzero subset sums of s, i.e. { ∑_{x ∈ t} x ≠ 0 | t ⊆ s }.

          Equations
          Instances For
            theorem ne_zero_of_mem_nonzeroSubsetSums {α : Type u_1} [AddCommMonoid α] [DecidableEq α] {s : Multiset α} {x : α} (hx : x nonzeroSubsetSums s) :
            x 0

            Every element of { ∑_{x ∈ t} x ≠ 0 | t ⊆ s } is nonzero.

            theorem mem_nonzeroSubsetSums_of_mem_of_ne_zero {α : Type u_1} [AddCommMonoid α] [DecidableEq α] {s : Multiset α} {x : α} (hx : x s) (hx0 : x 0) :

            If x ∈ s and x ≠ 0, then x ∈ { ∑_{x ∈ t} x ≠ 0 | t ⊆ s }.

            If t ⊆ s and ∑_{x ∈ t} x = 0, then e^(∑_{x ∈ t} x) = 1.

            Applying t ↦ e^(∑_{x ∈ t} x) to all t ⊆ s with ∑_{x ∈ t} x = 0 gives only 1s.

            The sum ∑_{t ⊆ s, ∑_{x ∈ t} x = 0} e^(∑_{x ∈ t} x) equals #{t ⊆ s | ∑_{x ∈ t} x = 0}.

            If B(π i) = 0 and roots(B) is the multiset of roots of B, then ∑_{t ⊆ roots(B), ∑_{x ∈ t} x ≠ 0} e^(∑_{x ∈ t} x) = -#{t ⊆ roots(B) | ∑_{x ∈ t} x = 0}.

            theorem continuousOn_exp_neg_mul_iteratedDeriv_sub (f : ) (x : ) (n : ) (hderiv : kn, tSet.uIcc 0 1, DifferentiableAt (iteratedDeriv k f) (t * x)) :
            ContinuousOn (fun (t : ) => x * Complex.exp (-(t * x)) * (iteratedDeriv n f (t * x) - f (t * x))) (Set.uIcc 0 1)

            If f⁽ᵏ⁾ is differentiable at t * x for every k ≤ n and every t ∈ [0, 1], then t ↦ exp(-t * x) * ( f⁽ⁿ⁾(t * x) - f(t * x) ) is continuous on [0, 1].

            theorem differentiableAt_exp_neg_mul_sum_iteratedDeriv (f : ) (x : ) (n : ) (t : ) (hderiv : kn, DifferentiableAt (iteratedDeriv k f) (t * x)) :
            DifferentiableAt (fun (t : ) => Complex.exp (-(t * x)) * kFinset.range (n + 1), iteratedDeriv k f (t * x)) t

            If f⁽ᵏ⁾ is differentiable at t x for every k ≤ n, then t ↦ exp(-t * x) * ∑ₖ₌₀ⁿ⁺¹ f⁽ᵏ⁾(t * x) is differentiable at t.

            theorem deriv_exp_neg_mul_sum_iteratedDeriv (f : ) (x : ) (n : ) (t : ) (hderiv : kn, DifferentiableAt (iteratedDeriv k f) (t * x)) :
            deriv (fun (t : ) => Complex.exp (-(t * x)) * kFinset.range (n + 1), iteratedDeriv k f (t * x)) t = x * Complex.exp (-(t * x)) * (iteratedDeriv (n + 1) f (t * x) - f (t * x))

            If f⁽ᵏ⁾ is differentiable at t x for every k ≤ n, then with hasDeriv we have d/dt (exp(-t * x) * ∑ₖ₌₀ⁿ⁺¹ f⁽ᵏ⁾(t * x)) = x * exp(- t * x) * (f⁽ⁿ⁺¹⁾(t * x) - f(t * x)).

            theorem hasDerivAt_exp_neg_mul_sum_iteratedDeriv (f : ) (x : ) (n : ) (t : ) (hderiv : kn, DifferentiableAt (iteratedDeriv k f) (t * x)) :
            HasDerivAt (fun (t : ) => Complex.exp (-(t * x)) * kFinset.range (n + 1), iteratedDeriv k f (t * x)) (x * Complex.exp (-(t * x)) * (iteratedDeriv (n + 1) f (t * x) - f (t * x))) t

            If f⁽ᵏ⁾ is differentiable at t x for every k ≤ n, then with deriv we have d/dt (exp(-t * x) * ∑ₖ₌₀ⁿ⁺¹ f⁽ᵏ⁾(t * x)) = x * exp(- t * x) * (f⁽ⁿ⁺¹⁾(t * x) - f(t * x)).

            theorem int_exp_neg_mul_fun (f : ) (x : ) (n : ) (hderiv : kn + 1, tSet.uIcc 0 1, DifferentiableAt (iteratedDeriv k f) (t * x)) :
            (t : ) in 0..1, (fun (t : ) => x * Complex.exp (-(t * x)) * (iteratedDeriv (n + 1) f (t * x) - f (t * x))) t = Complex.exp (-x) * kFinset.range (n + 1), iteratedDeriv k f x - kFinset.range (n + 1), iteratedDeriv k f 0

            If f⁽ᵏ⁾ is differentiable at t x for every k ≤ n + 1 and every t ∈ [0, 1], then ∫₀¹ x * exp(-t x) * (f⁽ⁿ⁺¹⁾(t x) - f(t x)) dt = exp(- x) * ∑ₖ₌₀ⁿ f⁽ᵏ⁾(x) - ∑ₖ₌₀ⁿ f⁽ᵏ⁾(0).

            theorem sum_weighted_cexp_nonzeroSubsetSums_eq_neg_count_zero_subsetSums {n : } (B : Polynomial ) (hB : B 0) (hroot : (Polynomial.aeval (Real.pi * Complex.I)) B = 0) (a : Fin n) (ha : nonzeroSubsetSums (B.aroots ) = valuesFin a) (b : Fin n) (hb : ∀ (i : Fin n), b i = 1) (k : ) (hk : k = Multiset.count 0 (subsetSums (B.aroots ))) :
            i : Fin n, b i * Complex.exp (a i) = -k

            If a₀, …, aₙ₋₁ enumerate the nonzero subset sums of the roots of B and bᵢ = 1 for all i, then ∑ᵢ bᵢ exp(aᵢ) = -k.