Skip to content

Add odd-dimensional iterated norm Laplacian#1175

Merged
zhikaip merged 3 commits into
leanprover-community:masterfrom
Lemmy00:milikic/odd-dimensional-laplacian-core
Jun 15, 2026
Merged

Add odd-dimensional iterated norm Laplacian#1175
zhikaip merged 3 commits into
leanprover-community:masterfrom
Lemmy00:milikic/odd-dimensional-laplacian-core

Conversation

@Lemmy00

@Lemmy00 Lemmy00 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

This builds on the norm-power Laplacian and fundamental-solution API added in the preceding PRs.

It adds the odd-dimensional analytic core in a dedicated module: in dimension 2 * m + 1, the (m + 1)-fold distributional Laplacian of the distribution induced by ‖x‖ is an explicit nonzero scalar multiple of diracDelta ℝ 0.

Main additions:

  • Physlib.SpaceAndTime.Space.Norm.IteratedLaplacian
  • oddNormIteratedLaplacianCoeff and oddNormIteratedLaplacianCoeff_ne_zero
  • iterated_distLaplacian_norm_zpow_odd_eq_smul_diracDelta

Verification run locally:

  • lake build Physlib.SpaceAndTime.Space.Norm Physlib.SpaceAndTime.Space.Norm.IteratedLaplacian
  • ./scripts/lint-style.sh
  • lake exe runPhyslibLinters
  • lake build

@github-actions

Copy link
Copy Markdown
Contributor

Thank you for this PR, which will now be reviewed. Please
see our review guidelines
if you are not familiar with the process. You should expect a back and forth
with a reviewer before your PR is merged. See also that link for how to
add appropriate labels to your PR. The PR will also go through a number
of automated checks. You can learn more about these here,
including how to run them locally.

If you want to bring attention to this PR, please write a message on this
thread of the Lean Zulip.

@Lemmy00 Lemmy00 force-pushed the milikic/odd-dimensional-laplacian-core branch 2 times, most recently from 34e158d to 9486f22 Compare June 12, 2026 17:14
(((1 : ℤ) - 2 * (m : ℤ) : ℝ) * (2 * m + 1 : ℝ) *
(volume (α := Space (2 * m + 1))).real (Metric.ball 0 1))

private lemma odd_unit_ball_volume_real_pos (m : ℕ) :

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 should be moved to the general Integrals file.


This file proves an odd-dimensional iterated-Laplacian identity for the distribution induced by
the norm on `Space (2 * m + 1)`.

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.

Can you write what this corresponds to here.


/-- The scalar factor produced by one nonsingular Laplacian step in dimension `2 * m + 1`,
after `k` previous Laplacian steps. -/
noncomputable def oddNormLaplacianStepCoeff (m k : ℕ) : ℝ :=

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.

Do we actually need to make this definition?

@jstoobysmith jstoobysmith added the awaiting-author A reviewer has asked the author a question or requested changes label Jun 12, 2026
@Lemmy00 Lemmy00 force-pushed the milikic/odd-dimensional-laplacian-core branch from 9486f22 to 0e55af4 Compare June 13, 2026 11:58
@Lemmy00

Lemmy00 commented Jun 13, 2026

Copy link
Copy Markdown
Contributor Author

Thanks, addressed these in 0e55af4f.

  • moved the odd unit-ball volume positivity lemma to Space/Integrals/Basic;
  • expanded the file overview to say this corresponds to the odd-dimensional identity where applying the Laplacian m + 1 times to the norm gives a nonzero constant multiple of δ₀;
  • removed the separate step-coefficient definition and inlined the factor in the product.

I also reran the local targeted builds, full lake build, style script, Lean linters, and git diff --check.

Comment thread Physlib.lean Outdated
@@ -397,6 +397,7 @@ public import Physlib.SpaceAndTime.Space.IsDistBounded
public import Physlib.SpaceAndTime.Space.LengthUnit
public import Physlib.SpaceAndTime.Space.Module
public import Physlib.SpaceAndTime.Space.Norm

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.

can we move this ordinary Norm file to Norm.Basic

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.

Done, moved the ordinary Norm file to Norm/Basic and updated the imports.

@Lemmy00 Lemmy00 force-pushed the milikic/odd-dimensional-laplacian-core branch from 0e55af4 to 45ab64d Compare June 14, 2026 04:42

@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.

Great! Approved - many thanks.

@jstoobysmith jstoobysmith added ready-to-merge This PR is approved and will be merged shortly and removed awaiting-author A reviewer has asked the author a question or requested changes labels Jun 14, 2026
@zhikaip

zhikaip commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

see comments below

lemma volume_eq_addHaar {d} : (volume (α := Space d)) = Space.basis.toBasis.addHaar := by
exact (OrthonormalBasis.addHaar_eq_volume _).symm

lemma volume_closedBall_ne_zero {d : ℕ} (x : Space d.succ) {r : ℝ} (hr : 0 < r) :

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.

I removed volume_closedBall_ne_zero and volume_closedBall_ne_top in #1183, duplicate from Mathlib lemmas

rfl

/-- The real volume of the unit ball in odd-dimensional space is positive. -/
lemma volume_metricBall_odd_real_pos (m : ℕ) :

@zhikaip zhikaip Jun 15, 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.

this holds for all d, and I think this is simple enough that it doesn't really warrant it's own lemma (Edit: unless this is reused multiple times?):

lemma volume_metricBall_real_pos {d : ℕ}:
    0 < (volume (α := Space d)).real (Metric.ball 0 1) :=
  ENNReal.toReal_pos
    (Metric.measure_ball_pos volume 0 one_pos).ne'
    measure_ball_lt_top.ne

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.

Done, removed the duplicate closed-ball lemmas and inlined the general unit-ball real-volume positivity proof at the only use site.

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.

Many thanks for this!

@zhikaip zhikaip merged commit 0403fb0 into leanprover-community:master Jun 15, 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants