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 fromRatFunc Kup 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 ofRatFunc Kis 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 ofRatFunc K.
Implementation details #
- Since
LaurentSeriesis just an abbreviation ofHahnSeries ℤ R, 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 : HahnSeries ℤ R. - To prove the isomorphism between the
X-adic completion ofRatFunc KandK⸨X⸩we construct two completions ofRatFunc K: the first (LaurentSeries.ratfuncAdicComplPkg) is its abstract uniform completion; the second (LaurentSeries.LaurentSeriesPkg) is simplyK⸨X⸩, once we prove that it is complete and containsRatFunc Kas 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 ofRatFunc Kwe 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.
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
Instances For
Equations
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) : ℤₘ₀.
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
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
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) < γ.
Having established that the K⸨X⸩ is complete and contains RatFunc K as a dense
subspace, it gives rise to an abstract completion of RatFunc K.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reintrerpret the extension of coe : RatFunc K → K⸨X⸩ as ring homomorphism
Equations
Instances For
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
In order to compare K⟦X⟧ with the valuation subring in the X-adic completion of
RatFunc K 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
The ring isomorphism between K⟦X⟧ and the unit ball inside the X-adic completion of
RatFunc K.
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
RatFunc K.