[Merged by Bors] - feat(RingTheory/MvPowerSeries): partial derivatives of MvPowerSeries#39626
Conversation
PR summary 9ea5caf3a2
|
| File | Base Count | Head Count | Change |
|---|---|---|---|
| Mathlib.RingTheory.PowerSeries.Derivative | 1790 | 1563 | -227 (-12.68%) |
| Mathlib.RingTheory.PowerSeries.Exp | 1793 | 1797 | +4 (+0.22%) |
Import changes for all files
| Files | Import difference |
|---|---|
Mathlib.RingTheory.PowerSeries.Derivative |
-227 |
14 filesMathlib.NumberTheory.LSeries.HurwitzZetaValues Mathlib.NumberTheory.ModularForms.CuspFormSubmodule Mathlib.NumberTheory.ModularForms.DedekindEta Mathlib.NumberTheory.ModularForms.Delta Mathlib.NumberTheory.ModularForms.Derivative Mathlib.NumberTheory.ModularForms.DimensionFormulas.LevelOne Mathlib.NumberTheory.ModularForms.Discriminant Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.MDifferentiable Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.Summable Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.Transform Mathlib.NumberTheory.ModularForms.EisensteinSeries.QExpansion Mathlib.NumberTheory.ModularForms.LevelOne.DimensionFormula Mathlib.NumberTheory.ModularForms.LevelOne.GradedRing Mathlib.NumberTheory.ZetaValues |
1 |
4 filesMathlib.NumberTheory.BernoulliPolynomials Mathlib.NumberTheory.Bernoulli Mathlib.RingTheory.PowerSeries.Exp Mathlib.RingTheory.PowerSeries.Log |
4 |
Mathlib.RingTheory.MvPowerSeries.Derivative (new file) |
1257 |
Declarations diff (regex)
+ coeff_pderiv
+ coeff_pderivFun
+ derivative_one
+ pderiv
+ pderiv.ext
+ pderivFun
+ pderivFun_C
+ pderivFun_add
+ pderivFun_coe
+ pderivFun_coe_mul_coe
+ pderivFun_mul
+ pderivFun_one
+ pderivFun_smul
+ pderiv_C
+ pderiv_X
+ pderiv_X_of_ne
+ pderiv_X_self
+ pderiv_coe
+ pderiv_inv
+ pderiv_inv'
+ pderiv_invOf
+ pderiv_one
+ pderiv_pow
+ trunc_pderiv
+ trunc_pderivFun
- derivativeFun_coe_mul_coe
You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>
## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.
Declarations diff (Lean)
✅ Lean-aware diff — post-build, computed from the Lean environment (commit
9ea5caf).
- +20 new declarations
- −0 removed declarations
+MvPowerSeries.coeff_pderiv
+MvPowerSeries.coeff_pderivFun
+MvPowerSeries.pderiv
+MvPowerSeries.pderiv.ext
+MvPowerSeries.pderivFun
+MvPowerSeries.pderivFun_C
+MvPowerSeries.pderivFun_add
+MvPowerSeries.pderivFun_one
+MvPowerSeries.pderiv_C
+MvPowerSeries.pderiv_X
+MvPowerSeries.pderiv_X_of_ne
+MvPowerSeries.pderiv_X_self
+MvPowerSeries.pderiv_coe
+MvPowerSeries.pderiv_inv
+MvPowerSeries.pderiv_inv'
+MvPowerSeries.pderiv_invOf
+MvPowerSeries.pderiv_one
+MvPowerSeries.pderiv_pow
+MvPowerSeries.trunc_pderiv
+PowerSeries.derivative_oneNo changes to strong technical debt.
Increase in weak tech debt: (relative, absolute) = (1.00, 0.00)
| Current number | Change | Type (weak) |
|---|---|---|
| 5011 | 1 | exposed public sections |
Current commit 9ea5caf3a2
Reference commit cd580e54f1
This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
…_single_C` (#39623) These lemmas are multivariate analogs to `Polynomial.coeff_C_of_ne_zero`, `Polynomial.coeff_C_succ` and `PowerSeries.coeff_C_of_ne_zero` and `PowerSeries.coeff_succ_C`. They are useful for defining partial derivatives for multivariate power series, see PR #39626. - [x] depends on: #39632
|
This pull request has conflicts, please merge |
…39625) Generalize `coeff_trunc_mul_trunc_eq_coeff_mul` (and its analogs for `truncFinset` and `trunc'`) to allow for different truncation levels for the two arguments. This matches the API for univariate power series, where we already have `PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc₂`. This is useful for defining partial derivatives of multivariate power series, see PR #39626. Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
| ← coe_mul, MvPolynomial.coe_add] | ||
|
|
||
| theorem pderivFun_mul {i : σ} (f g : MvPowerSeries σ R) : | ||
| pderivFun i (f * g) = f • g.pderivFun i + g • f.pderivFun i := by |
There was a problem hiding this comment.
Ah, it's to define the derivation as a Deriv?
There was a problem hiding this comment.
Yes, although actually we can also use * and it still works in the definition of pderiv because of defeqs.
There was a problem hiding this comment.
I've changed it to * for now.
There was a problem hiding this comment.
I see that leibniz' uses smul, so I think your previous version was better, sorry for the noise.
|
Thanks! bors d+ |
|
✌️ justus-springer can now approve this pull request until 2026-07-30 01:52 UTC (in 2 weeks). To approve and merge, reply with
|
|
bors r+ |
#39626) Previously, we had formal derivatives for `PowerSeries` and `Polynomial` and formal partial derivatives for `MvPolynomial`, but no formal partial derivatives for `MvPowerSeries`. This PR adds them. Furthermore, `PowerSeries.derivative` is refactored to be defined in terms of `MvPowerSeries.pderiv`, which reduces code duplication (In particular, there is no need to define the bare function `PowerSeries.derivativeFun` anymore). Most proofs are direct generalizations from the univariate case. I only had to add a few missing API lemmas, which I am PR'ing separately below: - [x] depends on: #39623 - [x] depends on: #39624 - [x] depends on: #39625
|
Pull request successfully merged into master. Build succeeded: |
MvPowerSeriesMvPowerSeries
Previously, we had formal derivatives for
PowerSeriesandPolynomialand formal partial derivatives forMvPolynomial, but no formal partial derivatives forMvPowerSeries. This PR adds them. Furthermore,PowerSeries.derivativeis refactored to be defined in terms ofMvPowerSeries.pderiv, which reduces code duplication (In particular, there is no need to define the bare functionPowerSeries.derivativeFunanymore).Most proofs are direct generalizations from the univariate case. I only had to add a few missing API lemmas, which I am PR'ing separately below:
coeff_C_of_ne_zeroandcoeff_add_single_C#39623pderiv#39624