Documentation

Mathlib.RingTheory.PowerSeries.WeierstrassPreparation

Weierstrass preparation theorem for power series over a complete local ring #

In this file we define Weierstrass division, Weierstrass factorization, and prove Weierstrass preparation theorem.

We assume that a ring is adic complete with respect to some ideal. If such ideal is a maximal ideal, then by isLocalRing_of_isAdicComplete_maximal, such ring has only one maximal ideal, and hence it is a complete local ring.

Main definitions #

Main results #

References #

Weierstrass division #

structure PowerSeries.IsWeierstrassDivisionAt {A : Type u_1} [CommRing A] (f g q : PowerSeries A) (r : Polynomial A) (I : Ideal A) :

Let f, g be power series over A, I be an ideal of A, PowerSeries.IsWeierstrassDivisionAt f g q r I is a Prop which asserts that a power series q and a polynomial r of degree < n satisfy f = g * q + r, where n is the order of the image of g in (A / I)⟦X⟧ (defined to be zero if such image is zero, in which case it's mathematically not considered).

Instances For
    theorem PowerSeries.isWeierstrassDivisionAt_iff {A : Type u_1} [CommRing A] (f g q : PowerSeries A) (r : Polynomial A) (I : Ideal A) :
    f.IsWeierstrassDivisionAt g q r I r.degree < ((map (Ideal.Quotient.mk I)) g).order.toNat f = g * q + r
    @[reducible, inline]

    Version of PowerSeries.IsWeierstrassDivisionAt for local rings with respect to its maximal ideal.

    Equations
    Instances For
      theorem PowerSeries.IsWeierstrassDivisionAt.coeff_f_sub_r_mem {A : Type u_1} [CommRing A] {f g q : PowerSeries A} {r : Polynomial A} {I : Ideal A} (H : f.IsWeierstrassDivisionAt g q r I) {i : } (hi : i < ((map (Ideal.Quotient.mk I)) g).order.toNat) :
      (coeff A i) (f - r) I

      PowerSeries.IsWeierstrassDivisorAt g I is a Prop which asserts that the n-th coefficient of g is a unit, where n is the order of the image of g in (A / I)⟦X⟧ (defined to be zero if such image is zero, in which case it's mathematically not considered).

      This property guarantees that if the ring is I-adic complete, then g can be used as a divisor in Weierstrass division (PowerSeries.IsWeierstrassDivisorAt.isWeierstrassDivisionAt_div_mod).

      Equations
      Instances For
        @[reducible, inline]

        Version of PowerSeries.IsWeierstrassDivisorAt for local rings with respect to its maximal ideal.

        Equations
        Instances For

          If g is a power series over a local ring such that its image in the residue field is not zero, then g can be used as a Weierstrass divisor.

          noncomputable def PowerSeries.IsWeierstrassDivisorAt.seq {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (f : PowerSeries A) :

          The inductively constructed sequence qₖ in the proof of Weierstrass division.

          Equations
          Instances For
            theorem PowerSeries.IsWeierstrassDivisorAt.coeff_seq_mem {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) {f : PowerSeries A} (k : ) {i : } (hi : i ((map (Ideal.Quotient.mk I)) g).order.toNat) :
            (coeff A i) (f - g * H.seq f k) I ^ k
            theorem PowerSeries.IsWeierstrassDivisorAt.coeff_seq_succ_sub_seq_mem {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) {f : PowerSeries A} (k i : ) :
            (coeff A i) (H.seq f (k + 1) - H.seq f k) I ^ k
            @[simp]
            theorem PowerSeries.IsWeierstrassDivisorAt.seq_zero {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) {f : PowerSeries A} :
            H.seq f 0 = 0
            theorem PowerSeries.IsWeierstrassDivisorAt.seq_one {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) {f : PowerSeries A} :
            H.seq f 1 = (mk fun (i : ) => (coeff A (i + ((map (Ideal.Quotient.mk I)) g).order.toNat)) f) * .unit⁻¹
            noncomputable def PowerSeries.IsWeierstrassDivisorAt.divCoeff {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (f : PowerSeries A) [IsPrecomplete I A] (i : ) :
            { x : A // ∀ (n : ), (fun (k : ) => (coeff A i) (H.seq f k)) n x [SMOD I ^ n ] }

            The (bundled version of) coefficient of the limit q of the inductively constructed sequence qₖ in the proof of Weierstrass division.

            Equations
            Instances For
              noncomputable def PowerSeries.IsWeierstrassDivisorAt.div {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (f : PowerSeries A) [IsPrecomplete I A] :

              The limit q of the inductively constructed sequence qₖ in the proof of Weierstrass division.

              Equations
              Instances For
                theorem PowerSeries.IsWeierstrassDivisorAt.coeff_div {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) {f : PowerSeries A} [IsPrecomplete I A] (i : ) :
                (coeff A i) (H.div f) = (H.divCoeff f i)
                theorem PowerSeries.IsWeierstrassDivisorAt.coeff_div_sub_seq_mem {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) {f : PowerSeries A} [IsPrecomplete I A] (k i : ) :
                (coeff A i) (H.div f - H.seq f k) I ^ k
                noncomputable def PowerSeries.IsWeierstrassDivisorAt.mod {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (f : PowerSeries A) [IsPrecomplete I A] :

                The remainder r in the proof of Weierstrass division.

                Equations
                Instances For

                  If the ring is I-adic complete, then g can be used as a divisor in Weierstrass division.

                  theorem PowerSeries.IsWeierstrassDivisorAt.eq_zero_of_mul_eq {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) [IsHausdorff I A] {q : PowerSeries A} {r : Polynomial A} (hdeg : r.degree < ((map (Ideal.Quotient.mk I)) g).order.toNat) (heq : g * q = r) :
                  q = 0 r = 0

                  If g * q = r for some power series q and some polynomial r whose degree is < n, then q and r are all zero. This implies the uniqueness of Weierstrass division.

                  theorem PowerSeries.IsWeierstrassDivisorAt.eq_of_mul_add_eq_mul_add {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) [IsHausdorff I A] {q q' : PowerSeries A} {r r' : Polynomial A} (hr : r.degree < ((map (Ideal.Quotient.mk I)) g).order.toNat) (hr' : r'.degree < ((map (Ideal.Quotient.mk I)) g).order.toNat) (heq : g * q + r = g * q' + r') :
                  q = q' r = r'

                  If g * q + r = g * q' + r' for some power series q, q' and some polynomials r, r' whose degrees are < n, then q = q' and r = r' are all zero. This implies the uniqueness of Weierstrass division.

                  Weierstrass division ([Was97], Proposition 7.2): let f, g be power series over a complete local ring, such that the image of g in the residue field is not zero. Let n be the order of the image of g in the residue field. Then there exists a power series q and a polynomial r of degree < n, such that f = g * q + r.

                  The quotient q in Weierstrass division, denoted by f /ʷ g. Note that when the image of g in the residue field is zero, this is defined to be zero.

                  Equations
                  Instances For

                    The remainder r in Weierstrass division, denoted by f %ʷ g. Note that when the image of g in the residue field is zero, this is defined to be zero.

                    Equations
                    Instances For

                      The quotient q in Weierstrass division, denoted by f /ʷ g. Note that when the image of g in the residue field is zero, this is defined to be zero.

                      Equations
                      Instances For

                        The remainder r in Weierstrass division, denoted by f %ʷ g. Note that when the image of g in the residue field is zero, this is defined to be zero.

                        Equations
                        Instances For
                          theorem PowerSeries.IsWeierstrassDivision.elim {A : Type u_1} [CommRing A] [IsLocalRing A] {f g : PowerSeries A} (hg : (map (IsLocalRing.residue A)) g 0) [IsHausdorff (IsLocalRing.maximalIdeal A) A] {q q' : PowerSeries A} {r r' : Polynomial A} (H : f.IsWeierstrassDivision g q r) (H2 : f.IsWeierstrassDivision g q' r') :
                          q = q' r = r'

                          The quotient q and the remainder r in the Weierstrass division are unique.

                          This result is stated using two PowerSeries.IsWeierstrassDivision assertions, and only requires the ring being Hausdorff with respect to the maximal ideal. If you want q and r equal to f /ʷ g and f %ʷ g, use PowerSeries.IsWeierstrassDivision.unique instead, which requires the ring being complete with respect to the maximal ideal.

                          If q and r are quotient and remainder in the Weierstrass division 0 / g, then they are equal to 0.

                          If q and r are quotient and remainder in the Weierstrass division f / g, then they are equal to f /ʷ g and f %ʷ g.

                          Weierstrass preparation theorem #

                          structure PowerSeries.IsWeierstrassFactorizationAt {A : Type u_1} [CommRing A] (g : PowerSeries A) (f : Polynomial A) (h : PowerSeries A) (I : Ideal A) :

                          If f is a polynomial over A, g and h are power series over A, then PowerSeries.IsWeierstrassFactorizationAt g f h I is a Prop which asserts that f is distingushed at I, h is a unit, such that g = f * h.

                          Instances For
                            @[reducible, inline]

                            Version of PowerSeries.IsWeierstrassFactorizationAt for local rings with respect to its maximal ideal.

                            Equations
                            Instances For

                              Weierstrass preparation theorem ([Was97], Theorem 7.3): let g be a power series over a complete local ring, such that the image of g in the residue field is not zero. Then there exists a distinguished polynomial f and a power series h which is a unit, such that g = f * h.

                              The f in the Weierstrass preparation theorem.

                              Equations
                              Instances For

                                The h in the Weierstrass preparation theorem.

                                Equations
                                Instances For

                                  The f and h in the Weierstrass preparation theorem are unique.

                                  This result is stated using two PowerSeries.IsWeierstrassFactorization assertions, and only requires the ring being Hausdorff with respect to the maximal ideal. If you want f and h equal to PowerSeries.weierstrassDistinguished and PowerSeries.weierstrassUnit, use PowerSeries.IsWeierstrassFactorization.unique instead, which requires the ring being complete with respect to the maximal ideal.