Laurent Series #
In this file we define LaurentSeries R
, the formal Laurent series over R
here an arbitrary
type with a zero. It is denoted R⸨X⸩
.
Main Definitions #
- Defines
LaurentSeries
as an abbreviation forHahnSeries ℤ
. - Defines
hasseDeriv
of a Laurent series with coefficients in a module over a ring. - Provides a coercion
from power series
R⟦X⟧into
R⸨X⸩given by
HahnSeries.ofPowerSeries`. - Defines
LaurentSeries.powerSeriesPart
- Defines the localization map
LaurentSeries.of_powerSeries_localization
which evaluates toHahnSeries.ofPowerSeries
. - Embedding of rational functions into Laurent series, provided as a coercion, utilizing
the underlying
RatFunc.coeAlgHom
. - Study of the
X
-Adic valuation on the ring of Laurent series over a field - In
LaurentSeries.uniformContinuous_coeff
we show that sending a Laurent series to itsd
th coefficient is uniformly continuous, ensuring that it sends a Cauchy filterℱ
inK⸨X⸩
to a Cauchy filter inK
: since this latter is given the discrete topology, this provides an elementLaurentSeries.Cauchy.coeff ℱ d
inK
that serves asd
th coefficient of the Laurent series to which the filterℱ
converges.
Main Results #
- Basic properties of Hasse derivatives
About the X
-Adic valuation: #
- The (integral) valuation of a power series is the order of the first non-zero coefficient, see
LaurentSeries.intValuation_le_iff_coeff_lt_eq_zero
. - The valuation of a Laurent series is the order of the first non-zero coefficient, see
LaurentSeries.valuation_le_iff_coeff_lt_eq_zero
. - Every Laurent series of valuation less than
(1 : ℤₘ₀)
comes from a power series, seeLaurentSeries.val_le_one_iff_eq_coe
. - The uniform space of
LaurentSeries
over a field is complete, formalized in the instanceinstLaurentSeriesComplete
.
Implementation details #
- Since
LaurentSeries
is just an abbreviation ofHahnSeries ℤ _
, the definition of the coefficients is given in terms ofHahnSeries.coeff
and this forces sometimes to go back-and-forth fromX : _⸨X⸩
tosingle 1 1 : HahnSeries ℤ _
.
LaurentSeries R
is the type of formal Laurent series with coefficients in R
, denoted R⸨X⸩
.
It is implemented as a HahnSeries
with value group ℤ
.
Equations
- LaurentSeries R = HahnSeries ℤ R
Instances For
R⸨X⸩
is notation for LaurentSeries R
,
Equations
- LaurentSeries.«term_⸨X⸩» = Lean.ParserDescr.trailingNode `LaurentSeries.term_⸨X⸩ 9000 0 (Lean.ParserDescr.symbol "⸨X⸩")
Instances For
The Hasse derivative of Laurent series, as a linear map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The derivative of a Laurent series.
Equations
Instances For
Equations
- LaurentSeries.instCoePowerSeries = { coe := ⇑(HahnSeries.ofPowerSeries ℤ 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, powerSeriesPart
has a nonzero
constant term.
Equations
- x.powerSeriesPart = PowerSeries.mk fun (n : ℕ) => x.coeff (HahnSeries.order x + ↑n)
Instances For
Equations
- LaurentSeries.instAlgebraPowerSeries = (HahnSeries.ofPowerSeries ℤ R).toAlgebra
The localization map from power series to Laurent series.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The coercion RatFunc F → F⸨X⸩
as bundled alg hom.
Equations
- RatFunc.coeAlgHom F = RatFunc.liftAlgHom (Algebra.ofId (Polynomial F) (LaurentSeries F)) ⋯
Instances For
The coercion RatFunc F → F⸨X⸩
as a function.
This is the implementation of coeToLaurentSeries
.
Equations
- RatFunc.coeToLaurentSeries_fun = ⇑(RatFunc.coeAlgHom F)
Instances For
Equations
- RatFunc.coeToLaurentSeries = { coe := RatFunc.coeToLaurentSeries_fun }
Equations
- RatFunc.instAlgebraLaurentSeries = (RatFunc.coeAlgHom F).toAlgebra
Equations
- ⋯ = ⋯
The prime ideal (X)
of K⟦X⟧
, when K
is a field, as a term of the HeightOneSpectrum
.
Equations
- PowerSeries.idealX K = { asIdeal := Ideal.span {PowerSeries.X}, isPrime := ⋯, ne_bot := ⋯ }
Instances For
The integral valuation of the power series X : K⟦X⟧
equals (ofAdd -1) : ℤₘ₀
Equations
Since extracting coefficients is uniformly continuous, every Cauchy filter in
K⸨X⸩
gives rise to a Cauchy filter in K
for every d : ℤ
, and such Cauchy filter
in K
converges to a principal filter
Equations
- LaurentSeries.Cauchy.coeff hℱ = fun (d : ℤ) => UniformSpace.DiscreteUnif.cauchyConst ⋯ ⋯
Instances For
To any Cauchy filter ℱ of K⸨X⸩
, we can attach a laurent series that is the limit
of the filter. Its d
-th coefficient is defined as the limit of Cauchy.coeff hℱ d
, which is
again Cauchy but valued in the discrete space K
. That sufficiently negative coefficients vanish
follows from Cauchy.coeff_support_bddBelow
Equations
- LaurentSeries.Cauchy.limit hℱ = { coeff := LaurentSeries.Cauchy.coeff hℱ, isPWO_support' := ⋯ }
Instances For
Equations
- ⋯ = ⋯