Documentation

Mathlib.RingTheory.LaurentSeries

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 #

Main Results #

About the X-Adic valuation: #

Implementation details #

@[reducible, inline]
abbrev LaurentSeries (R : Type u) [Zero R] :

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
Instances For

    R⸨X⸩ is notation for LaurentSeries R.

    Equations
    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
        @[simp]
        theorem LaurentSeries.hasseDeriv_coeff {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k : ℕ) (f : LaurentSeries V) (n : ℤ) :
        ((hasseDeriv R k) f).coeff n = Ring.choose (n + ↑k) k • f.coeff (n + ↑k)
        @[simp]
        theorem LaurentSeries.hasseDeriv_single_add {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k : ℕ) (n : ℤ) (x : V) :
        (hasseDeriv R k) ((HahnSeries.single (n + ↑k)) x) = (HahnSeries.single n) (Ring.choose (n + ↑k) k • x)
        @[simp]
        theorem LaurentSeries.hasseDeriv_single {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k : ℕ) (n : ℤ) (x : V) :
        theorem LaurentSeries.hasseDeriv_comp_coeff {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k l : ℕ) (f : LaurentSeries V) (n : ℤ) :
        ((hasseDeriv R k) ((hasseDeriv R l) f)).coeff n = ((k + l).choose k • (hasseDeriv R (k + l)) f).coeff n
        @[simp]
        theorem LaurentSeries.hasseDeriv_comp {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k l : ℕ) (f : LaurentSeries V) :
        (hasseDeriv R k) ((hasseDeriv R l) f) = (k + l).choose k • (hasseDeriv R (k + l)) f

        The derivative of a Laurent series.

        Equations
        Instances For
          @[simp]
          theorem LaurentSeries.derivative_apply {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (f : LaurentSeries V) :
          (derivative R) f = (hasseDeriv R 1) f
          theorem LaurentSeries.derivative_iterate {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k : ℕ) (f : LaurentSeries V) :
          (⇑(derivative R))^[k] f = k.factorial • (hasseDeriv R k) f
          @[simp]
          theorem LaurentSeries.derivative_iterate_coeff {R : Type u_1} [Semiring R] {V : Type u_2} [AddCommGroup V] [Module R V] (k : ℕ) (f : LaurentSeries V) (n : ℤ) :
          ((⇑(derivative R))^[k] f).coeff n = (descPochhammer ℤ k).smeval (n + ↑k) • f.coeff (n + ↑k)
          @[implicit_reducible]
          noncomputable instance LaurentSeries.instCoePowerSeries {R : Type u_1} [Semiring R] :
          Equations
          noncomputable def LaurentSeries.powerSeriesPart {R : Type u_1} [Semiring R] (x : LaurentSeries 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
          Instances For

            The localization map from power series to Laurent series.

            theorem PowerSeries.coeff_coe {R : Type u_1} [Semiring R] (f : PowerSeries R) (i : ℤ) :
            @[simp]
            theorem PowerSeries.coe_smul {R : Type u_1} [Semiring R] {S : Type u_3} [Semiring S] [Module R S] (r : R) (x : PowerSeries S) :
            @[implicit_reducible]
            noncomputable instance RatFunc.coeToLaurentSeries {F : Type u} [Field F] :
            Equations
            @[simp]
            @[deprecated HahnSeries.inv_single (since := "2025-11-07")]
            theorem RatFunc.single_inv {F : Type u} [Field F] (d : ℤ) {α : F} (hα : α ≠ 0) :

            The prime ideal (X) of K⟦X⟧, when K is a field, as a term of the HeightOneSpectrum.

            Equations
            Instances For
              @[simp]

              The integral valuation of the power series X : K⟦X⟧ equals (ofAdd -1) : ℤᵐ⁰.

              @[reducible, inline]

              polynomialValuationX is an abbreviation for the X-adic valuation given by (Polynomial.idealX K).valuation K⟮X⟯.

              Equations
              Instances For
                theorem LaurentSeries.coeff_zero_of_lt_valuation (K : Type u_2) [Field K] {n D : ℤ} {f : LaurentSeries K} (H : Valued.v f ≤ WithZero.exp (-D)) :
                n < D → f.coeff n = 0
                theorem LaurentSeries.eq_coeff_of_valuation_sub_lt (K : Type u_2) [Field K] {d n : ℤ} {f g : LaurentSeries K} (H : Valued.v (g - f) ≤ WithZero.exp (-d)) :
                n < d → g.coeff n = f.coeff n
                noncomputable def LaurentSeries.Cauchy.coeff {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) :
                ℤ → K

                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
                Instances For
                  theorem LaurentSeries.Cauchy.coeff_tendsto {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) (D : ℤ) :
                  Filter.Tendsto (fun (f : LaurentSeries K) => f.coeff D) ℱ (Filter.principal {coeff hℱ D})
                  theorem LaurentSeries.Cauchy.exists_lb_eventual_support {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) :
                  ∃ (N : ℤ), ∀ᶠ (f : LaurentSeries K) in ℱ, ∀ n < N, f.coeff n = 0
                  theorem LaurentSeries.Cauchy.exists_lb_support {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) :
                  ∃ (N : ℤ), ∀ n < N, coeff hℱ n = 0
                  noncomputable def LaurentSeries.Cauchy.limit {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) :

                  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
                  Instances For
                    theorem LaurentSeries.Cauchy.exists_lb_coeff_ne {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) :
                    ∃ (N : ℤ), ∀ᶠ (f : LaurentSeries K) in ℱ, ∀ d < N, coeff hℱ d = f.coeff d
                    theorem LaurentSeries.Cauchy.coeff_eventually_equal {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) {D : ℤ} :
                    ∀ᶠ (f : LaurentSeries K) in ℱ, ∀ d < D, coeff hℱ d = f.coeff d
                    theorem LaurentSeries.Cauchy.eventually_mem_nhds {K : Type u_2} [Field K] {ℱ : Filter (LaurentSeries K)} (hℱ : Cauchy ℱ) {U : Set (LaurentSeries K)} (hU : U ∈ nhds (limit hℱ)) :
                    ∀ᶠ (f : LaurentSeries K) in ℱ, f ∈ U
                    theorem LaurentSeries.exists_ratFunc_val_lt {K : Type u_2} [Field K] (f : LaurentSeries K) (γ : (WithZero (Multiplicative ℤ))ˣ) :
                    ∃ (Q : RatFunc K), Valued.v (f - (algebraMap (RatFunc K) (LaurentSeries K)) Q) < ↑γ

                    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) < γ.

                    @[reducible, inline]

                    The X-adic completion as an abstract completion of K⟮X⟯

                    Equations
                    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
                        @[reducible, inline]
                        abbrev LaurentSeries.RatFuncAdicCompl (K : Type u_2) [Field K] :
                        Type u_2

                        An abbreviation for the X-adic completion of K⟮X⟯

                        Equations
                        Instances For
                          @[implicit_reducible]
                          noncomputable instance LaurentSeries.instUniformSpace (K : Type u_2) [Field K] :
                          Equations
                          @[reducible, inline]

                          The uniform space isomorphism between two abstract completions of ratfunc K

                          Equations
                          Instances For
                            @[reducible, inline]

                            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
                            Instances For
                              @[reducible, inline]

                              The uniform space equivalence between two abstract completions of ratfunc K as a ring equivalence: it goes from K⸨X⸩ to RatFuncAdicCompl K

                              Equations
                              Instances For

                                The algebra equivalence between K⸨X⸩ and the X-adic completion of RatFunc X

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  noncomputable abbrev LaurentSeries.powerSeries_as_subring (K : Type u_2) [Field K] :

                                  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
                                    @[reducible, inline]

                                    The ring K⟦X⟧ is isomorphic to the subring powerSeries_as_subring K

                                    Equations
                                    Instances For
                                      @[reducible, inline]

                                      The ring isomorphism between K⟦X⟧ and the unit ball inside the X-adic completion of K⟮X⟯.

                                      Equations
                                      Instances For
                                        @[implicit_reducible]
                                        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⟯.

                                        Equations
                                        Instances For