Documentation

Mathlib.RingTheory.PowerSeries.WellKnown

Definition of well-known power series #

In this file we define the following power series:

def PowerSeries.invUnitsSub {R : Type u_1} [Ring R] (u : Rˣ) :

The power series for 1 / (u - x).

Equations
@[simp]
theorem PowerSeries.coeff_invUnitsSub {R : Type u_1} [Ring R] (u : Rˣ) (n : ) :
(coeff R n) (invUnitsSub u) = 1 /ₚ u ^ (n + 1)
@[simp]
@[simp]
theorem PowerSeries.invUnitsSub_mul_X {R : Type u_1} [Ring R] (u : Rˣ) :
invUnitsSub u * X = invUnitsSub u * (C R) u - 1
@[simp]
theorem PowerSeries.invUnitsSub_mul_sub {R : Type u_1} [Ring R] (u : Rˣ) :
invUnitsSub u * ((C R) u - X) = 1
theorem PowerSeries.map_invUnitsSub {R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (f : R →+* S) (u : Rˣ) :
theorem PowerSeries.mk_one_mul_one_sub_eq_one (S : Type u_1) [CommRing S] :
mk 1 * (1 - X) = 1

(1 + X + X^2 + ...) * (1 - X) = 1.

Note that the power series 1 + X + X^2 + ... is written as mk 1 where 1 is the constant function so that mk 1 is the power series with all coefficients equal to one.

theorem PowerSeries.mk_one_pow_eq_mk_choose_add (S : Type u_1) [CommRing S] (d : ) :
mk 1 ^ (d + 1) = mk fun (n : ) => ((d + n).choose d)

Note that mk 1 is the constant function 1 so the power series 1 + X + X^2 + .... This theorem states that for any d : ℕ, (1 + X + X^2 + ... : S⟦X⟧) ^ (d + 1) is equal to the power series mk fun n => Nat.choose (d + n) d : S⟦X⟧.

noncomputable def PowerSeries.invOneSubPow (S : Type u_1) [CommRing S] :

Given a natural number d : ℕ and a commutative ring S, PowerSeries.invOneSubPow S d is the multiplicative inverse of (1 - X) ^ d in S⟦X⟧ˣ. When d is 0, PowerSeries.invOneSubPow S d will just be 1. When d is positive, PowerSeries.invOneSubPow S d will be the power series mk fun n => Nat.choose (d - 1 + n) (d - 1).

Equations
theorem PowerSeries.invOneSubPow_val_eq_mk_sub_one_add_choose_of_pos (S : Type u_1) [CommRing S] (d : ) (h : 0 < d) :
(invOneSubPow S d) = mk fun (n : ) => ((d - 1 + n).choose (d - 1))
theorem PowerSeries.invOneSubPow_val_succ_eq_mk_add_choose (S : Type u_1) [CommRing S] (d : ) :
(invOneSubPow S (d + 1)) = mk fun (n : ) => ((d + n).choose d)

The theorem PowerSeries.mk_one_mul_one_sub_eq_one implies that 1 - X is a unit in S⟦X⟧ whose inverse is the power series 1 + X + X^2 + .... This theorem states that for any d : ℕ, PowerSeries.invOneSubPow S d is equal to (1 - X)⁻¹ ^ d.

theorem PowerSeries.mk_add_choose_mul_one_sub_pow_eq_one (S : Type u_1) [CommRing S] (d : ) :
(mk fun (n : ) => ((d + n).choose d)) * (1 - X) ^ (d + 1) = 1
def PowerSeries.exp (A : Type u_1) [Ring A] [Algebra A] :

Power series for the exponential function at zero.

Equations
def PowerSeries.sin (A : Type u_1) [Ring A] [Algebra A] :

Power series for the sine function at zero.

Equations
def PowerSeries.cos (A : Type u_1) [Ring A] [Algebra A] :

Power series for the cosine function at zero.

Equations
@[simp]
theorem PowerSeries.coeff_exp {A : Type u_1} [Ring A] [Algebra A] (n : ) :
(coeff A n) (exp A) = (algebraMap A) (1 / n.factorial)
@[simp]
theorem PowerSeries.constantCoeff_exp {A : Type u_1} [Ring A] [Algebra A] :
(constantCoeff A) (exp A) = 1
@[simp]
theorem PowerSeries.map_exp {A : Type u_1} {A' : Type u_2} [Ring A] [Ring A'] [Algebra A] [Algebra A'] (f : A →+* A') :
(map f) (exp A) = exp A'
@[simp]
theorem PowerSeries.map_sin {A : Type u_1} {A' : Type u_2} [Ring A] [Ring A'] [Algebra A] [Algebra A'] (f : A →+* A') :
(map f) (sin A) = sin A'
@[simp]
theorem PowerSeries.map_cos {A : Type u_1} {A' : Type u_2} [Ring A] [Ring A'] [Algebra A] [Algebra A'] (f : A →+* A') :
(map f) (cos A) = cos A'
theorem PowerSeries.exp_mul_exp_eq_exp_add {A : Type u_1} [CommRing A] [Algebra A] (a b : A) :
(rescale a) (exp A) * (rescale b) (exp A) = (rescale (a + b)) (exp A)

Shows that eaXebX=e(a+b)X

Shows that exex=1

theorem PowerSeries.exp_pow_eq_rescale_exp {A : Type u_1} [CommRing A] [Algebra A] (k : ) :
exp A ^ k = (rescale k) (exp A)

Shows that (eX)k=ekX.

theorem PowerSeries.exp_pow_sum {A : Type u_1} [CommRing A] [Algebra A] (n : ) :
kFinset.range n, exp A ^ k = mk fun (p : ) => kFinset.range n, k ^ p * (algebraMap A) (↑p.factorial)⁻¹

Shows that k=0n1(eX)k=p=0k=0n1kpp!Xp.