Laurent Series #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main Definitions #
- Defines
laurent_series
as an abbreviation forhahn_series ℤ
. - Provides a coercion
power_series R
intolaurent_series R
given byhahn_series.of_power_series
. - Defines
laurent_series.power_series_part
- Defines the localization map
laurent_series.of_power_series_localization
which evaluates tohahn_series.of_power_series
.
@[reducible]
A laurent_series
is implemented as a hahn_series
with value group ℤ
.
@[protected, instance]
noncomputable
def
laurent_series.has_coe
{R : Type u}
[semiring R] :
has_coe (power_series R) (laurent_series R)
Equations
theorem
laurent_series.coe_power_series
{R : Type u}
[semiring R]
(x : power_series R) :
↑x = ⇑(hahn_series.of_power_series ℤ R) x
@[simp]
theorem
laurent_series.coeff_coe_power_series
{R : Type u}
[semiring R]
(x : power_series R)
(n : ℕ) :
noncomputable
def
laurent_series.power_series_part
{R : Type u}
[semiring R]
(x : laurent_series R) :
This is a power series that can be multiplied by an integer power of X
to give our
Laurent series. If the Laurent series is nonzero, power_series_part
has a nonzero
constant term.
Equations
- x.power_series_part = power_series.mk (λ (n : ℕ), x.coeff (hahn_series.order x + ↑n))
@[simp]
theorem
laurent_series.power_series_part_coeff
{R : Type u}
[semiring R]
(x : laurent_series R)
(n : ℕ) :
⇑(power_series.coeff R n) x.power_series_part = x.coeff (hahn_series.order x + ↑n)
@[simp]
@[simp]
theorem
laurent_series.power_series_part_eq_zero
{R : Type u}
[semiring R]
(x : laurent_series R) :
x.power_series_part = 0 ↔ x = 0
@[simp]
theorem
laurent_series.single_order_mul_power_series_part
{R : Type u}
[semiring R]
(x : laurent_series R) :
⇑(hahn_series.single (hahn_series.order x)) 1 * ↑(x.power_series_part) = x
theorem
laurent_series.of_power_series_power_series_part
{R : Type u}
[semiring R]
(x : laurent_series R) :
⇑(hahn_series.of_power_series ℤ R) x.power_series_part = ⇑(hahn_series.single (-hahn_series.order x)) 1 * x
@[protected, instance]
noncomputable
def
laurent_series.algebra
{R : Type u}
[comm_semiring R] :
algebra (power_series R) (laurent_series R)
Equations
@[simp]
theorem
laurent_series.coe_algebra_map
{R : Type u}
[comm_semiring R] :
⇑(algebra_map (power_series R) (laurent_series R)) = ⇑(hahn_series.of_power_series ℤ R)
@[protected, instance]
The localization map from power series to Laurent series.
@[protected, instance]
@[simp, norm_cast]
@[simp, norm_cast]
theorem
power_series.coe_C
{R : Type u}
[semiring R]
(r : R) :
↑(⇑(power_series.C R) r) = ⇑hahn_series.C r
@[simp]
@[simp, norm_cast]
@[simp, norm_cast]