Formal power series in one variable - Truncation #
PowerSeries.trunc n φ
truncates a (univariate) formal power series
to the polynomial that has the same coefficients as φ
, for all m < n
,
and 0
otherwise.
The n
th truncation of a formal power series to a polynomial
Equations
- PowerSeries.trunc n φ = ∑ m ∈ Finset.Ico 0 n, (Polynomial.monomial m) ((PowerSeries.coeff R m) φ)
Instances For
theorem
PowerSeries.coeff_trunc
{R : Type u_1}
[Semiring R]
(m n : ℕ)
(φ : PowerSeries R)
:
(PowerSeries.trunc n φ).coeff m = if m < n then (PowerSeries.coeff R m) φ else 0
@[simp]
@[simp]
@[simp]
theorem
PowerSeries.trunc_C
{R : Type u_1}
[Semiring R]
(n : ℕ)
(a : R)
:
PowerSeries.trunc (n + 1) ((PowerSeries.C R) a) = Polynomial.C a
@[simp]
theorem
PowerSeries.trunc_add
{R : Type u_1}
[Semiring R]
(n : ℕ)
(φ ψ : PowerSeries R)
:
PowerSeries.trunc n (φ + ψ) = PowerSeries.trunc n φ + PowerSeries.trunc n ψ
theorem
PowerSeries.trunc_succ
{R : Type u_1}
[Semiring R]
(f : PowerSeries R)
(n : ℕ)
:
PowerSeries.trunc n.succ f = PowerSeries.trunc n f + (Polynomial.monomial n) ((PowerSeries.coeff R n) f)
theorem
PowerSeries.natDegree_trunc_lt
{R : Type u_1}
[Semiring R]
(f : PowerSeries R)
(n : ℕ)
:
(PowerSeries.trunc (n + 1) f).natDegree < n + 1
@[simp]
theorem
PowerSeries.trunc_zero'
{R : Type u_1}
[Semiring R]
{f : PowerSeries R}
:
PowerSeries.trunc 0 f = 0
theorem
PowerSeries.degree_trunc_lt
{R : Type u_1}
[Semiring R]
(f : PowerSeries R)
(n : ℕ)
:
(PowerSeries.trunc n f).degree < ↑n
theorem
PowerSeries.eval₂_trunc_eq_sum_range
{R : Type u_1}
[Semiring R]
{S : Type u_2}
[Semiring S]
(s : S)
(G : R →+* S)
(n : ℕ)
(f : PowerSeries R)
:
Polynomial.eval₂ G s (PowerSeries.trunc n f) = ∑ i ∈ Finset.range n, G ((PowerSeries.coeff R i) f) * s ^ i
@[simp]
theorem
PowerSeries.trunc_X
{R : Type u_1}
[Semiring R]
(n : ℕ)
:
PowerSeries.trunc (n + 2) PowerSeries.X = Polynomial.X
theorem
PowerSeries.trunc_X_of
{R : Type u_1}
[Semiring R]
{n : ℕ}
(hn : 2 ≤ n)
:
PowerSeries.trunc n PowerSeries.X = Polynomial.X
theorem
PowerSeries.trunc_trunc_of_le
{R : Type u_2}
[CommSemiring R]
{n m : ℕ}
(f : PowerSeries R)
(hnm : n ≤ m := by rfl)
:
PowerSeries.trunc n ↑(PowerSeries.trunc m f) = PowerSeries.trunc n f
@[simp]
theorem
PowerSeries.trunc_trunc
{R : Type u_2}
[CommSemiring R]
{n : ℕ}
(f : PowerSeries R)
:
PowerSeries.trunc n ↑(PowerSeries.trunc n f) = PowerSeries.trunc n f
@[simp]
theorem
PowerSeries.trunc_trunc_mul
{R : Type u_2}
[CommSemiring R]
{n : ℕ}
(f g : PowerSeries R)
:
PowerSeries.trunc n (↑(PowerSeries.trunc n f) * g) = PowerSeries.trunc n (f * g)
@[simp]
theorem
PowerSeries.trunc_mul_trunc
{R : Type u_2}
[CommSemiring R]
{n : ℕ}
(f g : PowerSeries R)
:
PowerSeries.trunc n (f * ↑(PowerSeries.trunc n g)) = PowerSeries.trunc n (f * g)
theorem
PowerSeries.trunc_trunc_mul_trunc
{R : Type u_2}
[CommSemiring R]
{n : ℕ}
(f g : PowerSeries R)
:
PowerSeries.trunc n (↑(PowerSeries.trunc n f) * ↑(PowerSeries.trunc n g)) = PowerSeries.trunc n (f * g)
@[simp]
theorem
PowerSeries.trunc_trunc_pow
{R : Type u_2}
[CommSemiring R]
(f : PowerSeries R)
(n a : ℕ)
:
PowerSeries.trunc n (↑(PowerSeries.trunc n f) ^ a) = PowerSeries.trunc n (f ^ a)
theorem
PowerSeries.trunc_coe_eq_self
{R : Type u_2}
[CommSemiring R]
{n : ℕ}
{f : Polynomial R}
(hn : f.natDegree < n)
:
PowerSeries.trunc n ↑f = f
theorem
PowerSeries.coeff_coe_trunc_of_lt
{R : Type u_2}
[CommSemiring R]
{n m : ℕ}
{f : PowerSeries R}
(h : n < m)
:
(PowerSeries.coeff R n) ↑(PowerSeries.trunc m f) = (PowerSeries.coeff R n) f
The function coeff n : R⟦X⟧ → R
is continuous. I.e. coeff n f
depends only on a sufficiently
long truncation of the power series f
.
theorem
PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc₂
{R : Type u_2}
[CommSemiring R]
{n a b : ℕ}
(f g : PowerSeries R)
(ha : n < a)
(hb : n < b)
:
(PowerSeries.coeff R n) (f * g) = (PowerSeries.coeff R n) (↑(PowerSeries.trunc a f) * ↑(PowerSeries.trunc b g))
The n
-th coefficient of f*g
may be calculated
from the truncations of f
and g
.
theorem
PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc
{R : Type u_2}
[CommSemiring R]
{d n : ℕ}
(f g : PowerSeries R)
(h : d < n)
:
(PowerSeries.coeff R d) (f * g) = (PowerSeries.coeff R d) (↑(PowerSeries.trunc n f) * ↑(PowerSeries.trunc n g))