Documentation

Iwasawalib.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 on maximal ideal, and hence such ring is a complete local ring.

Main definitions #

Main results #

References #

Results should be added to mathlib #

theorem ENat.lift_eq_toNat_of_lt_top {x : ℕ∞} (hx : x < ) :
x.lift hx = x.toNat
theorem PowerSeries.eq_shift_mul_X_pow_add_trunc {A : Type u_1} [Semiring A] (n : ) (f : PowerSeries A) :
f = (mk fun (i : ) => (coeff A (i + n)) f) * X ^ n + (trunc n f)
theorem PowerSeries.eq_X_pow_mul_shift_add_trunc {A : Type u_1} [Semiring A] (n : ) (f : PowerSeries A) :
f = (X ^ n * mk fun (i : ) => (coeff A (i + n)) f) + (trunc n f)
theorem PowerSeries.coeff_mul_mem_ideal_mul_ideal_of_coeff_mem_ideal {A : Type u_1} [Semiring A] {I J : Ideal A} {f g : PowerSeries A} (n : ) (hf : in, (coeff A i) f I) (hg : in, (coeff A i) g J) (i : ) :
i n(coeff A i) (f * g) I * J
theorem PowerSeries.coeff_mul_mem_ideal_mul_ideal_of_coeff_mem_ideal' {A : Type u_1} [Semiring A] {I J : Ideal A} {f g : PowerSeries A} (hf : ∀ (i : ), (coeff A i) f I) (hg : ∀ (i : ), (coeff A i) g J) (i : ) :
(coeff A i) (f * g) I * J
theorem PowerSeries.coeff_mul_mem_ideal_of_coeff_right_mem_ideal {A : Type u_1} [Semiring A] {I : Ideal A} {f g : PowerSeries A} (n : ) (hg : in, (coeff A i) g I) (i : ) :
i n(coeff A i) (f * g) I
theorem PowerSeries.coeff_mul_mem_ideal_of_coeff_right_mem_ideal' {A : Type u_1} [Semiring A] {I : Ideal A} {f g : PowerSeries A} (hg : ∀ (i : ), (coeff A i) g I) (i : ) :
(coeff A i) (f * g) I
theorem PowerSeries.coeff_mul_mem_ideal_of_coeff_left_mem_ideal {A : Type u_1} [Semiring A] {I : Ideal A} {f g : PowerSeries A} (n : ) [I.IsTwoSided] (hf : in, (coeff A i) f I) (i : ) :
i n(coeff A i) (f * g) I
theorem PowerSeries.coeff_mul_mem_ideal_of_coeff_left_mem_ideal' {A : Type u_1} [Semiring A] {I : Ideal A} {f g : PowerSeries A} [I.IsTwoSided] (hf : ∀ (i : ), (coeff A i) f I) (i : ) :
(coeff A i) (f * g) I

Weierstrass division #

def PowerSeries.IsWeierstrassDivisionAt {A : Type u_1} [CommRing A] (f g q : PowerSeries A) (r : Polynomial A) (I : Ideal 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).

Equations
Instances For
    @[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 : ) :
      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 : ) :
            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.mod_add {A : Type u_1} [CommRing A] {g : PowerSeries A} {I : Ideal A} (H : g.IsWeierstrassDivisorAt I) [IsAdicComplete I A] {f f' : PowerSeries 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) [IsAdicComplete I A] {a : A} {f : PowerSeries A} :
                  H.mod (a f) = a H.mod f

                  The remainder is invariant under multiples of g.

                  Equations
                  Instances For

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

                    Equations
                    • One or more equations did not get rendered due to their size.
                    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 q in Werierstrass 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 r in Werierstrass 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 q in Werierstrass 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 r in Werierstrass 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.eq_zero_of_weierstrass_division {A : Type u_1} [CommRing A] [IsLocalRing A] [IsHausdorff (IsLocalRing.maximalIdeal A) A] (g : PowerSeries A) (hg : (map (IsLocalRing.residue A)) g 0) {q : PowerSeries A} {r : Polynomial A} (hr : r.degree < ((map (IsLocalRing.residue A)) g).order.toNat) (heq : g * q = r) :
                              q = 0 r = 0

                              The q and r in the Weierstrass division for 0 is equal to 0.

                              theorem PowerSeries.eq_of_weierstrass_division {A : Type u_1} [CommRing A] [IsLocalRing A] [IsHausdorff (IsLocalRing.maximalIdeal A) A] (g : PowerSeries A) (hg : (map (IsLocalRing.residue A)) g 0) {q q' : PowerSeries A} {r r' : Polynomial A} (hr : r.degree < ((map (IsLocalRing.residue A)) g).order.toNat) (hr' : r'.degree < ((map (IsLocalRing.residue A)) g).order.toNat) (heq : g * q + r = g * q' + r') :
                              q = q' r = r'

                              The q and r in the Weierstrass division is unique.

                              theorem PowerSeries.IsWeierstrassDivision.elim {A : Type u_1} [CommRing A] [IsLocalRing A] [IsHausdorff (IsLocalRing.maximalIdeal A) A] {f g : PowerSeries A} (hg : (map (IsLocalRing.residue A)) g 0) {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 q and r in the Weierstrass division is unique.

                              The q and r in the Weierstrass division for 0 is equal to 0.

                              The q and r in the Weierstrass division is 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 ([washington_cyclotomic], 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 Werierstrass preparation theorem.

                                  Equations
                                  Instances For

                                    The h in Werierstrass preparation theorem.

                                    Equations
                                    Instances For

                                      The f and h in Werierstrass preparation theorem is unique.