Laurent Series #
In this file we define LaurentSeries R, the formal Laurent series over R, here an arbitrary
type with a zero. They are denoted R⸨X⸩.
Main Definitions #
- Defines
LaurentSeriesas an abbreviation forHahnSeries ℤ. - Defines
hasseDerivof a Laurent series with coefficients in a module over a ring. - Provides a coercion from power series
R⟦X⟧intoR⸨X⸩given byHahnSeries.ofPowerSeries. - Defines
LaurentSeries.powerSeriesPart - Defines the localization map
LaurentSeries.of_powerSeries_localizationwhich 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_coeffwe show that sending a Laurent series to itsdth 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 ℱ dinKthat serves asdth 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
LaurentSeriesover a field is complete, formalized in the instanceinstLaurentSeriesComplete. - The field of rational functions is dense in
LaurentSeries: this is the declarationLaurentSeries.coe_range_denseand relies principally uponLaurentSeries.exists_ratFunc_val_lt, stating that for every Laurent seriesfand everyγ : ℤᵐ⁰one can find a rational functionQsuch that theX-adic valuationvsatisfiesv (f - Q) < γ. - In
LaurentSeries.valuation_comparewe prove that the extension of theX-adic valuation fromK⟮X⟯up to its abstract completion coincides, modulo the isomorphism withK⸨X⸩, with theX-adic valuation onK⸨X⸩. - The two declarations
LaurentSeries.mem_integers_of_powerSeriesandLaurentSeries.exists_powerSeries_of_memIntegersshow that an element in the completion ofK⟮X⟯is in the unit ball if and only if it comes from a power series through the isomorphismLaurentSeriesRingEquiv. LaurentSeries.powerSeriesAlgEquivis theK-algebra isomorphism betweenK⟦X⟧and the unit ball inside theX-adic completion ofK⟮X⟯.
Implementation details #
- Since
LaurentSeriesis just an abbreviation ofHahnSeries ℤ, the definition of the coefficients is given in terms ofHahnSeries.coeffand this forces sometimes to go back-and-forth fromX : R⸨X⸩tosingle 1 1 : R⟦ℤ⟧. - To prove the isomorphism between the
X-adic completion ofK⟮X⟯andK⸨X⸩we construct two completions ofK⟮X⟯: the first (LaurentSeries.ratfuncAdicComplPkg) is its abstract uniform completion; the second (LaurentSeries.LaurentSeriesPkg) is simplyK⸨X⸩, once we prove that it is complete and containsK⟮X⟯as a dense subspace. The isomorphism is the comparison equivalence, expressing the mathematical idea that the completion "is unique". It isLaurentSeries.comparePkg. - For applications to
K⟦X⟧it is actually more handy to use the inverse of the above equivalence:LaurentSeries.LaurentSeriesAlgEquivis the topological, algebra equivalenceK⸨X⸩ ≃ₐ[K] RatFuncAdicCompl K. - In order to compare
K⟦X⟧with the valuation subring in theX-adic completion ofK⟮X⟯we consider its aliasLaurentSeries.powerSeries_as_subringas a subring ofK⸨X⸩, that is itself clearly isomorphic (via the inverse ofLaurentSeries.powerSeriesEquivSubring) toK⟦X⟧.
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
The localization map from power series to Laurent series.
Equations
- RatFunc.coeToLaurentSeries = { coe := ⇑(algebraMap (RatFunc F) (LaurentSeries F)) }
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) : ℤᵐ⁰.
polynomialValuationX is an abbreviation for the X-adic valuation given by
(Polynomial.idealX K).valuation K⟮X⟯.
Equations
Instances For
The coefficients of a Laurent series vanish in degree strictly less than its valuation.
The valuation of a Laurent series is the order of the first non-zero coefficient.
Two Laurent series whose difference has small valuation have the same coefficients for small enough indices.
Every Laurent series of valuation less than (1 : ℤᵐ⁰) comes from a power series.
Sending a Laurent series to its d-th coefficient is uniformly continuous (independently of the
uniformity with which K is endowed).
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 : ℤ) => DiscreteUniformity.cauchyConst ⋯
Instances For
The support of Cauchy.coeff has a lower bound.
The support of Cauchy.coeff is bounded below
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
The following lemma shows that for every d smaller than the minimum between the integers
produced in Cauchy.exists_lb_eventual_support and Cauchy.exists_lb_support, for almost all
series in ℱ the dth coefficient coincides with the dth coefficient of Cauchy.coeff hℱ.
Given a Cauchy filter ℱ in the Laurent Series and a bound D, for almost all series in the
filter the coefficients below D coincide with Cauchy.coeff hℱ.
The main result showing that the Cauchy filter tends to the Cauchy.limit
Laurent Series with coefficients in a field are complete w.r.t. the X-adic valuation
For every Laurent series f and every γ : ℤᵐ⁰ one can find a rational function Q such
that the X-adic valuation v satisfies v (f - Q) < γ.
The X-adic completion as an abstract completion of K⟮X⟯
Instances For
Having established that the K⸨X⸩ is complete and contains K⟮X⟯ as a dense
subspace, it gives rise to an abstract completion of K⟮X⟯.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reinterpret the extension of coe : WithVal ((idealX K).valuation _) → K⸨X⸩ as a ring
homomorphism
Equations
Instances For
An abbreviation for the X-adic completion of K⟮X⟯
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The two instances below make comparePkg and comparePkg_eq_extension slightly faster.
Equations
The uniform space isomorphism between two abstract completions of ratfunc K
Equations
Instances For
The uniform space equivalence between two abstract completions of ratfunc K as a ring
equivalence: this will be the inverse of the fundamental one.
Equations
- LaurentSeries.ratfuncAdicComplRingEquiv K = { toEquiv := (LaurentSeries.comparePkg K).toEquiv, map_mul' := ⋯, map_add' := ⋯ }
Instances For
The uniform space equivalence between two abstract completions of ratfunc K as a ring
equivalence: it goes from K⸨X⸩ to RatFuncAdicCompl K
Instances For
The algebra equivalence between K⸨X⸩ and the X-adic completion of RatFunc X
Equations
Instances For
The extension of the X-adic valuation from K⟮X⟯ up to its abstract completion coincides,
modulo the isomorphism with K⸨X⸩, with the X-adic valuation on K⸨X⸩.
In order to compare K⟦X⟧ with the valuation subring in the X-adic completion of
K⟮X⟯ we consider its alias as a subring of K⸨X⸩.
Equations
Instances For
The ring K⟦X⟧ is isomorphic to the subring powerSeries_as_subring K
Equations
Instances For
Through the isomorphism LaurentSeriesRingEquiv, power series land in the unit ball inside the
completion of K⟮X⟯.
Conversely, all elements in the unit ball inside the completion of K⟮X⟯ come from a power
series through the isomorphism LaurentSeriesRingEquiv.
The ring isomorphism between K⟦X⟧ and the unit ball inside the X-adic completion of
K⟮X⟯.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The algebra isomorphism between K⟦X⟧ and the unit ball inside the X-adic completion of
K⟮X⟯.