Skip to content

feat(QuantumMechanics/Blackbody): Added Canonical Definition Planck's law - #1629

Merged
jstoobysmith merged 6 commits into
leanprover-community:masterfrom
Sammybro11:PlancksLaw
Sep 12, 2026
Merged

jstoobysmith merged 6 commits into
leanprover-community:masterfrom
Sammybro11:PlancksLaw

Conversation

@Sammybro11

Copy link
Copy Markdown
Contributor

Description of Changes

New Directory at:
Physlib/QuantumMechanics/Blackbody to store further blackbody radiation related definitions and proofs.

New Files at:
Physlib/QuantumMechanics/Blackbody/PlancksLaw.lean Added definitions and positive and zero values lemmas for Spectral Radiance due to Planck's Law

Modified File at:
Physlib.lean added import for Planck's Law

Reviewer Guide

I have added frequency with Real number type right now but plan to make changes to that later when frequency is implemented. Also the conversion between frequency and wavelength can be added after that.

Law
Created Blackbody folder to further have place for Electromagnetic
Radiation based definitions proofs.

Currently only contains Spectral Radiance per unit Frequency and
positivity of that value.
@github-actions github-actions Bot added the small label Sep 10, 2026
@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.

@github-actions github-actions Bot added the t-quantum-mechanics Quantum mechanics label Sep 10, 2026
@nateabr nateabr self-assigned this Sep 10, 2026

@nateabr nateabr left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks good! Some comments to fix

@[expose] public section


namespace Constants

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

spectralRadiance is not itself a physical constant, so putting it in Constants makes the API misleading. Could this be moved into a namespace such as Blackbody or another appropriate radiation namespace?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Decided to name it Blackbody itself since the folder is also blackbody, other name possibly could have been EMR but that would intersect with EM based modules, so I just went with blackbody


/-- For a given ν frequency, the spectral radiance of a blackbody is 0 at
absolute zero temperature. -/
lemma spectralRadiance_absZero (c : SpeedOfLight) (ν : ℝ) :

@nateabr nateabr Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

If we look at the definiton of spectralRadiance at T = 0, kB * (T : ℝ) = 0, therefore the computation below is 0/0, which in lean, by convention, is 0. Ofcourse mathematically, this proof is not valid even though the code has compiled.

We could define the physical formula only on positive frequency and temperature, and extend it by zero otherwise:

noncomputable def spectralRadiance (c : SpeedOfLight) (ν : ℝ) (T : Temperature) : ℝ := if 0 < ν ∧ 0 < (T : ℝ) then 2 * h * ν ^ 3 / ((c : ℝ) ^ 2 * (Real.exp (h * ν / (kB * (T : ℝ))) - 1)) else 0

Then the absolute-zero lemma reflects an explicit choice in the API, rather than Lean’s division convention. A later PR could state and prove that this extension agrees with the limit as $T \to 0^+$.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That makes alot more sense, I was wondering why I was getting no errors. Thank you

@nateabr

nateabr commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

awaiting-author

@github-actions github-actions Bot added the awaiting-author A reviewer has asked the author a question or requested changes label Sep 10, 2026
…te API, and changes in definition of Planck's Law
@Sammybro11

Copy link
Copy Markdown
Contributor Author

-awaiting-author

@github-actions github-actions Bot removed the awaiting-author A reviewer has asked the author a question or requested changes label Sep 11, 2026
@Sammybro11
Sammybro11 requested a review from nateabr September 11, 2026 13:56
@nateabr

nateabr commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Looks good to me, thanks

@jstoobysmith jstoobysmith added ready-to-merge This PR is approved and will be merged shortly and removed reviewer-approved labels Sep 12, 2026
@jstoobysmith

Copy link
Copy Markdown
Member

Looks good to me!

@jstoobysmith
jstoobysmith merged commit 16380e4 into leanprover-community:master Sep 12, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR is approved and will be merged shortly small t-quantum-mechanics Quantum mechanics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants