Skip to content

feat(RingTheory/HopfAlgebra): ascending Pochhammer is of binomial type#39636

Open
RaggedR wants to merge 14 commits into
leanprover-community:masterfrom
RaggedR:feat/ascpochhammer-binomial
Open

feat(RingTheory/HopfAlgebra): ascending Pochhammer is of binomial type#39636
RaggedR wants to merge 14 commits into
leanprover-community:masterfrom
RaggedR:feat/ascpochhammer-binomial

Conversation

@RaggedR
Copy link
Copy Markdown

@RaggedR RaggedR commented May 21, 2026

This adds two concrete examples to the delta operator framework from #39465, illustrating the change of basis between the two classical families of binomial-type sequences beyond the monomials.

The first file proves that the ascending Pochhammer (rising factorial) sequence is of binomial type. The backward difference operator ∇f(x) = f(x) − f(x−1) is defined, shown to be a delta operator, and the ascending Pochhammer sequence is verified as its basic sequence via a telescoping argument. The final theorem ascPochhammer_isBinomialType is a one-line application of Rota's classification from #39465, complementing the existing descPochhammer_isBasicSequence_forwardDiff for falling factorials and the forward difference.

The second file computes the Jabotinsky matrix entries of the geometric delta series y/(1−y), giving the unnormalized Lah numbers C(n−1, k−1) as the change-of-basis coefficients between rising and falling factorials. The proof factors the power (y/(1−y))ᵏ = Xᵏ · (1−X)⁻ᵏ and applies Mathlib's existing mk_one_pow_eq_mk_choose_add for the negative binomial series.


RaggedR added 7 commits May 15, 2026 21:51
…G_a)

Add the Coalgebra, Bialgebra, and HopfAlgebra instances on `R[X]` with
additive comultiplication `Δ(X) = X ⊗ 1 + 1 ⊗ X`, counit `ε(p) = p(0)`,
and antipode `S(X) = -X`. This is the coordinate ring of the additive
group scheme 𝔾_a, dual to the multiplicative 𝔾_m already formalized via
Laurent polynomials.
Adds `module` keyword and changes `import` to `public import` to match
the module system introduced in Lean 4.30.0-rc2, which Mathlib master
now requires.
Add `public section` for Lean 4.30.0 module visibility and remove
deprecated/unused simp lemmas (`AlgEquiv.toAlgHom_eq_coe`,
`AlgHom.coe_coe`, `Algebra.TensorProduct.assoc_tmul`) flagged by linters.
Formalize the fundamental theorem of the umbral calculus: the basic sequence
of any delta operator is a sequence of binomial type.

New definitions:
- `Polynomial.IsBinomialType`: binomial convolution for the coalgebra comultiplication
- `Polynomial.IsShiftEquivariant`: commutes with Taylor shift
- `Polynomial.IsDeltaOperator`: shift-equivariant, kills constants, unit leading term
- `Polynomial.forwardDiff`: forward difference operator
- `Polynomial.IsBasicSequence`: basic sequence of a delta operator

Main results:
- `Polynomial.X_pow_isBinomialType`: monomials are of binomial type
- `Polynomial.descPochhammer_isBinomialType`: Vandermonde's identity
- `Polynomial.IsBasicSequence.isBinomialType`: Rota's classification
@github-actions github-actions Bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label May 21, 2026
@github-actions
Copy link
Copy Markdown

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@RaggedR
Copy link
Copy Markdown
Author

RaggedR commented May 21, 2026

maintainer merge

Could a maintainer please add the LLM-generated label? This PR was written with AI assistance (Claude).

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 21, 2026

PR summary 6cf2ceee25

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RingTheory.HopfAlgebra.Lah (new file) 1205
Mathlib.RingTheory.HopfAlgebra.Polynomial (new file) 1228
Mathlib.RingTheory.HopfAlgebra.BinomialType (new file) 1231
Mathlib.RingTheory.HopfAlgebra.DeltaOperator (new file) 1341
Mathlib.RingTheory.HopfAlgebra.AscPochhammer (new file) 1342

Declarations diff

+ IsBasicSequence
+ IsBasicSequence.isBinomialType
+ IsBinomialType
+ IsBinomialType.comp_coalgebraHom
+ IsBinomialType.comul_zero
+ IsBinomialType.of_coalgebraHom
+ IsDeltaOperator
+ IsShiftEquivariant
+ X_pow_isBasicSequence
+ X_pow_isBinomialType
+ aeval_C_eq_C_eval
+ antipodeAdditiveAlgHom
+ antipodeAdditiveAlgHom_C
+ antipodeAdditiveAlgHom_X
+ ascPochhammer_isBasicSequence_backwardDiff
+ ascPochhammer_isBinomialType
+ backwardDiff
+ backwardDiff_C
+ backwardDiff_X
+ backwardDiff_apply
+ backwardDiff_ascPochhammer
+ backwardDiff_isDeltaOperator
+ backwardDiff_isShiftEquivariant
+ coeff_lahSeries_pow
+ coeff_lahSeries_pow_succ
+ coeff_taylor_sub_eq
+ comulAdditiveAlgHom
+ comulAdditiveAlgHom_C
+ comulAdditiveAlgHom_X
+ comul_X_sub_natCast
+ comul_eq
+ comul_taylor_bridge
+ counitAdditiveAlgHom
+ counitAdditiveAlgHom_C
+ counitAdditiveAlgHom_X
+ counit_eq
+ delta_ker_eval_zero
+ delta_op_Q_X_eq_C
+ derivative_isDeltaOperator
+ descPochhammer_isBasicSequence_forwardDiff
+ descPochhammer_isBinomialType
+ descPochhammer_mul_X
+ descPochhammer_mul_X_sub
+ eval_determines
+ eval_tensor_zero
+ forwardDiff
+ forwardDiff_C
+ forwardDiff_X
+ forwardDiff_apply
+ forwardDiff_isDeltaOperator
+ forwardDiff_isShiftEquivariant
+ forwardDiff_one_descPochhammer
+ hasseDeriv_isShiftEquivariant
+ instBialgebra
+ instCoalgebra
+ instCoalgebraStruct
+ instHopfAlgebra
+ instTorsionFree
+ isShiftEquivariant_add
+ isShiftEquivariant_comp
+ lTensor_comul_eq
+ lTensor_counit_eq
+ lahSeries
+ lahSeries_pow
+ mk_flip_one_eq_includeLeft
+ mk_one_eq_includeRight
+ natDegree_Q_of_bounded
+ natDegree_delta_op_pow
+ natDegree_taylor_sub_le
+ rTensor_comul_eq
+ rTensor_counit_eq
+ sum_hasseDeriv_eq_zero
+ summand_identity
+ taylor_basic_eq
+ taylor_invariant_eq_C
+ taylor_neg_one_ascPochhammer_succ
+ taylor_one_X_sub_natCast
+ taylor_one_mul

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.


No changes to strong technical debt.
No changes to weak technical debt.

@github-actions github-actions Bot added the t-ring-theory Ring theory label May 21, 2026
@themathqueen
Copy link
Copy Markdown
Collaborator

Could a maintainer please add the LLM-generated label? This PR was written with AI assistance (Claude).

You can add the label by commenting LLM-generated.

@themathqueen
Copy link
Copy Markdown
Collaborator

Also, when you add "depends on: prnumber" in the description, please add it below the --- and follow the template given, i.e.,
- [ ] depends on: #prnumber

I've edited the description for you here, but you should do them for the rest of your PRs.

@mathlib-dependent-issues mathlib-dependent-issues Bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label May 21, 2026
@mathlib-dependent-issues
Copy link
Copy Markdown

This PR/issue depends on:

RaggedR added 2 commits May 21, 2026 21:56
The `intro` tactic cannot see through the `IsShiftEquivariant` definition
when it is imported from another module. Adding an explicit `unfold` makes
the proof robust to cross-module reducibility.
`unfold` fails on applied definitions in Lean 4.30; `delta` forces
definitional unfolding regardless of reducibility.
@RaggedR
Copy link
Copy Markdown
Author

RaggedR commented May 21, 2026

LLM-generated

@github-actions github-actions Bot added the LLM-generated PRs with substantial input from LLMs - review accordingly label May 21, 2026
RaggedR added 4 commits May 22, 2026 00:08
Both `intro`, `unfold`, and `delta` fail to see through
IsShiftEquivariant across module boundaries in Lean 4.30.
`simp only` with the definition name forces unfolding.
`intro`, `unfold`, `delta`, and `simp only` all fail to see through
IsShiftEquivariant across module boundaries in Lean 4.30. Term-mode
`fun a =>` directly provides the argument without needing to unfold
the definition.
Lean 4.30's module system makes definitions unexposed by default.
`@[expose] public section` is needed for definitions like
IsShiftEquivariant to be unfoldable by tactics and term-mode
unification across module boundaries.
With @[expose], simp can already prove these from the definition,
making the @[simp] tags redundant (linter error).
@RaggedR RaggedR force-pushed the feat/ascpochhammer-binomial branch from b7a041d to 6cf2cee Compare May 22, 2026 09:47
@RaggedR
Copy link
Copy Markdown
Author

RaggedR commented May 22, 2026

Please add the LLM-generated label to this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) LLM-generated PRs with substantial input from LLMs - review accordingly new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-ring-theory Ring theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants