Module

PowerSeriesComposition.lean

Nyll.ValuedFieldTheory.LocalField.Analytic.LogExpSeries.FormalCoreBase.PowerSeriesComposition
6 declarations indexed from sourceView source ↗

Formal logarithm and exponential composition

This module develops the formal composition identities between Mathlib's PowerSeries.log and PowerSeries.exp that are used by the local-field logarithm and exponential.

Declarations

PowerSeries.alternating_mul_one_add_X

The alternating geometric series is the formal inverse of 1 + X.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace PowerSeries
theorem alternating_mul_one_add_X
    (A : Type*) [CommRing A] :
    (PowerSeries.mk fun n : ℕ => (-1 : A) ^ n) *
        (1 + PowerSeries.X : PowerSeries A) = 1 := by
  have h :=
    congrArg (PowerSeries.evalNegHom (A := A))
      (PowerSeries.mk_one_mul_one_sub_eq_one A)
  have hmk' :
      PowerSeries.evalNegHom (PowerSeries.mk (1 : ℕ → A)) =
        PowerSeries.mk fun n : ℕ => (-1 : A) ^ n := by
    ext n
    simp [PowerSeries.evalNegHom, PowerSeries.rescale_mk]
  simpa [hmk', sub_eq_add_neg] using h
PowerSeries.eq_zero_of_derivative_mul_one_add_X_eq_self

A torsion-free power series with zero constant coefficient satisfying f' * (1 + X) = f is zero.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace PowerSeries
theorem eq_zero_of_derivative_mul_one_add_X_eq_self
    (A : Type*) [CommRing A] [IsAddTorsionFree A] {f : PowerSeries A}
    (hD :
      PowerSeries.derivative f * (1 + PowerSeries.X : PowerSeries A) = f)
    (hc : PowerSeries.constantCoeff f = 0) :
    f = 0
PowerSeries.eq_one_add_X_of_derivative_mul_one_add_X_eq_self

A torsion-free power series with constant coefficient one satisfying f' * (1 + X) = f is 1 + X.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace PowerSeries
theorem eq_one_add_X_of_derivative_mul_one_add_X_eq_self
    (A : Type*) [CommRing A] [IsAddTorsionFree A] {f : PowerSeries A}
    (hD :
      PowerSeries.derivative f * (1 + PowerSeries.X : PowerSeries A) = f)
    (hc : PowerSeries.constantCoeff f = 1) :
    f = 1 + PowerSeries.X
PowerSeries.eq_X_of_derivative_eq_one

A power series with derivative one and constant coefficient zero is X.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace PowerSeries
theorem eq_X_of_derivative_eq_one
    (A : Type*) [CommRing A] [IsAddTorsionFree A] {f : PowerSeries A}
    (hD : PowerSeries.derivative f = 1)
    (hc : PowerSeries.constantCoeff f = 0) :
    f = PowerSeries.X
PowerSeries.exp_subst_log_eq_one_add_X

Substituting Mathlib's formal logarithm into its exponential yields 1 + X.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace PowerSeries
theorem exp_subst_log_eq_one_add_X
    (A : Type*) [CommRing A] [Algebra ℚ A] [IsAddTorsionFree A] :
    PowerSeries.subst (PowerSeries.log A) (PowerSeries.exp A) =
      (1 + PowerSeries.X : PowerSeries A)
PowerSeries.log_subst_exp_sub_one_eq_X

Substituting exp - 1 into Mathlib's formal logarithm yields X.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
attribute [local instance] Classical.propDecidable
namespace PowerSeries
theorem log_subst_exp_sub_one_eq_X
    (A : Type*) [CommRing A] [Algebra ℚ A] [IsAddTorsionFree A] :
    PowerSeries.subst ((PowerSeries.exp A) - 1) (PowerSeries.log A) =
      (PowerSeries.X : PowerSeries A)