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
        theorem PowerSeries.IsWeierstrassDivisionAt.add {A : Type u_1} [CommRing A] {f g q : PowerSeries A} {r : Polynomial A} {I : Ideal A} {f' q' : PowerSeries A} {r' : Polynomial A} (H : f.IsWeierstrassDivisionAt g q r I) (H' : f'.IsWeierstrassDivisionAt g q' r' I) :
        (f + f').IsWeierstrassDivisionAt g (q + q') (r + r') I
        theorem PowerSeries.IsWeierstrassDivisionAt.smul {A : Type u_1} [CommRing A] {f g q : PowerSeries A} {r : Polynomial A} {I : Ideal A} (H : f.IsWeierstrassDivisionAt g q r I) (a : A) :
        (a f).IsWeierstrassDivisionAt g (a q) (a 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.

                                @[simp]
                                theorem PowerSeries.IsWeierstrassDivisorAt.div_add {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (f f' : PowerSeries A) [IsAdicComplete I A] :
                                H.div (f + f') = H.div f + H.div f'
                                @[simp]
                                theorem PowerSeries.IsWeierstrassDivisorAt.div_smul {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (a : A) (f : PowerSeries A) [IsAdicComplete I A] :
                                H.div (a f) = a H.div f
                                @[simp]
                                theorem PowerSeries.IsWeierstrassDivisorAt.mod_add {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (f f' : PowerSeries A) [IsAdicComplete I A] :
                                H.mod (f + f') = H.mod f + H.mod f'
                                @[simp]
                                theorem PowerSeries.IsWeierstrassDivisorAt.mod_smul {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) (a : A) (f : PowerSeries A) [IsAdicComplete I A] :
                                H.mod (a f) = a H.mod f

                                The remainder map PowerSeries.IsWeierstrassDivisorAt.mod induces a linear map A⟦X⟧ / (g) →ₗ[A] A[X].

                                Equations
                                  Instances For

                                    A distinguished polynomial g induces a natural isomorphism A[X] / (g) ≃ₐ[A] A⟦X⟧ / (g).

                                    Equations
                                      Instances For

                                        Weierstrass division ([washington_cyclotomic], 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.

                                                        @[simp]
                                                        theorem PowerSeries.add_weierstrassDiv {A : Type u_1} [CommRing A] [IsLocalRing A] (f f' g : PowerSeries A) [IsAdicComplete (IsLocalRing.maximalIdeal A) A] :
                                                        (f + f') g = f g + f' g
                                                        @[simp]
                                                        theorem PowerSeries.smul_weierstrassDiv {A : Type u_1} [CommRing A] [IsLocalRing A] (a : A) (f g : PowerSeries A) [IsAdicComplete (IsLocalRing.maximalIdeal A) A] :
                                                        a f g = a (f g)
                                                        @[simp]
                                                        theorem PowerSeries.add_weierstrassMod {A : Type u_1} [CommRing A] [IsLocalRing A] (f f' g : PowerSeries A) [IsAdicComplete (IsLocalRing.maximalIdeal A) A] :
                                                        (f + f') g = f g + f' g
                                                        @[simp]
                                                        theorem PowerSeries.smul_weierstrassMod {A : Type u_1} [CommRing A] [IsLocalRing A] (a : A) (f g : PowerSeries A) [IsAdicComplete (IsLocalRing.maximalIdeal A) A] :
                                                        a f g = a (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 distinguished 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

                                                              If g = f * h is a Weierstrass factorization, then there is a natural isomorphism A[X] / (f) ≃ₐ[A] A⟦X⟧ / (g).

                                                              Equations
                                                                Instances For
                                                                  theorem PowerSeries.IsWeierstrassFactorizationAt.mul {A : Type u_1} [CommRing A] {g : PowerSeries A} {f : Polynomial A} {h : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassFactorizationAt f h I) {g' : PowerSeries A} {f' : Polynomial A} {h' : PowerSeries A} (H' : g'.IsWeierstrassFactorizationAt f' h' I) :
                                                                  (g * g').IsWeierstrassFactorizationAt (f * f') (h * h') I
                                                                  theorem PowerSeries.IsWeierstrassFactorizationAt.smul {A : Type u_1} [CommRing A] {g : PowerSeries A} {f : Polynomial A} {h : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassFactorizationAt f h I) {a : A} (ha : IsUnit a) :

                                                                  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.

                                                                  Weierstrass preparation theorem ([washington_cyclotomic], Theorem 7.3): let g be a power series over a complete local ring, such that its image 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
                                                                          @[reducible, inline]

                                                                          If g is a power series over a complete local ring, such that its image in the residue field is not zero, then there is a natural isomorphism A[X] / (f) ≃ₐ[A] A⟦X⟧ / (g) where f is PowerSeries.weierstrassDistinguished g.

                                                                          Equations
                                                                            Instances For