erdos-problems 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/packs/number-theory/README.md +1 -0
  4. package/packs/number-theory/problems/848/BOUNDED_VERIFICATION_PLAN.md +43 -0
  5. package/packs/number-theory/problems/848/BRANCH_COMPARISON_LEDGER.md +85 -0
  6. package/packs/number-theory/problems/848/CERTIFIED_NUMERICAL_LEDGER.md +88 -0
  7. package/packs/number-theory/problems/848/CHECKPOINT_TEMPLATE.md +8 -0
  8. package/packs/number-theory/problems/848/CONTEXT.md +11 -0
  9. package/packs/number-theory/problems/848/EXTERNAL_VERIFICATION_LEDGER.md +56 -0
  10. package/packs/number-theory/problems/848/EXTRACTION_CHECKLIST.md +114 -0
  11. package/packs/number-theory/problems/848/FRONTIER_NOTE.md +48 -0
  12. package/packs/number-theory/problems/848/LEMMA21_EXPLICIT_BOUND.md +200 -0
  13. package/packs/number-theory/problems/848/LEMMA21_TRUNCATION_SCAN.md +111 -0
  14. package/packs/number-theory/problems/848/LEMMA22_EXPLICIT_BOUND.md +133 -0
  15. package/packs/number-theory/problems/848/LEMMA22_PRIME_COUNT_BOUND.md +58 -0
  16. package/packs/number-theory/problems/848/OPS_DETAILS.yaml +169 -0
  17. package/packs/number-theory/problems/848/PROOF_OBLIGATIONS.md +101 -0
  18. package/packs/number-theory/problems/848/PROPOSITION_EXPLICIT_CANDIDATE.md +69 -0
  19. package/packs/number-theory/problems/848/REPORT_TEMPLATE.md +8 -0
  20. package/packs/number-theory/problems/848/ROUTE_HISTORY.md +24 -0
  21. package/packs/number-theory/problems/848/ROUTE_PACKET.yaml +16 -0
  22. package/packs/number-theory/problems/848/THEOREM_STYLE_EXPLICIT_NOTE.md +91 -0
  23. package/packs/number-theory/problems/848/THRESHOLD_LEDGER.md +132 -0
  24. package/packs/number-theory/problems/848/VERIFICATION_CERTIFICATE_SPEC.md +60 -0
  25. package/packs/number-theory/problems/848/VERIFICATION_REGIMES.md +87 -0
  26. package/packs/number-theory/problems/848/WEAKEST_BRANCH_T250_ASSEMBLY.md +109 -0
  27. package/packs/number-theory/problems/848/WEAKEST_BRANCH_T250_BUDGET.md +107 -0
  28. package/packs/number-theory/problems/848/WEAKEST_CASE_BUDGET.md +183 -0
  29. package/packs/number-theory/problems/848/context.yaml +44 -0
  30. package/problems/848/AGENT_START.md +33 -0
  31. package/problems/848/AGENT_WEBSEARCH_BRIEF.md +21 -0
  32. package/problems/848/CHECKPOINT_NOTES.md +23 -0
  33. package/problems/848/EVIDENCE.md +112 -0
  34. package/problems/848/EXPLICIT_CANDIDATE_REVIEW.md +57 -0
  35. package/problems/848/FORMALIZATION.md +16 -0
  36. package/problems/848/PUBLIC_STATUS_REVIEW.md +16 -0
  37. package/problems/848/REFERENCES.md +25 -0
  38. package/problems/848/ROUTES.md +78 -0
  39. package/problems/848/SHARE_READY_SUMMARY.md +36 -0
  40. package/problems/848/STATEMENT.md +37 -0
  41. package/problems/848/problem.yaml +52 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # erdos-problems
2
2
 
3
- Maintained by Fractal Research Group (`frg.earth`).
3
+ Maintained by SproutSeeds. Research stewardship: Fractal Research Group ([frg.earth](https://frg.earth)).
4
4
 
5
5
  > CLI and workspace for Paul Erdos problems.
6
6
  >
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erdos-problems",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "CLI atlas and workspace tools for Paul Erdos problems.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -5,6 +5,7 @@ Light starter workspace for number-theory problems in `erdos-problems`.
5
5
  Current seeded pack problems:
6
6
  - `1`: open starter workspace around a distinct-subset-sum lower-bound route
7
7
  - `2`: counterexample/archive workspace for a disproved covering-systems problem
8
+ - `848`: decidable finite-check workspace around explicit threshold extraction and bounded closure
8
9
 
9
10
  Useful commands:
10
11
  - `erdos number-theory status 1`
@@ -0,0 +1,43 @@
1
+ # Problem 848 Bounded Verification Plan
2
+
3
+ This note chooses the next closure lane for Problem `848`.
4
+
5
+ Chosen lane:
6
+ - bounded finite verification under the best trusted explicit threshold currently available
7
+
8
+ Reason for this choice:
9
+ - `848` is already a decidable-gap problem, not a fresh asymptotic frontier
10
+ - the imported public thread currently reaches `N0 = 2.64 x 10^17` on 2026-03-23
11
+ - lowering `N0` further is still valuable, but only because it reduces the finite remainder
12
+ - a structured verification program is closer to the actual finish line than another isolated
13
+ threshold race
14
+
15
+ Scope of this lane:
16
+ - do not claim full closure yet
17
+ - do not silently adopt imported threshold claims as canonical repo truth
18
+ - instead, build the machinery that would let the repo:
19
+ - state exactly what range is covered by what method
20
+ - preserve certificates and checkpoints
21
+ - audit imported verification claims before relying on them
22
+
23
+ Immediate bounded-verification objectives:
24
+ 1. Freeze the best imported threshold currently trusted enough to size the finite remainder.
25
+ 2. Split the finite remainder into verification regimes rather than treating it as one giant
26
+ interval.
27
+ 3. Define what a reproducible verification certificate must contain before the repo counts a
28
+ range as covered.
29
+ 4. Record prior public verification attempts, especially where external reviewers raised
30
+ correctness concerns.
31
+ 5. Keep the verification lane modular enough that imported proofs, local proofs, and future
32
+ compute runs can all plug into the same certificate surface.
33
+
34
+ What success would look like:
35
+ - the repo can say exactly which interval is covered
36
+ - each covered interval points to a concrete certificate type and reproduction story
37
+ - imported public verification work is either accepted with an audit note or left external
38
+ - the remaining uncovered range shrinks monotonically
39
+
40
+ What this lane is not:
41
+ - not brute force to `2.64 x 10^17`
42
+ - not an automatic endorsement of every public verification claim
43
+ - not a replacement for threshold-lowering work if a cleaner explicit `N0` emerges
@@ -0,0 +1,85 @@
1
+ # Problem 848 Branch Comparison Ledger
2
+
3
+ This note closes `N848.G1.A8`.
4
+
5
+ Question:
6
+ - does the current shared witness
7
+ - `T = 250`
8
+ - `N >= exp(1420)`
9
+ - `eta = 10^-4`
10
+
11
+ already dominate the other public case bounds in Sawhney's proof?
12
+
13
+ Answer:
14
+ - yes, at the repo's current explicit level it does
15
+
16
+ ## Shared witness inputs
17
+
18
+ From the existing explicit notes:
19
+ - weakest-branch main term: `0.0376113079`
20
+ - `A*` tail at `T = 250`: `0.0005641453`
21
+ - two-class Lemma 2.2 tail at `T = 250`: `0.0000491054`
22
+ - one-class prime-count term at `N >= exp(1420)`: at most `1 / (1420 - 1.1)`
23
+ - two-class prime-count term at `N >= exp(1420)`: at most `2 / (1420 - 1.1)`
24
+
25
+ These are enough to compare the other public branches without changing the witness.
26
+
27
+ ## Case `0.0358`
28
+
29
+ Repo explicit bound at the shared witness:
30
+ - main term about `0.0356925181`
31
+ - visible tail terms about `0.0002943490`
32
+ - one-class prime-count term about `0.0007047713`
33
+
34
+ Total visible bound:
35
+ - about `0.0366916384`
36
+
37
+ Visible reserve to `0.04`:
38
+ - about `0.0033083616`
39
+
40
+ ## Case `0.0336`
41
+
42
+ Repo explicit bound at the shared witness:
43
+ - main term about `0.0334753577`
44
+ - visible tail terms about `0.0003311781`
45
+ - two-class prime-count term about `0.0014095427`
46
+
47
+ Total visible bound:
48
+ - about `0.0352160784`
49
+
50
+ Visible reserve to `0.04`:
51
+ - about `0.0047839216`
52
+
53
+ ## Case `0.0294`
54
+
55
+ Repo explicit bound at the shared witness:
56
+ - main term about `0.0293394076`
57
+ - visible tail terms about `0.0000491054`
58
+ - two-class prime-count term about `0.0014095427`
59
+
60
+ Total visible bound:
61
+ - about `0.0307980556`
62
+
63
+ Visible reserve to `0.04`:
64
+ - about `0.0092019444`
65
+
66
+ ## Honest comparison conclusion
67
+
68
+ At the repo's current explicit level:
69
+ - the `0.0377` branch remains the tightest branch
70
+ - but it is already closed by the shared witness
71
+ - the branches `0.0358`, `0.0336`, and `0.0294` all retain strictly larger visible reserve
72
+
73
+ So the current witness appears to be a whole-proof witness candidate, not just a
74
+ weakest-branch patch.
75
+
76
+ ## Remaining caution
77
+
78
+ This is still a repo witness ledger, not yet a publication-ready explicit-threshold proof.
79
+
80
+ What remains:
81
+ - package the whole argument as a proposition-level explicit candidate
82
+ - decide whether to state `N0 <= exp(1420)` as the current repo witness, or to keep it as a
83
+ claim-safe candidate pending a cleaner writeup
84
+
85
+ But the route no longer points to another hidden branch obstruction.
@@ -0,0 +1,88 @@
1
+ # Problem 848 Certified Numerical Ledger
2
+
3
+ This note closes `N848.G1.A11`.
4
+
5
+ Purpose:
6
+ - replace the displayed decimal inputs used in the current witness with conservative machine
7
+ intervals
8
+
9
+ Scope:
10
+ - this is still a repo-level certification note, not a formal proof-assistant artifact
11
+ - the goal is to eliminate naked decimal approximations from the current witness candidate
12
+
13
+ ## Method
14
+
15
+ Cutoff:
16
+ - enumerate primes up to `5,000,000`
17
+
18
+ For the Euler-product main terms:
19
+ - multiply the truncated product in machine arithmetic
20
+ - apply a conservative relative rounding envelope `n * eps / (1 - n * eps)` where `n` is the
21
+ number of factors and `eps = 2^-52`
22
+ - apply a missing-tail lower bound using
23
+ - `sum_{p > P} 2 / p^2 <= 2 / P` for the `A*` product
24
+ - `sum_{p > P} 1 / p^2 <= 1 / P` for the `A7 union A18` product
25
+
26
+ For the tail sums:
27
+ - sum the prime-square reciprocals up to the same cutoff
28
+ - add both a summation-error envelope and the missing-tail envelope `1 / P`
29
+
30
+ ## Certified upper bounds used by the witness
31
+
32
+ ### 1. `A*` main term
33
+
34
+ Certified upper bound:
35
+ - `A* main <= 0.0251591225`
36
+
37
+ ### 2. `A7 union A18` main term
38
+
39
+ Certified upper bound:
40
+ - `A7 union A18 main <= 0.0124525569`
41
+
42
+ ### 3. `A*` tail at `T = 250`
43
+
44
+ Certified upper bound:
45
+ - `A* tail <= 0.0005641454`
46
+
47
+ ### 4. Two-class Lemma 2.2 tail at `T = 250`
48
+
49
+ Certified upper bound:
50
+ - `Lemma 2.2 tail <= 0.0000491055`
51
+
52
+ ### 5. Two-class prime-count term at `N >= exp(1420)`
53
+
54
+ From `LEMMA22_PRIME_COUNT_BOUND.md`:
55
+ - `2 pi(N) / N <= 0.0014095427`
56
+
57
+ ## Certified weakest-branch witness
58
+
59
+ Using only the certified upper bounds above, the weakest branch satisfies
60
+
61
+ - `|A| / N <= 0.0396344729`
62
+
63
+ for the shared witness scale
64
+ - `N >= exp(1420)`
65
+ - `T = 250`.
66
+
67
+ So the certified visible reserve to `1/25 = 0.04` is at least
68
+
69
+ - `0.04 - 0.0396344729 = 0.0003655271`.
70
+
71
+ After the working choice
72
+ - `eta = 10^-4`,
73
+
74
+ the certified visible reserve is still at least
75
+
76
+ - `0.0002655271`.
77
+
78
+ ## Honest consequence
79
+
80
+ This note removes the main numerical discomfort in the current repo candidate:
81
+ - the witness no longer depends only on display decimals copied from exploratory notes
82
+
83
+ What it still does **not** provide:
84
+ - a formal proof-assistant certificate
85
+ - a publication-ready theorem writeup
86
+
87
+ But it does mean the current route can now treat the witness as numerically hardened at the
88
+ repo level.
@@ -0,0 +1,8 @@
1
+ # Problem 848 Checkpoint Template
2
+
3
+ - Active route:
4
+ - Threshold ledger update:
5
+ - Finite-check range clarified:
6
+ - Formalization coverage clarified:
7
+ - Public-status wording rechecked:
8
+ - Next honest move:
@@ -0,0 +1,11 @@
1
+ # Problem 848 Number Theory Pack Context
2
+
3
+ - Family role: finite_check_number_theory_workspace
4
+ - Harness profile: decidable_gap_workspace
5
+ - Active route posture: finite_check_gap_closure
6
+
7
+ This pack slice exists because Problem 848 is no longer a generic open dossier.
8
+ The honest posture is:
9
+ - preserve the sufficiently-large-N theorem
10
+ - isolate the finite unresolved gap
11
+ - keep threshold extraction, finite computation, and formalization coverage distinct
@@ -0,0 +1,56 @@
1
+ # Problem 848 External Verification Ledger
2
+
3
+ This ledger records public verification-style claims that matter to the bounded finite
4
+ verification lane.
5
+
6
+ ## Imported public items
7
+
8
+ ### Public thread post on 2026-03-16
9
+
10
+ Source:
11
+ - https://www.erdosproblems.com/forum/thread/848
12
+
13
+ Claim:
14
+ - a public post claimed a complete verification framework with computation through `10^7`
15
+ and an intended handoff to Sawhney above that
16
+
17
+ Why it matters:
18
+ - this is exactly the kind of bounded-verification claim the repo should eventually be able
19
+ to absorb, audit, or reject cleanly
20
+
21
+ Public follow-up:
22
+ - the same thread notes that the asymptotic handoff was overstated because Sawhney's theorem
23
+ does not start at `10^7`
24
+ - external review also raised quality and verification concerns, including that the repo was
25
+ difficult to verify and likely incorrect
26
+
27
+ Repo audit posture:
28
+ - do not treat this as a covered interval
29
+ - keep it as a cautionary example motivating stricter certificate requirements
30
+
31
+ ### Imported explicit-threshold timeline
32
+
33
+ Source:
34
+ - https://www.erdosproblems.com/forum/thread/848
35
+
36
+ Imported values:
37
+ - `7 x 10^17` on 2026-03-21
38
+ - `3.3 x 10^17` on 2026-03-22
39
+ - `2.64 x 10^17` on 2026-03-23
40
+
41
+ Why it matters:
42
+ - these claims change the size of the remaining finite gap
43
+ - they do not by themselves verify any bounded interval below the threshold
44
+
45
+ Repo audit posture:
46
+ - operationally relevant
47
+ - not yet promoted to repo-owned theorem truth
48
+
49
+ ## Current repo rule
50
+
51
+ Imported verification work is welcome, but it only counts toward canonical coverage after the
52
+ repo can answer:
53
+ - what exact interval is covered
54
+ - by what method class
55
+ - with what reproduction path
56
+ - and whether external criticism has been answered
@@ -0,0 +1,114 @@
1
+ # Problem 848 Extraction Checklist
2
+
3
+ This checklist turns the current threshold ledger into the next explicit route task.
4
+
5
+ Goal:
6
+ - identify exactly what must be made numerical before the existential `N0` in Sawhney's note becomes a usable explicit threshold
7
+
8
+ ## Margin ledger from the public note
9
+
10
+ Target extremal density:
11
+ - `1/25 = 0.04`
12
+
13
+ Rounded case bounds recorded in the note:
14
+ - Case 1: `0.0377`
15
+ - Case 2: `0.0358`
16
+ - Case 3: `0.0336`
17
+ - Final mixed-class case: `0.0294`
18
+
19
+ Current margin to the target:
20
+ - Case 1 slack: `0.0400 - 0.0377 = 0.0023`
21
+ - Case 2 slack: `0.0400 - 0.0358 = 0.0042`
22
+ - Case 3 slack: `0.0400 - 0.0336 = 0.0064`
23
+ - Final mixed-class slack: `0.0400 - 0.0294 = 0.0106`
24
+
25
+ Immediate implication:
26
+ - the weakest case is the `0.0377` branch
27
+ - any fully explicit threshold extraction has to force the accumulated error terms in that branch below the available `0.0023 N` slack
28
+ - before spending that full slack, the repo should freeze the exact main-term constants behind `0.0252` and `0.0125`, since the public note only records rounded decimals
29
+
30
+ ## Proof components to quantify
31
+
32
+ ### A. Lemma 2.1 tail and inclusion-exclusion error
33
+
34
+ Need:
35
+ - explicit control of the prime-square tail `sum_{T <= p <= N^(1/2)} N/p^2`
36
+ - explicit control of the small-prime inclusion-exclusion remainder
37
+ - an explicit version of the `N^(o(1))` term coming from the small-prime product
38
+
39
+ Route question:
40
+ - can these be made comfortably smaller than the smallest slack without overcomplicating the rest of the proof?
41
+
42
+ Current repo answer:
43
+ - yes on explicitization
44
+ - no on comfort: once the bound is written out, the large-prime tail is still too expensive at
45
+ the public candidate thresholds unless the tail treatment or the truncation parameter improves
46
+ - see `LEMMA21_EXPLICIT_BOUND.md`
47
+
48
+ ### B. Lemma 2.2 progression error
49
+
50
+ Need:
51
+ - explicit control of the tail over primes dividing `ab+1`
52
+ - a quantitative replacement for the `<< N / sqrt(log N)` term
53
+
54
+ Route question:
55
+ - is this the actual bottleneck, as the public forum discussion suggests?
56
+
57
+ ### C. Choice of `eta`
58
+
59
+ Need:
60
+ - identify where the proof requires a small absolute `eta`
61
+ - determine whether the proof ever needs a specific lower ceiling on `eta`, or only that `eta` be less than the smallest surviving numerical slack after error absorption
62
+
63
+ ### D. Final case assembly
64
+
65
+ Need:
66
+ - for each case, record the exact main-term bound and the admissible total error budget
67
+ - verify which branch determines the final threshold
68
+
69
+ Current belief:
70
+ - the `0.0377` case is the active bottleneck until a sharper calculation says otherwise
71
+
72
+ ## Work order
73
+
74
+ 1. Freeze the exact or conservatively certified main-term slack for the `0.0377` branch.
75
+ 2. Extract every hidden constant and error input from Lemma 2.1.
76
+ 3. Decide whether the resulting large-prime tail can fit inside the weakest-branch slack at any plausible threshold scale.
77
+ 4. If not at `T = floor(sqrt(log N))`, scan larger truncation parameters before demanding a deeper new theorem.
78
+ 5. Extract every hidden constant and error input from Lemma 2.2 using the best currently justified truncation choice.
79
+ 6. Only then decide whether to keep pushing analytic extraction or pivot harder into bounded finite computation.
80
+
81
+ Current repo posture:
82
+ - Step 1 is now complete at a conservative numerical level.
83
+ - Step 2 is now complete at a one-sided explicit level.
84
+ - Step 3 is now complete: the route should enlarge `T` before asking for a deeper tail theorem.
85
+ - Step 5 is now complete at a witness-budget level.
86
+ - The next unresolved work is no longer mathematical: it is deciding how to commit and review
87
+ the surfaced candidate package.
88
+
89
+ ## What would count as progress
90
+
91
+ - a line-by-line list of every non-explicit estimate in Lemma 2.1 and Lemma 2.2
92
+ - an exact or conservative usable-slack budget for the weakest branch
93
+ - an explicit declaration of which branch sets the threshold
94
+ - a clean budget statement for how much of the roughly `0.002388` branch slack is available to Lemma 2.1, Lemma 2.2, and `eta`
95
+ - a clear statement of whether the large-prime tail or the small-prime discretization is the
96
+ real bottleneck
97
+ - a clear statement of whether the proof should first change `T` or first seek a sharper tail
98
+ theorem
99
+ - a line-by-line weakest-branch assembly for at least one concrete witness value of `T`
100
+ - a line-by-line ledger for the surviving `eta` room after all lemma-level costs
101
+ - a branch comparison ledger showing whether the weakest-branch witness already dominates the
102
+ rest of the proof
103
+ - a proposition-level explicit witness note saying exactly what the repo now claims and what it
104
+ still does not claim
105
+ - a proof-obligation ledger saying what still has to be frozen before a public-truth update
106
+ - a certified numerical ledger for every decimal input used in the current witness
107
+ - a theorem-style note that assembles the current witness in one proof-shaped artifact
108
+ - a publication handoff decision for whether that theorem-style note belongs in the paper
109
+ bundle, a public review artifact, or both
110
+ - a short share-ready summary for maintainers or public-facing notes
111
+ - a justified statement like:
112
+ - “the current proof architecture plausibly yields an explicit threshold”
113
+ - or
114
+ - “the current proof architecture is too lossy without a new lemma or better error term”
@@ -0,0 +1,48 @@
1
+ # Problem 848 Frontier Note
2
+
3
+ Problem 848 is a decidable finite-check problem, not a fresh asymptotic frontier.
4
+ The optimization target is full finite-gap closure, not "smallest `N0`" in isolation.
5
+
6
+ The live route is `finite_check_gap_closure`:
7
+ - keep Sawhney's sufficiently-large-`N` theorem exact
8
+ - do not widen `decidable` into `solved`
9
+ - treat explicit-threshold extraction and finite verification as separate but coupled lanes
10
+
11
+ Imported public threshold timeline:
12
+ - `N0 = 7 x 10^17` on 2026-03-21
13
+ - `N0 = 3.3 x 10^17` on 2026-03-22
14
+ - `N0 = 2.64 x 10^17` on 2026-03-23
15
+
16
+ So the repo's current `exp(1420)` candidate should be read as an audited workspace artifact,
17
+ not as the best public threshold.
18
+
19
+ The smallest honest next move is not “solve 848”.
20
+ It is:
21
+ - keep the current repo candidate claim-safe while turning it into a review unit
22
+ - maintain the distinction between:
23
+ - theorem-style repo candidate
24
+ - public review artifact
25
+ - finished publication proof
26
+ - use the current explicit witness package as the handoff surface, not as a reason to
27
+ silently upgrade the problem to `solved`
28
+
29
+ The current package is already internally reviewed enough for handoff:
30
+ - the paper bundle now has drafted introduction, preliminaries, and related-work sections
31
+ - the surfaced candidate package has no remaining placeholder text
32
+ - tests and publish-surface checks are green
33
+
34
+ Chosen next lane:
35
+ - bounded finite verification under the best imported threshold currently tracked
36
+
37
+ Why this lane wins the next cycle:
38
+ - the real objective is to close the finite remainder, not just publish a smaller `N0`
39
+ - imported threshold progress already exists, so the repo needs an interval-certification
40
+ surface to make use of it
41
+ - the public thread already contains one verification attempt that was later corrected and
42
+ criticized as difficult to verify, so trust and reproducibility have to be first-class
43
+
44
+ Read next:
45
+ - `BOUNDED_VERIFICATION_PLAN.md`
46
+ - `VERIFICATION_REGIMES.md`
47
+ - `VERIFICATION_CERTIFICATE_SPEC.md`
48
+ - `EXTERNAL_VERIFICATION_LEDGER.md`
@@ -0,0 +1,200 @@
1
+ # Problem 848 Lemma 2.1 Explicit Bound
2
+
3
+ This note closes the current `N848.G1.A4` task:
4
+ - replace the hidden `<<` and `N^(o(1))` steps in Lemma 2.1 with an explicit one-sided bound
5
+ - identify which remainder term is actually binding for the `0.0377` branch
6
+
7
+ Scope:
8
+ - this is still not a full explicit threshold proof
9
+ - this note only packages the first explicit Lemma 2.1 remainder bound
10
+ - the goal is to decide what the next honest analytic move must be
11
+
12
+ ## Source surface
13
+
14
+ Primary source:
15
+ - Sawhney, `Problem_848.pdf`, Lemma 2.1, pages 1-2
16
+
17
+ Support source:
18
+ - `erdosproblems.com/forum/thread/848`
19
+
20
+ ## Setup
21
+
22
+ Let
23
+ - `U(P; N, q, t)` denote the set of `n in [N]` such that `n ≡ t mod q` and
24
+ `n mod p^2 in R_p` for at least one `p in P`
25
+ - `|R_p| <= 2`
26
+ - `R_p = empty` whenever `(p, q) != 1`
27
+ - `T = floor(sqrt(log N))`
28
+
29
+ Write:
30
+ - `P_<= = {p in P : p <= T}`
31
+ - `P_> = {p in P : T < p <= N^(1/2)}`
32
+ - `x_p = |R_p| / p^2`
33
+ - `m = |P_<=|`
34
+
35
+ The lemma in the note states
36
+ - `|U(P; N, q, t) - (N/q) * (1 - prod_{p in P} (1 - x_p))| << N / sqrt(log N)`
37
+
38
+ For the route, the important question is not the asymptotic statement itself. It is:
39
+ - what explicit upper bound can replace the hidden remainder when we only need a one-sided
40
+ inequality for the density casework?
41
+
42
+ ## Explicit large-prime tail
43
+
44
+ For each `p in P_>` and each `r in R_p`, the congruence conditions
45
+ - `n ≡ t mod q`
46
+ - `n ≡ r mod p^2`
47
+
48
+ define at most one residue class modulo `q p^2`, because `(p, q) = 1` whenever `R_p` is
49
+ nonempty. Therefore
50
+
51
+ `|{n in [N] : n ≡ t mod q and n ≡ r mod p^2}| <= N / (q p^2) + 1`.
52
+
53
+ Summing over the at most two allowed residues gives
54
+
55
+ `|{n in [N] : n ≡ t mod q and n mod p^2 in R_p}| <= 2N / (q p^2) + 2`.
56
+
57
+ By a union bound over `p in P_>`,
58
+
59
+ `|U(P_>; N, q, t)| <= (2N/q) * sum_{p in P_>} 1/p^2 + 2|P_>|`.
60
+
61
+ So the proof's hidden large-prime tail is explicitly bounded by
62
+
63
+ `(2N/q) * sum_{p in P, p > T} 1/p^2 + 2 pi(N^(1/2))`.
64
+
65
+ This is the first source-backed place where the route can choose between:
66
+ - the original crude integer tail `sum_{n > T} 1/n^2 < 1/(T - 1)`
67
+ - a sharper prime-only tail, which the public forum discussion identifies as the more
68
+ realistic path
69
+
70
+ ## Explicit small-prime inclusion-exclusion remainder
71
+
72
+ Consider the truncated union over `P_<=`.
73
+
74
+ For each nonempty subset `S subseteq P_<=`, inclusion-exclusion introduces the intersection
75
+
76
+ `I_S = | intersection_{p in S} {n in [N] : n mod p^2 in R_p} intersection {n in [N] : n ≡ t mod q} |`.
77
+
78
+ For a fixed choice of one residue from each `R_p`, the congruence system determines exactly
79
+ one residue class modulo `q * prod_{p in S} p^2`. Hence
80
+
81
+ `I_S = (N/q) * prod_{p in S} x_p + E_S`
82
+
83
+ with
84
+
85
+ `|E_S| <= prod_{p in S} |R_p| <= 2^{|S|}`.
86
+
87
+ Summing these errors through inclusion-exclusion gives
88
+
89
+ `|U(P_<=; N, q, t) - (N/q) * (1 - prod_{p in P_<=} (1 - x_p))| <= sum_{empty != S subseteq P_<=} 2^{|S|}`
90
+
91
+ and therefore
92
+
93
+ `|U(P_<=; N, q, t) - (N/q) * (1 - prod_{p in P_<=} (1 - x_p))| <= 3^m - 1`.
94
+
95
+ This is the explicit replacement for the note's `N^(o(1))` step.
96
+
97
+ ## One-sided explicit Lemma 2.1 bound
98
+
99
+ Combining the truncated inclusion-exclusion bound with the large-prime union bound yields
100
+
101
+ `|U(P; N, q, t)| <= (N/q) * (1 - prod_{p in P} (1 - x_p)) + (3^m - 1) + (2N/q) * sum_{p in P, p > T} 1/p^2 + 2 pi(N^(1/2))`.
102
+
103
+ This is weaker than the asymptotic note in two ways:
104
+ - it is only one-sided
105
+ - it keeps discrete counting terms instead of burying them in `o(1)`
106
+
107
+ But for the route, it is enough:
108
+ - the casework only needs an upper bound
109
+ - the new expression cleanly separates the tail term from the small-prime discretization
110
+
111
+ ## Specialization to the `A*` branch
112
+
113
+ In the weakest `0.0377` branch of the proof:
114
+ - `q = 25`
115
+ - there are `23` residue classes modulo `25` contributing to `A*`
116
+ - `P = {p prime : p ≡ 1 mod 4 and p >= 13}`
117
+ - each active prime contributes exactly `|R_p| = 2`
118
+
119
+ So the explicit density bound becomes
120
+
121
+ `|A*| / N <= (23/25) * (1 - prod_{p ≡ 1 mod 4, p >= 13} (1 - 2/p^2))`
122
+
123
+ plus the explicit remainder
124
+
125
+ `(23/N) * (3^m - 1) + (46/25) * sum_{p > T, p ≡ 1 mod 4} 1/p^2 + 46 * pi_{1 mod 4}(N^(1/2)) / N`
126
+
127
+ where
128
+ - `m = |{p <= T : p ≡ 1 mod 4 and p >= 13}|`
129
+
130
+ ## What the explicit bound says at public threshold candidates
131
+
132
+ The small-prime remainder is not the live problem.
133
+
134
+ For the public candidate scales mentioned on the forum:
135
+
136
+ ### 1. `N = exp(1420)` so `T = floor(sqrt(log N)) = 37`
137
+
138
+ Numerical support:
139
+ - `m = 4`, so the discrete inclusion-exclusion term is exactly `23 * (3^4 - 1) / N = 1840 / N`
140
+ - summing `1/p^2` over primes `p ≡ 1 mod 4`, `p > 37`, up to `5,000,000`, then adding the
141
+ crude tail envelope `1 / 5,000,000`, gives about `0.00251707`
142
+ - multiplying by the branch coefficient `46/25` gives a tail-density penalty about
143
+ `0.00463141`
144
+
145
+ ### 2. `N = exp(1958)` so `T = floor(sqrt(log N)) = 44`
146
+
147
+ Numerical support:
148
+ - `m = 5`, so the discrete inclusion-exclusion term is exactly `23 * (3^5 - 1) / N = 5566 / N`
149
+ - the same prime-tail computation gives about `0.00192219`
150
+ - multiplying by `46/25` gives a tail-density penalty about `0.00353682`
151
+
152
+ ### 3. Comparison with the frozen weakest-branch slack
153
+
154
+ From `WEAKEST_CASE_BUDGET.md`, the current branch-level slack before analytic error
155
+ absorption is about `0.00238869`.
156
+
157
+ Therefore:
158
+ - the small-prime discretization term is negligible at these scales
159
+ - the large-prime tail already exceeds the full branch slack at both `exp(1420)` and
160
+ `exp(1958)`
161
+ - this happens before paying for Lemma 2.2 or for the final `eta` absorption
162
+
163
+ If one keeps the proof's even cruder integer-tail estimate
164
+ - `sum_{n > T} 1/n^2 < 1/(T - 1)`
165
+
166
+ then the `A*` density penalty alone is
167
+ - about `0.05111` at `T = 37`
168
+ - about `0.04279` at `T = 44`
169
+
170
+ which is completely incompatible with the frozen branch slack.
171
+
172
+ ## Honest route consequence
173
+
174
+ This closes the current question behind `N848.G1.A4`.
175
+
176
+ The new exact route reading is:
177
+ - Lemma 2.1 is now explicit enough to see the structure of the loss
178
+ - the `N^(o(1))` / inclusion-exclusion discretization is not the real blocker
179
+ - the large-prime tail is the live analytic bottleneck
180
+ - keeping `T = floor(sqrt(log N))` and the crude tail treatment is too lossy for the
181
+ public threshold candidates discussed so far
182
+
183
+ So the next honest move is no longer
184
+ - “make Lemma 2.1 explicit”
185
+
186
+ It is:
187
+ - improve the large-prime tail or the truncation parameter before spending time on more
188
+ bookkeeping
189
+
190
+ ## Numerical method note
191
+
192
+ The prime-tail support numbers above are not yet formal proof artifacts.
193
+
194
+ They were obtained by:
195
+ - summing over all primes up to `5,000,000`
196
+ - restricting to the `1 mod 4` primes for the `A*` branch
197
+ - adding the crude tail envelope `sum_{n > 5,000,000} 1/n^2 < 1 / 5,000,000`
198
+
199
+ This is conservative enough for route guidance, but not yet the final explicit-threshold
200
+ certificate.