Zulip Chat Archive

Stream: maths

Topic: analytical number theory


Kevin Buzzard (Nov 18 2022 at 22:23):

This is a question for #maths

Notification Bot (Nov 18 2022 at 22:28):

2 messages were moved here from #lean4 > mathlib4 by Mario Carneiro.

Kevin Buzzard (Nov 18 2022 at 22:30):

There has been some offline talk about finding a good analytic number theory project but a good project needs a leader. Without good projects progress is eratic because it just happens when someone feels like doing something. Bhavik Mehta and Thomas Bloom formalised Bloom's theorem that any set of naturals with positive density contains a finite subset such that the sum of the reciprocals is 1, but we don't have the Riemann zeta function yet.

Kevin Buzzard (Nov 18 2022 at 22:30):

On the p-adic branch we have the p-adic zeta function though ;-) (although it will be factored out into its own project at some point)

Meow (Nov 19 2022 at 10:59):

Thanks, I'm writing some Lean code towards Riemann zeta function.

Meow (Nov 19 2022 at 11:02):

The project by Bhavik and Thomas is really famous and I knew it already. It's the first math result that was verified by machine before the paper was published in a peer-reviewed journal.

Meow (Nov 20 2022 at 12:56):

https://github.com/mmew-2022/Riemann_zeta/blob/main/theta_function.lean

Meow (Nov 20 2022 at 12:57):

Defined theta function, proved its convergence but not its functional equation.

Kevin Buzzard (Nov 20 2022 at 13:05):

I think @David Loeffler might be thinking about related issues

Meow (Nov 20 2022 at 13:58):

Where is the GitHub repository of p-adic zeta function in Lean?

Meow (Nov 20 2022 at 13:58):

I googled it but not given result.

Kevin Buzzard (Nov 20 2022 at 14:49):

Right now Ashvni's work is on the p-adic branch of mathlib, but she's going to move it to a separate repository at some point. She has the definition and is currently proving that its values at negative integers are related to Bernoulli numbers (in fact she is proving a more general result for p-adic L-functions attached to Dirichlet characters).

David Loeffler (Nov 20 2022 at 18:20):

Hi guys! As Kevin says, I've been working towards formalising some properties of Riemann zeta in Lean. I have a complete proof of the formula for zeta(2k), k >= 1, in terms of Bernoulli numbers; see PR #14701 for a complete working draft. I'm working on getting this cleaned up for inclusion into mathlib (it's waiting on some modifications to the Fourier series code, see #17598).

My longer-term goal is to prove the functional equation for zeta. There are proofs via contour integration, but that seems a bit tricky to formalise (because we don't have things like winding numbers in mathlib yet); so I'm hoping to prove it the way Riemann did, by taking the Mellin transform on both sides of the identity theta(i / (4x) ) = sqrt(x) theta(ix).

To get the modularity law for the theta function there are two steps:

  • (1) prove Poisson summation for smooth rapidly-decaying functions on the real line;
  • (2) show that exp(-x^2) is its own Fourier transform.
    I'm vaguely working towards (1) at the moment. If anyone wants to take on (2) then please be my guest :-)

Kevin Buzzard (Nov 20 2022 at 23:21):

@Alex Kontorovich you were asking about analytic number theory recently, here is evidence of some progress :-)

Moritz Doll (Nov 21 2022 at 02:39):

David Loeffler said:

Hi guys! As Kevin says, I've been working towards formalising some properties of Riemann zeta in Lean. I have a complete proof of the formula for zeta(2k), k >= 1, in terms of Bernoulli numbers; see PR #14701 for a complete working draft. I'm working on getting this cleaned up for inclusion into mathlib (it's waiting on some modifications to the Fourier series code, see #17598).

My longer-term goal is to prove the functional equation for zeta. There are proofs via contour integration, but that seems a bit tricky to formalise (because we don't have things like winding numbers in mathlib yet); so I'm hoping to prove it the way Riemann did, by taking the Mellin transform on both sides of the identity theta(i / (4x) ) = sqrt(x) theta(ix).

To get the modularity law for the theta function there are two steps:

  • (1) prove Poisson summation for smooth rapidly-decaying functions on the real line;
  • (2) show that exp(-x^2) is its own Fourier transform.
    I'm vaguely working towards (1) at the moment. If anyone wants to take on (2) then please be my guest :-)

Actually, I did think a bit about (1) as well, but haven't made any real progress - mainly because it is a bit more of a side goal for #16386 and more importantly I am spending too much time on the mathlib4 port.
I think I was trying to prove some trivial identities for the Fourier transform, which are needed to show that the Fourier transform is a continuous map on Schwartz space, but I haven't finished it yet

Moritz Doll (Nov 21 2022 at 02:48):

As for (2) I have put that on hold, because the proof of ex2e^{-|x|^2} being Schwartz is nicer if you have the Hermite polynomials

David Loeffler (Nov 21 2022 at 06:46):

If you just want to get to the theta transformation law, then I think you don't need a full theory of Schwartz functions. I'm no analyst, but it looks to me as if it is probably quite technical to show that "f Schwartz" implies "f-hat Schwartz". However that statement is automatic for the Gaussian because f-hat is f. I had envisaged proving a version of Poisson summation in which rapid decay of both f and f-hat were hypotheses.

Moritz Doll (Nov 21 2022 at 06:55):

ah that makes sense. I was going for the full distribution theory version (i.e., using the Dirac comb), as I am mainly interested in developing the Fourier theory and getting nice results about the zeta function would just be a cool bonus.
f^S\hat{f} \in \mathcal{S} provided that fSf \in \mathcal{S} is mathematically trivial since Dξf^(ξ)=Fxξ{xf(x)}D_\xi \hat{f}(\xi) = \mathcal{F}_{x \to \xi} \{xf(x)\} and vice-versa (modulo constants). But since we are not using partial derivatives it is more annoying in mathlib. Then it reduces to commuting derivatives and multiplication by polynomials which is easy for humans, but hell for machines..

Meow (Nov 21 2022 at 09:59):

I'm working in almost same route ...

Meow (Nov 21 2022 at 09:59):

trying proof Poisson summation and Fourier transform for exp(-x^2)

Meow (Nov 21 2022 at 10:00):

-_-

Moritz Doll (Nov 21 2022 at 12:58):

Calculating the Fourier transform of eQx,x/2e^{-⟨Q x, x⟩/2} for a symmetric positive definite matrix QQ should be rather easy in Lean. The correct formulation would be of course in terms of an continuous linear map on an inner product space not a matrix. This just needs the diagonalization from docs#analysis.inner_product_space.spectrum and of course docs#integral_gaussian

Alex Kontorovich (Nov 21 2022 at 18:43):

Yes, @Heather Macbeth and I have been making slow but steady progress towards Poisson summation. You don't need step (2) to do zeta the "proper" way (with Mellin transforms of theta functions) - just do it a la Tate with test functions. You'll get Mellin transforms of those test functions instead of Gamma functions, and get meromorphic continuation that way. (Of course if you want to derive particular properties, it'll certainly help to take your test function to be the Gaussian...)

Alex Kontorovich (Nov 21 2022 at 18:44):

PS perhaps our progress is particularly slow because we want to do is as a "baby" trace formula; there are much slicker proofs of Poisson summation. But of course our goal is a "warmup" to Selberg...

Alex Kontorovich (Nov 21 2022 at 18:45):

PPS the mathematics of this is covered in lectures 2 and 3 in my grad course from last spring: https://sites.math.rutgers.edu/~alexk/2022S572/index.html

Alex Kontorovich (Nov 21 2022 at 18:46):

PPPS The Selberg trace formula is of course itself a warmup for Jacquet-Langlands, which is a rather important stepping stone on the path to Fermat/Wiles-Taylor...

David Loeffler (Nov 22 2022 at 06:58):

Moritz Doll said:

Calculating the Fourier transform of eQx,x/2e^{-⟨Q x, x⟩/2} for a symmetric positive definite matrix QQ should be rather easy in Lean. The correct formulation would be of course in terms of an continuous linear map on an inner product space not a matrix. This just needs the diagonalization from docs#analysis.inner_product_space.spectrum and of course docs#integral_gaussian

It seems to me that arguing with diagonalizations and linear maps will help you reduce from general Q to Q=1×1Q = 1 \times 1 identity matrix; but to prove that, some work needs to happen on the analytic side, to show that exp((x+ti)2)dx\int exp(-(x + t i)^2)\, dx is independent of t. Probably this is not so hard though (we don't have integration over general contours, but we do have rectangular ones and that is all that's needed here).

Moritz Doll (Nov 22 2022 at 07:24):

I think that works only if all eigenvalues of QQ have non-negative real part. You cannot Fourier transform ex2e^{x^2}.

Moritz Doll (Nov 22 2022 at 07:25):

It is not a tempered distribution, so you would need to come up with some regularization to make sense of the Fourier transform (that might exist, but I am not aware of it).

Moritz Doll (Nov 22 2022 at 07:27):

but for instance for eiQx,xe^{i⟨Q x, x⟩} for QQ symmetric and real the contour argument works

Moritz Doll (Nov 22 2022 at 07:29):

There is the crucial point however is that we still lack some undergrad analysis both for real and complex variables.

Moritz Doll (Nov 22 2022 at 07:34):

Alex Kontorovich said:

PS perhaps our progress is particularly slow because we want to do is as a "baby" trace formula; there are much slicker proofs of Poisson summation. But of course our goal is a "warmup" to Selberg...

It would be really great to have Selberg's trace formula formalized, but that probably will take a while

Meow (Nov 26 2022 at 10:29):

Alex Kontorovich said:

PS perhaps our progress is particularly slow because we want to do it as a "baby" trace formula; there are much slicker proofs of Poisson summation. But of course our goal is a "warmup" to Selberg...

In details, which version of trace formula do you want to implement in Lean?

Meow (Nov 26 2022 at 10:31):

A Selberg trace formula for non-commutative discrete subgroup $\Gamma \subseteq G$, or a simpler version for commutative groups?

Meow (Nov 26 2022 at 10:33):

There are lots of technical details towards a formalized trace formula. For example, when we are considering Poisson summation, we need $f$ to be rapidly decreasing, a condition such as $|f(x)| \le C(1+|x|^{-1-\delta})$. What is the similar condition in general trace formula case?

Meow (Nov 27 2022 at 17:08):

@David Loeffler I proved
lemma integral_exp_neg_sq : (∫ (x : ℝ), ℝexp (-x^2) = √π)
now.

Meow (Nov 27 2022 at 17:09):

The code are in github repository https://github.com/mmew-2022/Riemann_zeta/blob/main/theta_function.lean

Meow (Nov 27 2022 at 17:09):

So it's really not far to prove (2).

Meow (Nov 27 2022 at 17:14):

Oh that's already done in mathlib -_-

Meow (Nov 27 2022 at 17:15):

I found it right now.

David Loeffler (Nov 27 2022 at 17:54):

Meow said:

So it's really not far to prove (2).

I think this takes some nontrivial work, evaluating $\int e^{itx} e^{-x^2}$ for general $t$ is not a straightforward generalisation of the $t = 0$ case.

Moritz Doll (Nov 28 2022 at 05:01):

if we can do linear changes of coordinates, then it should be rather easy.

David Loeffler (Nov 28 2022 at 07:10):

Moritz Doll said:

if we can do linear changes of coordinates, then it should be rather easy.

You want to just substitute x + it for x? Not as easy as it sounds. The substitution changes the path of integration in the complex plane, so it isn't just a case of linear variable change but you also need some argument about Cauchy's integral formula.

Meow (Nov 28 2022 at 08:22):

David Loeffler said:

Moritz Doll said:

if we can do linear changes of coordinates, then it should be rather easy.

You want to just substitute x + it for x? Not as easy as it sounds. The substitution changes the path of integration in the complex plane, so it isn't just a case of linear variable change but you also need some argument about Cauchy's integral formula.

Yes, I'm doing such computation about Cauchy's integral formula -_-

Meow (Nov 28 2022 at 08:22):

It needs estimation of exp(-z^2) when |Re z| is large

Vincent Beffara (Nov 28 2022 at 13:45):

Perhaps looking first at etxx2\int e^{tx-x^2} (which can be obtained by a change of variable) and then using analytic continuation would be quicker?

Meow (Nov 28 2022 at 17:33):

@David Loeffler Now I finished proving it.
lemma fourier_exp_negsq (n : ℂ) : ∫ (x : ℝ), exp (Inx) * exp (-x^2) = exp (-n^2/4) * √π

Meow (Nov 28 2022 at 17:33):

https://github.com/mmew-2022/Riemann_zeta/blob/main/theta_function.lean

Meow (Nov 28 2022 at 17:38):

Vincent Beffara said:

Perhaps looking first at etxx2\int e^{tx-x^2} (which can be obtained by a change of variable) and then using analytic continuation would be quicker?

Yes, that's a good method. But I've finished it before I seen the message :joy:

Meow (Nov 28 2022 at 17:41):

How can you proof etxx2\int e^{tx-x^2} is analytic in variable t? It may be non-trivial in Lean.

Meow (Nov 28 2022 at 18:12):

We need a lemma that asserts xXf(t,x)\int_{x \in X} f(t, x) is analytical in tt, where f(t,x)f(t, x) is a multi-variable analytic function, and XX is a set with some good properties.

Vincent Beffara (Nov 28 2022 at 20:52):

There is docs#has_deriv_at_integral_of_dominated_loc_of_lip which gives you complex differentiable, and then docs#differentiable_on.analytic_on gives you analytic, and then docs#analytic_on.eq_on_of_preconnected_of_frequently_eq extends the formula from the reals to the complex plane.

Vincent Beffara (Nov 28 2022 at 20:54):

Although, one important thing that is missing is contour integrals - but that will take a while ...

Meow (Nov 29 2022 at 03:45):

@Vincent Beffara Thanks!

David Loeffler (Nov 29 2022 at 07:59):

Meow said:

David Loeffler Now I finished proving it.
lemma fourier_exp_negsq (n : ℂ) : ∫ (x : ℝ), exp (Inx) * exp (-x^2) = exp (-n^2/4) * √π

Can you make a mathlib pull request for this? It would be good to have it in the library soon (maybe you could add it into analysis.special_functions.gaussian) rather than waiting for the conclusion of your whole theta-functions project.

Meow (Nov 29 2022 at 10:22):

David Loeffler said:

Meow said:

David Loeffler Now I finished proving it.
lemma fourier_exp_negsq (n : ℂ) : ∫ (x : ℝ), exp (Inx) * exp (-x^2) = exp (-n^2/4) * √π

Can you make a mathlib pull request for this? It would be good to have it in the library soon (maybe you could add it into analysis.special_functions.gaussian) rather than waiting for the conclusion of your whole theta-functions project.

Yes. It's my first time for making a pull request.

David Loeffler (Dec 05 2022 at 13:35):

@Meow Did you make a pull request for your Gaussian Fourier transform code?

Meow (Dec 07 2022 at 17:21):

https://github.com/leanprover-community/mathlib/pull/17845

Meow (Jan 11 2023 at 13:52):

@David Loeffler What is the counterexample for integral_prod_mulcan't be generalized to arbitrary Banach algebra?

Meow (Jan 11 2023 at 13:56):

Also, is there some relation between an integral and a summation in Lean? For example, in Lean we have Stieltjes measures, and the Stieltjes measure of MM when f(x)=[x]f(x)=[x] is just the number of integral points of MM. Then, summation can be viewed as a special type of integral, and swapping two $\sum$ symbols should be an application of Fubini's theorem.

David Loeffler (Jan 11 2023 at 14:40):

What is the counterexample for integral_prod_mul can't be generalized to arbitrary Banach algebra?

The point is that the underlying lemma integral_mul_left is carefully formulated so it's valid without assuming the function is integrable, with mathlib's convention that the integral of a non-integrable function is 0. If c = 0 then the assertion is just 0 = 0; and if c ≠ 0, then c * f is integrable iff f is, and c * 0 = 0, so we are safe. However, this breaks down in a more general ring: if c is neither zero nor a unit, it can occur that f is non-integrable, but c * f is integrable and has non-zero integral, in which case we're stuck. If you assume f is integrable then there is no problem, but adding this extra assumption would be annoying and would require adjusting every single place in the library where this lemma is used.

Yaël Dillies (Jan 11 2023 at 14:41):

Why can't we have both lemmas? Seems like neither subsumes the other.

David Loeffler (Jan 11 2023 at 14:44):

Sure, it would be worthwhile to have integral_mul_left_of_integrable (or integral_mul_left_of_unit, or both) with coefficients in an arbitrary Banach algebra, but I wanted to make the least invasive change to the library consistent with getting #18090 working.

David Loeffler (Jan 11 2023 at 14:57):

@Meow Regarding the rest of your message, I have no idea -- I suggest you might want to re-ask the question in a new zulip thread, since you want some input from measure theory / analysis people rather than number theorists.

Meow (Jan 11 2023 at 14:59):

Yes, for example in ring R×R\mathbb R \times \mathbb R, consider x:R(f(x),g(x))x : \mathbb R \mapsto (f(x),g(x)) where f(x)f(x) has non-zero integration and g(x)g(x) is non-integrable, and multiplier c=(1,0)c=(1,0).

Meow (Jan 11 2023 at 15:00):

David Loeffler said:

What is the counterexample for integral_prod_mul can't be generalized to arbitrary Banach algebra?

The point is that the underlying lemma integral_mul_left is carefully formulated so it's valid without assuming the function is integrable, with mathlib's convention that the integral of a non-integrable function is 0. If c = 0 then the assertion is just 0 = 0; and if c ≠ 0, then c * f is integrable iff f is, and c * 0 = 0, so we are safe. However, this breaks down in a more general ring: if c is neither zero nor a unit, it can occur that f is non-integrable, but c * f is integrable and has non-zero integral, in which case we're stuck. If you assume f is integrable then there is no problem, but adding this extra assumption would be annoying and would require adjusting every single place in the library where this lemma is used.

so that is not true for such tricky reason.

Meow (Jan 11 2023 at 15:07):

David Loeffler said:

Meow Regarding the rest of your message, I have no idea -- I suggest you might want to re-ask the question in a new zulip thread, since you want some input from measure theory / analysis people rather than number theorists.

Analytical number theory relies a lot on some basic methods such as Abel's summation and Euler-Maclaurin summation, so I have to decide whether to work on a more general framework of Stieltjes measure, or only the special case of Abel's summation over R\mathbb R.


Last updated: Dec 20 2023 at 11:08 UTC