Documentation

Mathlib.RingTheory.PowerSeries.Inverse

Formal power series - Inverses #

If the constant coefficient of a formal (univariate) power series is invertible, then this formal power series is invertible. (See the discussion in Mathlib/RingTheory/MvPowerSeries/Inverse.lean for the construction.)

Formal (univariate) power series over a local ring form a local ring.

Formal (univariate) power series over a field form a discrete valuation ring, and a normalization monoid. The definition residueFieldOfPowerSeries provides the isomorphism between the residue field of kโŸฆXโŸง and k, when k is a field.

noncomputable def PowerSeries.inv.aux {R : Type u_1} [Ring R] :
R โ†’ PowerSeries R โ†’ PowerSeries R

Auxiliary function used for computing inverse of a power series

Instances For
    theorem PowerSeries.coeff_inv_aux {R : Type u_1} [Ring R] (n : โ„•) (a : R) (ฯ† : PowerSeries R) :
    (coeff n) (inv.aux a ฯ†) = if n = 0 then a else -a * โˆ‘ x โˆˆ Finset.antidiagonal n, if x.2 < n then (coeff x.1) ฯ† * (coeff x.2) (inv.aux a ฯ†) else 0
    noncomputable def PowerSeries.invOfUnit {R : Type u_1} [Ring R] (ฯ† : PowerSeries R) (u : Rหฃ) :

    A formal power series is invertible if the constant coefficient is invertible.

    Instances For
      theorem PowerSeries.coeff_invOfUnit {R : Type u_1} [Ring R] (n : โ„•) (ฯ† : PowerSeries R) (u : Rหฃ) :
      (coeff n) (ฯ†.invOfUnit u) = if n = 0 then โ†‘uโปยน else -โ†‘uโปยน * โˆ‘ x โˆˆ Finset.antidiagonal n, if x.2 < n then (coeff x.1) ฯ† * (coeff x.2) (ฯ†.invOfUnit u) else 0
      @[simp]
      theorem PowerSeries.mul_invOfUnit {R : Type u_1} [Ring R] (ฯ† : PowerSeries R) (u : Rหฃ) (h : constantCoeff ฯ† = โ†‘u) :
      ฯ† * ฯ†.invOfUnit u = 1
      @[simp]
      theorem PowerSeries.invOfUnit_mul {R : Type u_1} [Ring R] (ฯ† : PowerSeries R) (u : Rหฃ) (h : constantCoeff ฯ† = โ†‘u) :
      ฯ†.invOfUnit u * ฯ† = 1
      theorem PowerSeries.sub_const_eq_shift_mul_X {R : Type u_1} [Ring R] (ฯ† : PowerSeries R) :
      ฯ† - C (constantCoeff ฯ†) = (mk fun (p : โ„•) => (coeff (p + 1)) ฯ†) * X

      Two ways of removing the constant coefficient of a power series are the same.

      theorem PowerSeries.sub_const_eq_X_mul_shift {R : Type u_1} [Ring R] (ฯ† : PowerSeries R) :
      ฯ† - C (constantCoeff ฯ†) = X * mk fun (p : โ„•) => (coeff (p + 1)) ฯ†
      @[reducible, inline]
      noncomputable abbrev PowerSeries.inv {k : Type u_2} [Field k] :

      The inverse 1/f of a power series f defined over a field

      Instances For
        theorem PowerSeries.coeff_inv {k : Type u_2} [Field k] (n : โ„•) (ฯ† : PowerSeries k) :
        (coeff n) ฯ†โปยน = if n = 0 then (constantCoeff ฯ†)โปยน else -(constantCoeff ฯ†)โปยน * โˆ‘ x โˆˆ Finset.antidiagonal n, if x.2 < n then (coeff x.1) ฯ† * (coeff x.2) ฯ†โปยน else 0
        theorem PowerSeries.inv_eq_zero {k : Type u_2} [Field k] {ฯ† : PowerSeries k} :
        ฯ†โปยน = 0 โ†” constantCoeff ฯ† = 0
        @[simp]
        theorem PowerSeries.invOfUnit_eq {k : Type u_2} [Field k] (ฯ† : PowerSeries k) (h : constantCoeff ฯ† โ‰  0) :
        @[simp]
        theorem PowerSeries.invOfUnit_eq' {k : Type u_2} [Field k] (ฯ† : PowerSeries k) (u : kหฃ) (h : constantCoeff ฯ† = โ†‘u) :
        ฯ†.invOfUnit u = ฯ†โปยน
        @[simp]
        theorem PowerSeries.mul_inv_cancel {k : Type u_2} [Field k] (ฯ† : PowerSeries k) (h : constantCoeff ฯ† โ‰  0) :
        ฯ† * ฯ†โปยน = 1
        @[simp]
        theorem PowerSeries.inv_mul_cancel {k : Type u_2} [Field k] (ฯ† : PowerSeries k) (h : constantCoeff ฯ† โ‰  0) :
        ฯ†โปยน * ฯ† = 1
        theorem PowerSeries.eq_mul_inv_iff_mul_eq {k : Type u_2} [Field k] {ฯ†โ‚ ฯ†โ‚‚ ฯ†โ‚ƒ : PowerSeries k} (h : constantCoeff ฯ†โ‚ƒ โ‰  0) :
        ฯ†โ‚ = ฯ†โ‚‚ * ฯ†โ‚ƒโปยน โ†” ฯ†โ‚ * ฯ†โ‚ƒ = ฯ†โ‚‚
        theorem PowerSeries.eq_inv_iff_mul_eq_one {k : Type u_2} [Field k] {ฯ† ฯˆ : PowerSeries k} (h : constantCoeff ฯˆ โ‰  0) :
        ฯ† = ฯˆโปยน โ†” ฯ† * ฯˆ = 1
        theorem PowerSeries.inv_eq_iff_mul_eq_one {k : Type u_2} [Field k] {ฯ† ฯˆ : PowerSeries k} (h : constantCoeff ฯˆ โ‰  0) :
        ฯˆโปยน = ฯ† โ†” ฯ† * ฯˆ = 1
        theorem PowerSeries.mul_inv_rev {k : Type u_2} [Field k] (ฯ† ฯˆ : PowerSeries k) :
        (ฯ† * ฯˆ)โปยน = ฯˆโปยน * ฯ†โปยน
        theorem PowerSeries.smul_inv {k : Type u_2} [Field k] (r : k) (ฯ† : PowerSeries k) :
        (r โ€ข ฯ†)โปยน = rโปยน โ€ข ฯ†โปยน
        noncomputable def PowerSeries.firstUnitCoeff {k : Type u_2} [Field k] {f : PowerSeries k} (hf : f โ‰  0) :

        firstUnitCoeff is the non-zero coefficient whose index is f.order, seen as a unit of the field. It is obtained using divided_by_X_pow_order, defined in PowerSeries.Order.

        Instances For
          noncomputable def PowerSeries.Inv_divided_by_X_pow_order {k : Type u_2} [Field k] {f : PowerSeries k} (hf : f โ‰  0) :

          Inv_divided_by_X_pow_order is the inverse of the element obtained by diving a non-zero power series by the largest power of X dividing it. Useful to create a term of type Units, done in Unit_divided_by_X_pow_order

          Instances For

            Unit_of_divided_by_X_pow_order is the unit power series obtained by dividing a non-zero power series by the largest power of X that divides it.

            Instances For
              theorem PowerSeries.eq_divided_by_X_pow_order_Iff_Unit {k : Type u_2} [Field k] {f : PowerSeries k} (hf : f โ‰  0) :
              f = f.divXPowOrder โ†” IsUnit f

              The maximal ideal of kโŸฆXโŸง is generated by X.

              @[implicit_reducible]

              The ring isomorphism between the residue field of the ring of power series valued in a field K and K itself.

              Instances For