Formal power series

This file defines (multivariate) formal power series and develops the basic properties of these objects.

A formal power series is to a polynomial like an infinite sum is to a finite sum.

We provide the natural inclusion from polynomials to formal power series.

Generalities

The file starts with setting up the (semi)ring structure on multivariate power series.

trunc n φ truncates a formal power series to the polynomial that has the same coefficients as φ, for all m ≤ n, and 0 otherwise.

If the constant coefficient of a formal power series is invertible, then this formal power series is invertible.

Formal power series over a local ring form a local ring.

Formal power series in one variable

We prove that if the ring of coefficients is an integral domain, then formal power series in one variable form an integral domain.

The order of a formal power series φ is the multiplicity of the variable X in φ.

If the coefficients form an integral domain, then order is a valuation (order_mul, order_add_ge).

Implementation notes

In this file we define multivariate formal power series with variables indexed by σ and coefficients in α as mv_power_series σ α := (σ →₀ ℕ) → α. Unfortunately there is not yet enough API to show that they are the completion of the ring of multivariate polynomials. However, we provide most of the infrastructure that is needed to do this. Once I-adic completion (topological or algebraic) is available it should not be hard to fill in the details.

Formal power series in one variable are defined as power_series α := mv_power_series unit α.

This allows us to port a lot of proofs and properties from the multivariate case to the single variable case. However, it means that formal power series are indexed by (unit →₀ ℕ), which is of course canonically isomorphic to ℕ. We then build some glue to treat formal power series as if they are indexed by ℕ. Occasionally this leads to proofs that are uglier than expected.


mv_power_series

Multivariate formal power series, where σ is the index set of the variables and α is the coefficient ring.

mv_power_series.monomial

The nth monomial with coefficient a as multivariate formal power series.

mv_power_series.coeff

The nth coefficient of a multivariate formal power series.

mv_power_series.ext

Two multivariate formal power series are equal if all their coefficients are equal.

mv_power_series.ext_iff

Two multivariate formal power series are equal if and only if all their coefficients are equal.

mv_power_series.C

The constant multivariate formal power series.

mv_power_series.X

The variables of the multivariate formal power series ring.

mv_power_series.constant_coeff

The constant coefficient of a formal power series.

mv_power_series.is_unit_constant_coeff

If a multivariate formal power series is invertible, then so is its constant coefficient.

mv_power_series.map

The map between multivariate formal power series induced by a map on the coefficients.

mv_power_series.trunc

The nth truncation of a multivariate formal power series to a multivariate polynomial

mv_power_series.inv.aux

Auxiliary definition that unifies the totalised inverse formal power series (_)⁻¹ and the inverse formal power series that depends on an inverse of the constant coefficient inv_of_unit.

mv_power_series.inv_of_unit

A multivariate formal power series is invertible if the constant coefficient is invertible.

mv_power_series.is_local_ring

Multivariate formal power series over a local ring form a local ring.

mv_polynomial.coe_to_mv_power_series

The natural inclusion from multivariate polynomials into multivariate formal power series.

power_series

Formal power series over the coefficient ring α.

power_series.coeff

The nth coefficient of a formal power series.

power_series.monomial

The nth monomial with coefficient a as formal power series.

power_series.ext

Two formal power series are equal if all their coefficients are equal.

power_series.ext_iff

Two formal power series are equal if all their coefficients are equal.

power_series.mk

Constructor for formal power series.

power_series.constant_coeff

The constant coefficient of a formal power series.

power_series.C

The constant formal power series.

power_series.X

The variable of the formal power series ring.

power_series.is_unit_constant_coeff

If a formal power series is invertible, then so is its constant coefficient.

power_series.map

The map between formal power series induced by a map on the coefficients.

power_series.trunc

The nth truncation of a formal power series to a polynomial

power_series.inv_of_unit

A formal power series is invertible if the constant coefficient is invertible.

power_series.span_X_is_prime

The ideal spanned by the variable in the power series ring over an integral domain is a prime ideal.

power_series.X_prime

The variable of the power series ring over an integral domain is prime.

power_series.order

The order of a formal power series φ is the smallest n : enat such that X^n divides φ. The order is if and only if φ = 0.

power_series.coeff_order

If the order of a formal power series is finite, then the coefficient indexed by the order is nonzero.

power_series.order_le

If the nth coefficient of a formal power series is nonzero, then the order of the power series is less than or equal to n.

power_series.coeff_of_lt_order

The nth coefficient of a formal power series is 0 if n is strictly smaller than the order of the power series.

power_series.order_eq_top

The 0 power series is the unique power series with infinite order.

power_series.order_zero

The order of the 0 power series is infinite.

power_series.order_ge_nat

The order of a formal power series is at least n if the ith coefficient is 0 for all i < n.

power_series.order_ge

The order of a formal power series is at least n if the ith coefficient is 0 for all i < n.

power_series.order_eq_nat

The order of a formal power series is exactly n if the nth coefficient is nonzero, and the ith coefficient is 0 for all i < n.

power_series.order_eq

The order of a formal power series is exactly n if the nth coefficient is nonzero, and the ith coefficient is 0 for all i < n.

power_series.order_add_ge

The order of the sum of two formal power series is at least the minimum of their orders.

power_series.order_add_of_order_eq

The order of the sum of two formal power series is the minimum of their orders if their orders differ.

power_series.order_mul_ge

The order of the product of two formal power series is at least the sum of their orders.

power_series.order_monomial

The order of the monomial a*X^n is infinite if a = 0 and n otherwise.

power_series.order_monomial_of_ne_zero

The order of the monomial a*X^n is n if a 0.

power_series.order_one

The order of the formal power series 1 is 0.

power_series.order_X

The order of the formal power series X is 1.

power_series.order_X_pow

The order of the formal power series X^n is n.

power_series.order_mul

The order of the product of two formal power series over an integral domain is the sum of their orders.

polynomial.coe_to_power_series

The natural inclusion from polynomials into formal power series.