The power-series logarithm of a product #
For power series f, g with constant coefficient 1 over a ℚ-algebra,
logOf (f * g) = logOf f + logOf g and logOf (f ^ n) = n • logOf f, where
logOf f = log(1 + X) substituted at f - 1 (Mathlib's PowerSeries.logOf). The proof is by
uniqueness of antiderivatives (PowerSeries.derivative.ext): no topology and no exp.
Main results #
PowerSeries.deriv_logOf_mul:(logOf h)' · h = h'forhwith constant coefficient1.PowerSeries.logOf_mul:logOf (f * g) = logOf f + logOf g.PowerSeries.logOf_one,PowerSeries.logOf_pow:logOf 1 = 0,logOf (f ^ n) = n • logOf f.PowerSeries.coeff_logTrunc_pow,PowerSeries.polyPL_coeff: the coefficient form oflogOf ((1 + X) ^ p) = p • log(1 + X)for the truncated logarithm, as a power series and as a polynomial. This is the form used for the Adams eigen-relation of the Connes–Kreimer Hopf algebra (Formalizations.RingTheory.HopfAlgebra.ConnesKreimer.Eulerian).
Mathlib has logOf, derivative_log_mul_one_add_X ((log(1 + X))' · (1 + X) = 1, used here) and
logOf_exp, but at the pinned commit not the additivity logOf_mul.
References #
- C. Marín, How a Tree Forgets Its Order: the Eulerian idempotent and the Adams spectrum on the
commutative Connes–Kreimer–Butcher Hopf algebra of rooted trees, machine-checked in Lean 4
(2026), doi:10.5281/zenodo.20774821. Ported from
PowerSeriesLogMul.leanof karlesmarin/connes-kreimer-lean (Lean v4.30.0-rc2).
The derivative (log(1+X))' substituted at h-1 is the inverse of h
(for h with constant term 1): (log A)'.subst (h-1) * h = 1.
The chain-rule form of the derivative of logOf: (logOf h)' · h = h'
for h with constant term 1.
Logarithm of a product at the power-series level:
logOf (f · g) = logOf f + logOf g for f, g with constant term 1.
logOf 1 = 0.
Logarithm of a power: logOf (f ^ n) = n • logOf f for f with constant term 1.
A series with zero constant coefficient has its d-th power vanishing below degree d.
Coefficient form of logOf_pow. The degree-≤N truncation of the log series, substituted
at (1+X)^p − 1, has m-th coefficient p · cₘ for m ≤ N (cₘ = coeff m (log A)).
Polynomial form of coeff_logTrunc_pow, for evaluation at a ring element through
Polynomial.eval₂.