-
Notifications
You must be signed in to change notification settings - Fork 205
feat(ErdosProblems): 884 #1248
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
base: main
Are you sure you want to change the base?
feat(ErdosProblems): 884 #1248
Conversation
Formalizes https://www.erdosproblems.com/884. Closes google-deepmind#1001.
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
|
Edit: I fixed the issue myself. I'm trying to sign the CLA right now, which I did with some google-account now (meh...). However, in the troubleshooting explanation, I am confused by the line:
|
|
Seems like it works now? Do you still need help here? and then force push. I think if you add multiple email addresses to your github account you can sign the CLA only with one of them and it should still work for the other ones? |
|
Yeah, regarding the CLA, things worked out now. But obviously, this PR still needs to be reviewed, etc. |
| By convention, we set `divisors_increasing 0 = ∅`. | ||
| As a `Finset`, this is the same as `Nat.divisors` | ||
| -/ | ||
| abbrev divisors_increasing (n : ℕ) : List ℕ := (List.range (n + 1)).filter (· ∣ n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of defining this, I would use Nat.nth (· ∣ n) i to pick out the i:th smallest divisor of n (to answer the question in the PR description).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with Calle on this one. Note that you could also define this as n.divisors.sort.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the suggestion, I updated my code accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Make sure to also delete the old divisors_increasing
| By convention, we set `divisors_increasing 0 = ∅`. | ||
| As a `Finset`, this is the same as `Nat.divisors` | ||
| -/ | ||
| abbrev divisors_increasing (n : ℕ) : List ℕ := (List.range (n + 1)).filter (· ∣ n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with Calle on this one. Note that you could also define this as n.divisors.sort.
|
Thanks for your comments / review. I updated the PR using your suggestions now. |
| Statement of Erdos conjecture 884. See `erdos_884` for the problem asking whether this is true. | ||
| -/ | ||
| def erdos_884_stmt : Prop := | ||
| sum_inv_of_divisor_pair_differences =O[Filter.atTop] (1 + sum_inv_of_divisor_pair_differences) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the RHS be 1 + sum_inv_of_consecutive_divisors?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh yes, of course.
Thanks for catching that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pushed a new commit fixing this
callesonne
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more comments :)
| For a natural number n, let `1 = d₁ < ⋯ < d_{τ(n)} = n` denote the divisors of n | ||
| in increasing order. | ||
| Does it hold that | ||
| `∑ 1 ≤ i < j ≤ τ(n), 1 / (d_j - d_i) ⟪ 1 + ∑ 1 ≤ i < τ(n), 1 / (d_{i + 1} - d_i)` | ||
| for `n → ∞`, i.e. | ||
| `∑ 1 ≤ i < j ≤ τ(n), 1 / (d_j - d_i) ∈ O (1 + ∑ 1 ≤ i < τ(n), 1 / (d_{i + 1} - d_i))`? | ||
|
|
||
| In September 2025, Terence Tao gave a conditional _negative_ answer to this conjecture, | ||
| see `erdos_884_fales_of_hardy_littlewood` for this implication. | ||
| However, the conjecture itself remains open. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We usually write our docstrings over erdos problems using latex. Could you also do this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, I did so now
| /-- | ||
| Statement of Erdos conjecture 884. See `erdos_884` for the problem asking whether this is true. | ||
| -/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you include the problem statement in this docstring as well (you can copy-paste from below if you wish).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| Statement of Erdos conjecture 884. See `erdos_884` for the problem asking whether this is true. | ||
| -/ | ||
| def erdos_884_stmt : Prop := | ||
| sum_inv_of_divisor_pair_differences =O[Filter.atTop] (1 + sum_inv_of_consecutive_divisors) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| sum_inv_of_divisor_pair_differences =O[Filter.atTop] (1 + sum_inv_of_consecutive_divisors) | |
| sum_inv_of_divisor_pair_differences ≪ 1 + sum_inv_of_consecutive_divisors |
We have this notation in ForMathlib (and I think you should be able to remove the parenthesis).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, I did not know this notation, I inserted it now
| By convention, we set `divisors_increasing 0 = ∅`. | ||
| As a `Finset`, this is the same as `Nat.divisors` | ||
| -/ | ||
| abbrev divisors_increasing (n : ℕ) : List ℕ := (List.range (n + 1)).filter (· ∣ n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this now that it is not used anymore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh yes, done
- Write doc comment in LaTeX. - Remove divisors_increasing definition - Use notation for BigO - Copy doc comment to problem statement as well
a3e08f4 to
3a6abde
Compare
|
Hey. Sorry for the long period of inactivity. I responded to all the comments from the review now and updated the PR. |
Paul-Lez
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor nitpicks and then this should be ready to merge!
| @[category research solved, AMS 11] | ||
| theorem erdos_884_false_of_hardy_littlewood : | ||
| ∀ (k : ℕ) (m : Fin k.succ → ℕ), HardyLittlewood.FirstHardyLittlewoodConjectureFor m | ||
| → ¬ erdos_884_stmt := by sorry |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| → ¬ erdos_884_stmt := by sorry | |
| → ¬ erdos_884_stmt := by | |
| sorry |
| see `erdos_884_false_of_hardy_littlewood` for this implication. | ||
| However, the conjecture itself remains open. | ||
| -/ | ||
| def erdos_884_stmt : Prop := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(to stick a little closer to this repo's convention!)
| def erdos_884_stmt : Prop := | |
| def Erdos884 : Prop := |
|
|
||
| namespace Erdos884 | ||
|
|
||
| noncomputable abbrev sum_inv_of_divisor_pair_differences (n : ℕ) : ℚ := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest this name to sick a little closer to the Mathlib naming conventions
| noncomputable abbrev sum_inv_of_divisor_pair_differences (n : ℕ) : ℚ := | |
| noncomputable abbrev sumDivisorInvPairwiseDifference (n : ℕ) : ℚ := |
| ∑ j : Fin n.divisors.card, ∑ i : Fin j, | ||
| (1 : ℚ) / (Nat.nth (· ∣ n) j - Nat.nth (· ∣ n) i ) | ||
|
|
||
| noncomputable abbrev sum_inv_of_consecutive_divisors (n : ℕ) : ℚ := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| noncomputable abbrev sum_inv_of_consecutive_divisors (n : ℕ) : ℚ := | |
| noncomputable abbrev sumDivisorInvConsecutiveDifference (n : ℕ) : ℚ := |
|
Thanks, updated the PR according to your feedback. |
|
@Paul-Lez Not trying to rush you, just wanted to check in whether you saw that I updated the PR. I appreciate all your time and effort you put into this as well. |
Formalizes https://www.erdosproblems.com/884.
Closes #1001.
A few questions: I wasn't able to find mathlib functionality for the ordered list of divisors of a natural number, so I quickly wrote my own abbreviation.
Also, would it fit the project scope to also formalize the statement of Tao's paper, disproving this conjecture under assumption of hardy-littlewood? If so, there is currently only the general hardy-littlewood statement formalized in this repository, but Tao only requires a qualitative statement about existence, not density of admissable prime-tuples.