Skip to content

feat(SpaceTime): the spacetime algebra and its Taylor series - #1702

Merged
jstoobysmith merged 7 commits into
leanprover-community:masterfrom
nateabr:spacetime-taylor-data
Oct 2, 2026
Merged

jstoobysmith merged 7 commits into
leanprover-community:masterfrom
nateabr:spacetime-taylor-data

Conversation

@nateabr

@nateabr nateabr commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

Adds the spacetime algebra, formal power series in the four spacetime directions. Compared with
#1415, the repeated foldl is now the definition iteratedPDeriv, and Taylor's formula and
taylorEquiv are new. The remaining lemmas are carried over from #1415, renamed to use
iteratedPDeriv. I would appreciate a careful review of the documentation as well. I used AI to
help with this PR.

@github-actions

Copy link
Copy Markdown
Contributor

Thank you for this pull-request (PR). If this is your first PR, welcome to the community!

Below is what will happen next. Please read carefully if you are not familiar with the process. You may open other PRs while this one is being reviewed, and can stack PRs on top of each other, so don't let these steps slow you down.

  1. Some automated checks will be run on your PR. You can see the results of these checks at the buttom of your PR page. If any of these checks fail, you will need to fix the issues before your PR can be merged. You can learn more about these here, including how to run them locally, which is sometimes quicker than relying on the GitHub Actions. If you have never had a PR merged before, you may have to wait for a reviewer to manually start these checks (this is for security).

  2. A reviewer will look at your PR and may ask you to make changes. This may happen a couple of days after you submit your PR, so you may need to be patient. But it should not be longer than that - if it is please bring it to the attention of the community on the Zulip. The level of review will depend on where your PR is submitted. If it is submitted to ./Physlib or ./QuantumInfo, the review will be more thorough than if it is submitted to ./PhyslibAlpha. You can find out more about what the review process is looking for in our review guidelines. If a reviewer adds an awaiting-author label to your PR, address the review comments, then please remove that label by adding a comment with -awaiting-author. This helps us keep track of reviews.

  3. The reviewer will either approve your PR, or request more changes (in which case we return to step 2). Once your PR is approved, it will be merged by a maintainer, this should happen shortly after approval, though you may get more comments at this stage.

Tip: The easiest way to get have a fast review is to submit a PR that is small and self-contained, and has clear documentation explaining why things are the way they are in your chages.

If you have any problems or questions, please reach out to the community on the Zulip.

ring

/-- The factorial `s!` is nonzero. -/
lemma prod_factorial_ne_zero (s : Multiset (Fin 1 ⊕ Fin 3)) :

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This seems like a rewrite of a Mathlib proof, and we should likely just include it directly in lemmas rather then making it seperate here

-/

/-- The series whose base-point derivative values are `F`. -/
noncomputable def taylorSeries (F : Multiset (Fin 1 ⊕ Fin 3) → ℂ) : SpaceTimeAlgebra :=

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If possible, I think we should define taylorSeries as a map from a smooth function SpaceTime → ℂ and give this another name.

@jstoobysmith

Copy link
Copy Markdown
Member

awaiting-author

@github-actions github-actions Bot added the awaiting-author A reviewer has asked the author a question or requested changes label Oct 1, 2026
@nateabr

nateabr commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

I've renamed the derivative-values construction to ofDerivValues, so taylorSeries is now the actual Taylor series of a smooth function in the new file, SpaceTimeAlgebra/TaylorSeries.lean.

-awaiting-author

@github-actions github-actions Bot removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 1, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
open scoped ContDiff

/-- The `ℂ`-subalgebra of smooth complex-valued functions on `SpaceTime d`. -/
def smoothFunctions (d : ℕ := 3) : Subalgebra ℂ (SpaceTime d → ℂ) where

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I wouldn't define smooth functions here.

-/

/-- The Taylor series at `x₀` of a smooth complex-valued function on spacetime. -/
noncomputable def taylorSeries (x₀ : SpaceTime) : smoothFunctions →ₗ[ℂ] SpaceTimeAlgebra where

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think to prevent the need for smooth functions (unless they are already bundled as a type in Mathlib), we should define this function for all functions. And then show that on smooth functions it has the desired properties.

@jstoobysmith jstoobysmith added the awaiting-author A reviewer has asked the author a question or requested changes label Oct 2, 2026
@nateabr

nateabr commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator Author

I'm wondering what is the best way to move forward with this @jstoobysmith

There is a Mathlib type C^∞⟮…⟯, but for ℂ-valued functions on spacetime it's only an ℝ-module and not a ring
The two options I see are:

  1. go with the all-functions version (ie. the method that you have recommended), and add a bundled version out of C^∞⟮…⟯ later if we need one (e.g. a ring hom for the matrix stuff), or
  2. use C^∞⟮…⟯ as the domain directly by using the current version I have with a ring instance?

I'm leaning towards options 1 but would like your opinion on this

-awaiting-author

@github-actions github-actions Bot removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 2, 2026
@jstoobysmith

Copy link
Copy Markdown
Member

I also think 1 makes more sense here. It ends up being easier in the long run I think.

awaiting-author

@github-actions github-actions Bot added the awaiting-author A reviewer has asked the author a question or requested changes label Oct 2, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added large and removed medium labels Oct 2, 2026
@nateabr

nateabr commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator Author

Have made this change

-awaiting-author

@github-actions github-actions Bot removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 2, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If we can get away without making these definitions or making them general properties of derivatives on SpaceTime I think this would be better.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

have addressed, this was honestly quite dim from my side. I got far too excited to add something to the new mathlib folder

@jstoobysmith

Copy link
Copy Markdown
Member

awaiting-author

@github-actions github-actions Bot added the awaiting-author A reviewer has asked the author a question or requested changes label Oct 2, 2026
@github-actions github-actions Bot added medium and removed large labels Oct 2, 2026
@nateabr

nateabr commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator Author

-awaiting-author

@github-actions github-actions Bot removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 2, 2026

@jstoobysmith jstoobysmith left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Approved. Will merge shortly.

@jstoobysmith jstoobysmith added the ready-to-merge This PR is approved and will be merged shortly label Oct 2, 2026
@jstoobysmith
jstoobysmith added this pull request to the merge queue Oct 2, 2026
Merged via the queue into leanprover-community:master with commit 70e4037 Oct 2, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

medium ready-to-merge This PR is approved and will be merged shortly t-space-and-time

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants