Documentation

Mathlib.NumberTheory.BernoulliPolynomials

Bernoulli polynomials #

The Bernoulli polynomials are an important tool obtained from Bernoulli numbers.

Mathematical overview #

The $n$-th Bernoulli polynomial is defined as $$ B_n(X) = โˆ‘_{k = 0}^n {n \choose k} (-1)^k B_k X^{n - k} $$ where $B_k$ is the $k$-th Bernoulli number. The Bernoulli polynomials are generating functions, $$ \frac{t e^{tX} }{ e^t - 1} = โˆ‘_{n = 0}^{\infty} B_n(X) \frac{t^n}{n!} $$

Implementation detail #

Bernoulli polynomials are defined using bernoulli, the Bernoulli numbers.

Main theorems #

noncomputable def Polynomial.bernoulli (n : โ„•) :
Polynomial โ„š

The Bernoulli polynomials are defined in terms of the negative Bernoulli numbers.

Instances For
    theorem Polynomial.bernoulli_def (n : โ„•) :
    bernoulli n = โˆ‘ i โˆˆ Finset.range (n + 1), (monomial i) (_root_.bernoulli (n - i) * โ†‘(n.choose i))
    theorem Polynomial.coeff_bernoulli (n i : โ„•) :
    (bernoulli n).coeff i = if i โ‰ค n then _root_.bernoulli (n - i) * โ†‘(n.choose i) else 0
    @[simp]
    theorem Polynomial.sum_bernoulli (n : โ„•) :
    โˆ‘ k โˆˆ Finset.range (n + 1), โ†‘((n + 1).choose k) โ€ข bernoulli k = (monomial n) (โ†‘n + 1)
    theorem Polynomial.bernoulli_eq_sub_sum (n : โ„•) :
    (n + 1) โ€ข bernoulli n = (n + 1) โ€ข X ^ n - โˆ‘ k โˆˆ Finset.range n, (n + 1).choose k โ€ข bernoulli k

    Another version of Polynomial.sum_bernoulli.

    theorem Polynomial.sum_range_pow_eq_bernoulli_sub (n p : โ„•) :
    (โ†‘p + 1) * โˆ‘ k โˆˆ Finset.range n, โ†‘k ^ p = eval (โ†‘n) (bernoulli p.succ) - _root_.bernoulli p.succ

    Another version of sum_range_pow.

    theorem Polynomial.bernoulli_succ_eval (n p : โ„•) :
    eval (โ†‘n) (bernoulli p.succ) = _root_.bernoulli p.succ + (โ†‘p + 1) * โˆ‘ k โˆˆ Finset.range n, โ†‘k ^ p

    Rearrangement of Polynomial.sum_range_pow_eq_bernoulli_sub.

    theorem Polynomial.bernoulli_comp_one_add_X (n : โ„•) :
    (bernoulli n).comp (1 + X) = bernoulli n + n โ€ข X ^ (n - 1)
    theorem Polynomial.bernoulli_eval_one_add (n : โ„•) (x : โ„š) :
    eval (1 + x) (bernoulli n) = eval x (bernoulli n) + โ†‘n * x ^ (n - 1)
    theorem Polynomial.bernoulli_comp_neg_X (n : โ„•) :
    (bernoulli n).comp (-X) = (-1) ^ n โ€ข (bernoulli n + n โ€ข X ^ (n - 1))
    theorem Polynomial.bernoulli_eval_neg (n : โ„•) (x : โ„š) :
    eval (-x) (bernoulli n) = (-1) ^ n * (eval x (bernoulli n) + โ†‘n * x ^ (n - 1))
    theorem Polynomial.bernoulli_eval_one_sub (n : โ„•) (x : โ„š) :
    eval (1 - x) (bernoulli n) = (-1) ^ n * eval x (bernoulli n)
    theorem Polynomial.bernoulli_generating_function {A : Type u_1} [CommRing A] [Algebra โ„š A] (t : A) :
    (PowerSeries.mk fun (n : โ„•) => (aeval t) ((1 / โ†‘n.factorial) โ€ข bernoulli n)) * (PowerSeries.exp A - 1) = PowerSeries.X * (PowerSeries.rescale t) (PowerSeries.exp A)

    The theorem that $(e^X - 1) * โˆ‘ Bโ‚™(t)* X^n/n! = Xe^{tX}$