Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat: define the ordinary hypergeometric function #17455

Closed
wants to merge 27 commits into from

Conversation

EdwardWatine
Copy link
Collaborator

Add the definition of the ordinary hypergeometric series, and show that its radius is one. Part of this requires an additional theorem about ascPochhammer, which is found in the Pochhammer file. Closely follows the exponential series definition.

#15966


Open in Gitpod

EdwardWatine and others added 16 commits September 10, 2024 21:03
…oid poles in the sum later.

TODO: find the minimal classes on ascPochhammer to move to an appropriate location.
…y\Polynomial\Pochhammer): add the ordinaryHyperGeometricSeries and some related theorems

Add the definition of the ordinary hypergeometric series, and show that its radius is one. Part of this requires an additional theorem about ascPochhammer, which can be found in the ascPochhammer file. Closely follows the exponential series definition.

#15966
@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 Oct 5, 2024
Copy link

github-actions bot commented Oct 5, 2024

PR summary 5a29ad33d6

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.RingTheory.Polynomial.Pochhammer 955 960 +5 (+0.52%)
Import changes for all files
Files Import difference
7 files Mathlib.Data.Nat.Choose.Cast Mathlib.RingTheory.Polynomial.Pochhammer Mathlib.Algebra.Polynomial.HasseDeriv Mathlib.Algebra.Polynomial.Taylor Mathlib.RingTheory.Polynomial.Bernstein Mathlib.RingTheory.Binomial Mathlib.Data.Nat.Factorial.Cast
5
Mathlib.Analysis.Analytic.OfScalars 1388
Mathlib.Analysis.SpecialFunctions.OrdinaryHypergeometric 1404

Declarations diff

+ RCLike.tendsto_add_mul_div_add_mul_atTop_nhds
+ ascPochhammer_eval_eq_zero_iff
+ ascPochhammer_eval_neg_coe_nat_of_lt
+ ofScalars
+ ofScalarsSum
+ ofScalarsSum_eq_tsum
+ ofScalars_apply_eq
+ ofScalars_apply_eq'
+ ofScalars_eq_zero
+ ofScalars_norm
+ ofScalars_norm_eq_mul
+ ofScalars_norm_le
+ ofScalars_op
+ ofScalars_radius_eq_inv_of_tendsto
+ ofScalars_radius_eq_of_tendsto
+ ofScalars_sum_eq
+ ofScalars_unop
+ ordinaryHypergeometric
+ ordinaryHypergeometricCoefficient
+ ordinaryHypergeometricSeries
+ ordinaryHypergeometricSeries_apply_eq
+ ordinaryHypergeometricSeries_apply_eq'
+ ordinaryHypergeometricSeries_apply_zero
+ ordinaryHypergeometricSeries_eq_zero_iff
+ ordinaryHypergeometricSeries_eq_zero_of_neg_nat
+ ordinaryHypergeometricSeries_norm_div_succ_norm
+ ordinaryHypergeometricSeries_radius_eq_one
+ ordinaryHypergeometricSeries_symm
+ ordinaryHypergeometric_eq_tsum
+ ordinaryHypergeometric_radius_top_of_neg_nat₁
+ ordinaryHypergeometric_radius_top_of_neg_nat₂
+ ordinaryHypergeometric_radius_top_of_neg_nat₃
+ ordinaryHypergeometric_sum_eq
+ ordinaryHypergeometric_zero

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.

@EdwardWatine
Copy link
Collaborator Author

I intend to PR the commented inline theorem in Pochhammer after the subsequent build after this is merged, in order to limit the scope of this PR

@EdwardWatine EdwardWatine added awaiting-CI t-analysis Analysis (normed *, calculus) labels Oct 5, 2024
@ocfnash ocfnash self-requested a review October 6, 2024 15:10
@alreadydone alreadydone changed the title feat(Analysis\SpecialFunctions\OrdinaryHypergeometric) and (RingTheory\Polynomial\Pochhammer): add the ordinaryHyperGeometricSeries and related theorems feat(Analysis/SpecialFunctions/OrdinaryHypergeometric) and (RingTheory/Polynomial/Pochhammer): add the ordinaryHyperGeometricSeries and related theorems Oct 8, 2024
@ocfnash ocfnash changed the title feat(Analysis/SpecialFunctions/OrdinaryHypergeometric) and (RingTheory/Polynomial/Pochhammer): add the ordinaryHyperGeometricSeries and related theorems feat: define the ordinary hypergeometric function Oct 13, 2024
@EdwardWatine EdwardWatine removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 13, 2024
@ocfnash
Copy link
Contributor

ocfnash commented Oct 13, 2024

@EdwardWatine Note that this is currently failing CI! I will wait to review again until it is ready.

@ocfnash
Copy link
Contributor

ocfnash commented Oct 13, 2024

One other high level comment as I look at the material in this PR and the similar API for the exponential series is that we should probably introduce a definition:

def FormalMultilinearSeries.ofScalars (c : ℕ → 𝕂) : FormalMultilinearSeries 𝕂 𝔸 𝔸 :=
  fun n ↦ c n • ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸

and develop some API for that. I think it would simplify the work here.

@EdwardWatine
Copy link
Collaborator Author

EdwardWatine commented Oct 13, 2024

Whoops, I keep forgetting to restart the file after changing the other one...
I agree with adding some more support for scalar Multilinear series, perhaps this could be extended to multiple types of maps and not just MkPiAlgebraFin?

Copy link
Contributor

@ocfnash ocfnash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking great, a few more nitpicks below:

Mathlib/RingTheory/Polynomial/Pochhammer.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/Polynomial/Pochhammer.lean Outdated Show resolved Hide resolved
@ocfnash
Copy link
Contributor

ocfnash commented Oct 13, 2024

I agree with adding some more support for scalar Multilinear series, perhaps this could be extended to multiple types of maps and not just MkPiAlgebraFin?

I think MkPiAlgebraFin is special enough to deserve it's own dedicated API. If you have the appetite to write this as part of this PR and use it to implement the work here then that would be great. If not, I'm also OK with leaving things are they are for now and I'll do one final round of review after you've had a chance to react to my latest round of nitpicks.

@ocfnash ocfnash added the awaiting-author A reviewer has asked the author a question or requested changes label Oct 13, 2024
@EdwardWatine
Copy link
Collaborator Author

I was having a look for adding API as you suggest, but I'm not entirely sure where it would lie. Ideally it would go in Mathlib\Analysis\Calculus\FormalMultilinearSeries.lean, but we really want to be able to use other results that come from other files such as Mathlib\Analysis\Analytic\Basic.lean and Mathlib\Analysis\NormedSpace\Multilinear\Basic.lean (I think). Perhaps this needs a new file?

@ocfnash
Copy link
Contributor

ocfnash commented Oct 14, 2024

I was having a look for adding API as you suggest, but I'm not entirely sure where it would lie. [...] Perhaps this needs a new file?

Yes I think a new file would be the right move. Maybe Mathlib.Analysis.Analytic.ScalarSeries or Mathlib.Analysis.Analytic.OfScalars or ...

@EdwardWatine EdwardWatine removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 15, 2024
Copy link
Contributor

@ocfnash ocfnash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all of this!

Please apply the remaining suggestions and then feel free to merge 🎉

bors d+

Mathlib/Analysis/SpecificLimits/RCLike.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/SpecificLimits/RCLike.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/SpecificLimits/RCLike.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/Polynomial/Pochhammer.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/Polynomial/Pochhammer.lean Show resolved Hide resolved
Mathlib/Analysis/Analytic/OfScalars.lean Outdated Show resolved Hide resolved
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 16, 2024

✌️ EdwardWatine can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 🎉

bors merge

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the ready-to-merge This PR has been sent to bors. label Oct 17, 2024
mathlib-bors bot pushed a commit that referenced this pull request Oct 17, 2024
Add the definition of the ordinary hypergeometric series, and show that its radius is one. Part of this requires an additional theorem about ascPochhammer, which is found in the Pochhammer file. Closely follows the exponential series definition.

#15966



Co-authored-by: Alvan Caleb Arulandu <[email protected]>
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 17, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat: define the ordinary hypergeometric function [Merged by Bors] - feat: define the ordinary hypergeometric function Oct 17, 2024
@mathlib-bors mathlib-bors bot closed this Oct 17, 2024
@mathlib-bors mathlib-bors bot deleted the edwatine/hypergeometric-function branch October 17, 2024 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! ready-to-merge This PR has been sent to bors. t-analysis Analysis (normed *, calculus)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants