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
@@ -0,0 +1,111 @@
1
+ # Problem 848 Lemma 2.1 Truncation Scan
2
+
3
+ This note closes `N848.G1.A5`.
4
+
5
+ Question:
6
+ - after making Lemma 2.1 explicit, should the next move be a sharper prime-tail bound or a
7
+ different truncation parameter `T`?
8
+
9
+ Answer:
10
+ - the next move should first be a different `T`
11
+
12
+ ## Why the old `T = floor(sqrt(log N))` restriction disappears
13
+
14
+ In Sawhney's note, `T = floor(sqrt(log N))` is used so that
15
+ - `prod_{p <= T} p^2 <= N^(o(1))`
16
+
17
+ and the small-prime inclusion-exclusion remainder can be hidden inside `N^(o(1))`.
18
+
19
+ But the explicit one-sided bound in `LEMMA21_EXPLICIT_BOUND.md` does **not** use that
20
+ compression. It keeps the discrete remainder as
21
+
22
+ - `3^m - 1`
23
+
24
+ with `m = |P_<=|`.
25
+
26
+ So for the one-sided route, there is no longer a structural need to tie `T` to
27
+ `sqrt(log N)`. The argument remains valid for any
28
+
29
+ - `2 <= T <= N^(1/2)`.
30
+
31
+ The real question becomes:
32
+ - how large can `T` be before the discrete term stops being negligible compared with `N`?
33
+
34
+ ## Scan for the weakest `A*` branch
35
+
36
+ For the `A*` branch:
37
+ - `q = 25`
38
+ - `P = {p prime : p ≡ 1 mod 4 and p >= 13}`
39
+ - tail-density coefficient: `46/25`
40
+ - discrete density: `(23/N) * (3^m - 1)`
41
+
42
+ The table below compares several truncation choices using the same conservative prime-tail
43
+ numerics as `LEMMA21_EXPLICIT_BOUND.md`.
44
+
45
+ ### Candidate thresholds from the public discussion
46
+
47
+ - `N = exp(1420)`
48
+ - `N = exp(1958)`
49
+
50
+ ### Truncation scan
51
+
52
+ | `T` | `m = #{p <= T : p ≡ 1 mod 4, p >= 13}` | `23 * (3^m - 1)` | `A*` tail density |
53
+ | --- | ---: | ---: | ---: |
54
+ | `44` | `5` | `5566` | `0.00353682` |
55
+ | `100` | `10` | `1,358,104` | `0.00161416` |
56
+ | `250` | `23` | `2,165,293,112,998` | `0.00056415` |
57
+ | `500` | `43` | `7.55e21` | `0.00025269` |
58
+ | `1000` | `79` | `1.13e39` | `0.00011781` |
59
+
60
+ ## What the scan means
61
+
62
+ ### 1. The discrete term stays tiny far beyond `sqrt(log N)`
63
+
64
+ At the candidate threshold `N = exp(1420)`:
65
+ - even `T = 1000` gives discrete density below about `exp(-1330)`
66
+
67
+ At `N = exp(1958)`:
68
+ - the same term is even smaller, below about `exp(-1868)`
69
+
70
+ So the discrete inclusion-exclusion remainder is not what forces `T = floor(sqrt(log N))`.
71
+
72
+ ### 2. Raising `T` immediately improves the actual live bottleneck
73
+
74
+ The large-prime tail is the live bottleneck from `LEMMA21_EXPLICIT_BOUND.md`.
75
+
76
+ But once `T` is allowed to move:
77
+ - `T = 100` already pushes the `A*` tail below the full weakest-branch slack
78
+ `0.00238869`
79
+ - `T = 250` brings the `A*` tail down to about `0.00056415`
80
+ - `T = 500` brings it down further to about `0.00025269`
81
+
82
+ So the route does not first need a deep new prime-tail theorem just to escape the old
83
+ `sqrt(log N)` cage. Re-optimizing `T` already changes the picture materially.
84
+
85
+ ### 3. Prime-tail sharpening is still valuable, but it is now a second-order improvement
86
+
87
+ Sharper prime-tail estimates would still help:
88
+ - they reduce the tail further
89
+ - they lower any eventual explicit threshold
90
+
91
+ But the first decisive move is simpler:
92
+ - stop fixing `T = floor(sqrt(log N))`
93
+ - choose a larger truncation parameter that keeps the discrete term negligible while
94
+ shrinking the tail
95
+
96
+ ## Honest route consequence
97
+
98
+ This resolves the question behind `N848.G1.A5`.
99
+
100
+ The next honest move is:
101
+ - keep the explicit one-sided Lemma 2.1 framework
102
+ - choose a larger `T`
103
+ - carry that choice through Lemma 2.2 and the full weakest-branch budget
104
+
105
+ The live unresolved question is no longer
106
+ - “can Lemma 2.1 be made explicit?”
107
+ - or
108
+ - “is `sqrt(log N)` the only viable truncation?”
109
+
110
+ It is:
111
+ - “how far does the full `0.0377` branch close once both lemmas use a larger `T`?”
@@ -0,0 +1,133 @@
1
+ # Problem 848 Lemma 2.2 Explicit Bound
2
+
3
+ This note is the first half of `N848.G1.A6`.
4
+
5
+ Goal:
6
+ - carry the larger-truncation Lemma 2.1 route into Lemma 2.2 without retreating to
7
+ `T = floor(sqrt(log N))`
8
+
9
+ ## Source surface
10
+
11
+ Primary source:
12
+ - Sawhney, `Problem_848.pdf`, Lemma 2.2, page 2
13
+
14
+ Support source:
15
+ - `LEMMA21_EXPLICIT_BOUND.md`
16
+ - `LEMMA21_TRUNCATION_SCAN.md`
17
+
18
+ ## Setup
19
+
20
+ Fix:
21
+ - `q` a perfect square
22
+ - `t mod q`
23
+ - `1 <= b <= N`
24
+
25
+ Assume the Lemma 2.2 non-degeneracy condition from the note:
26
+ - there is no prime `p` such that `p^2 | q` and `p^2 | (bt + 1)`
27
+
28
+ Define
29
+
30
+ `V(N, q, t, b) = {a in [N] : a ≡ t mod q and mu(ab + 1) = 0}`.
31
+
32
+ Choose any truncation parameter
33
+ - `2 <= T <= N^(1/2)`.
34
+
35
+ ## Large-prime tail
36
+
37
+ If `a in V(N, q, t, b)`, then there exists a prime `p` with
38
+ - `p^2 | (ab + 1)`
39
+ - `(p, qb) = 1`
40
+
41
+ For a fixed prime `p` with `(p, qb) = 1`, the condition `p^2 | (ab + 1)` determines exactly
42
+ one residue class modulo `p^2` for `a`, because `b` is invertible modulo `p^2`.
43
+
44
+ Together with `a ≡ t mod q`, this gives at most one residue class modulo `q p^2`, hence
45
+
46
+ `|{a in [N] : a ≡ t mod q and p^2 | (ab + 1)}| <= N / (q p^2) + 1`.
47
+
48
+ Summing over primes `p > T` gives the explicit large-prime tail
49
+
50
+ `sum_{p > T, (p, qb) = 1} (N / (q p^2) + 1)`
51
+
52
+ and therefore
53
+
54
+ `<= (N/q) * sum_{p > T, (p, qb) = 1} 1/p^2 + pi(N)`.
55
+
56
+ ## Small-prime reduction to Lemma 2.1
57
+
58
+ For primes `p <= T` with `(p, qb) = 1`, the condition `p^2 | (ab + 1)` gives exactly one
59
+ residue class modulo `p^2`.
60
+
61
+ So on the truncated range `p <= T`, Lemma 2.2 reduces to Lemma 2.1 with
62
+ - `|R_p| = 1`
63
+
64
+ instead of `|R_p| <= 2`.
65
+
66
+ Applying the one-sided explicit Lemma 2.1 bound to the small-prime part gives
67
+
68
+ `|V_small| <= (N/q) * (1 - prod_{p <= T, (p, qb) = 1} (1 - 1/p^2)) + (2^m - 1)`
69
+
70
+ where
71
+ - `m = #{p <= T : (p, qb) = 1}`.
72
+
73
+ This is sharper than the `A*` branch:
74
+ - the discrete remainder is `2^m - 1`, not `3^m - 1`
75
+
76
+ ## One-sided explicit Lemma 2.2 bound
77
+
78
+ Combining the small-prime reduction with the large-prime tail gives
79
+
80
+ `|V(N, q, t, b)| <= (N/q) * (1 - prod_{p, (p, qb) = 1} (1 - 1/p^2)) + (2^m - 1) + (N/q) * sum_{p > T, (p, qb) = 1} 1/p^2 + pi(N)`.
81
+
82
+ This is the explicit one-sided replacement for the note's
83
+ - `<< N / sqrt(log N)` error term in Lemma 2.2.
84
+
85
+ ## Specialization to the weakest `0.0377` branch
86
+
87
+ In the branch with an even `b in A*`, Lemma 2.2 is applied to the two residue classes
88
+ - `7 mod 25`
89
+ - `18 mod 25`
90
+
91
+ So `q = 25` and there are two classes total.
92
+
93
+ In the worst case, `b` excludes no additional primes beyond `2` and `5`, so
94
+
95
+ - `m <= pi(T) - 2`
96
+ - `sum_{p > T, (p, qb) = 1} 1/p^2 <= sum_{p > T, p != 2, 5} 1/p^2`
97
+
98
+ Hence the total density remainder for `A7 union A18` is bounded by
99
+
100
+ `(2/N) * (2^m - 1) + (2/25) * sum_{p > T, p != 2, 5} 1/p^2 + 2 pi(N) / N`.
101
+
102
+ ## Witness value `T = 250`
103
+
104
+ At `T = 250`:
105
+ - `pi(250) = 53`
106
+ - so the worst-case small-prime count is `m <= 51`
107
+ - the discrete remainder is at most `2 * (2^51 - 1) / N`
108
+ - the prime-tail sum over all primes `p > 250`, using the same conservative cutoff method as
109
+ before, is about `0.00061382`
110
+ - therefore the Lemma 2.2 tail density contribution is about `0.00004911`
111
+
112
+ At the public candidate threshold `N = exp(1420)`:
113
+ - the discrete term is below about `exp(-1384)`
114
+
115
+ But one term is still unresolved here:
116
+ - the additive `pi(N)` contribution coming from the `+1` part of the large-prime count
117
+
118
+ So for the branch under discussion, Lemma 2.2 no longer looks blocked by its
119
+ - `N / (q p^2)` tail
120
+ - or its small-prime inclusion-exclusion remainder
121
+
122
+ but it still needs an explicit prime-counting bound before its full density cost is frozen.
123
+
124
+ ## Honest route consequence
125
+
126
+ The explicit route can now say:
127
+ - Lemma 2.1 is explicit
128
+ - Lemma 2.2 is also explicit at the same one-sided level
129
+ - but the Lemma 2.2 prime-count tail is not yet numerically frozen
130
+
131
+ It is:
132
+ - how much total slack remains after the outstanding `pi(N)` term is bounded and both lemmas
133
+ are assembled in the weakest branch?
@@ -0,0 +1,58 @@
1
+ # Problem 848 Lemma 2.2 Prime-Count Bound
2
+
3
+ This note closes the outstanding blocker inside `N848.G1.A6`.
4
+
5
+ Goal:
6
+ - freeze the additive `2 pi(N) / N` term that remained unresolved in
7
+ `LEMMA22_EXPLICIT_BOUND.md`
8
+
9
+ ## Source surface
10
+
11
+ Primary source:
12
+ - Pierre Dusart, `Estimates of Some Functions Over Primes without R.H.`
13
+
14
+ Publicly visible statement used here:
15
+ - for `x > 60184`,
16
+ `pi(x) <= x / (log x - 1.1)`
17
+
18
+ Reference surface:
19
+ - the public full-text view mirrored from `arXiv:1002.0442v1`
20
+ - see the theorem summary lines recorded in the local research notes
21
+
22
+ ## Candidate threshold scale
23
+
24
+ The strongest public candidate threshold discussed in the forum workstream is
25
+
26
+ - `N = exp(1420)`.
27
+
28
+ Since `exp(1420) > 60184`, Dusart's bound applies. Therefore for every
29
+ - `N >= exp(1420)`,
30
+
31
+ we have
32
+
33
+ `2 pi(N) / N <= 2 / (log N - 1.1) <= 2 / (1420 - 1.1)`.
34
+
35
+ Numerically,
36
+
37
+ - `2 / (1420 - 1.1) ~= 0.0014095427`.
38
+
39
+ At the weaker public candidate
40
+ - `N = exp(1958)`,
41
+
42
+ the same bound improves to
43
+
44
+ - `2 / (1958 - 1.1) ~= 0.0010220247`.
45
+
46
+ So the prime-count term is now explicit, monotone, and numerically small enough to carry into
47
+ the weakest-branch witness budget.
48
+
49
+ ## Honest route consequence
50
+
51
+ This closes the last unfrozen line item inside the provisional `T = 250` branch budget.
52
+
53
+ The next live question is no longer:
54
+ - how to bound the Lemma 2.2 `+1` contribution
55
+
56
+ It is:
57
+ - how much `eta` and final bookkeeping room survives once that bound is inserted into the full
58
+ weakest-branch ledger?
@@ -0,0 +1,169 @@
1
+ packet_id: nt848_ops_details_v1
2
+ summary: Decidable-gap workspace packet for the squarefree ab+1 extremal set problem.
3
+ routes:
4
+ - route_id: finite_check_gap_closure
5
+ title: Finite-Check Gap Closure
6
+ status: active
7
+ summary: Convert the sufficiently-large-N theorem into a complete all-N resolution without overstating what is already closed or confusing imported thresholds with repo-owned claims.
8
+ why_now: The share package is already committed, and the repo has now chosen bounded finite verification as the next closure lane.
9
+ next_move: Freeze the bounded finite-verification program and its certificate surface.
10
+ - route_id: external_threshold_tracking
11
+ title: External Threshold Tracking
12
+ status: support
13
+ summary: Track the best imported public `N0` claims so the finite remainder is sized honestly.
14
+ why_now: Public threshold improvements change the scale of the remaining bounded verification problem.
15
+ next_move: Keep the 2026-03-21 to 2026-03-23 imported timeline current without silently adopting it as canonical repo truth.
16
+ - route_id: bounded_finite_verification
17
+ title: Bounded Finite Verification
18
+ status: active_support
19
+ summary: Reduce the finite remainder directly once a threshold is trusted enough to be operationally useful.
20
+ why_now: Lowering `N0` matters because it reduces this lane, not because "smallest threshold" is the whole problem.
21
+ next_move: Partition the finite remainder into regimes and define the certificate required before any interval counts as covered.
22
+ - route_id: formalization_coverage_audit
23
+ title: Formalization Coverage Audit
24
+ status: support
25
+ summary: Determine exactly what the public Lean files certify and what finite remainder they leave open.
26
+ why_now: Formalization chatter is useful support evidence, but it should not be mistaken for full closure.
27
+ next_move: Keep this as support context until the threshold ledger is frozen.
28
+ tickets:
29
+ - ticket_id: N848
30
+ title: Close the decidable gap without confusing imported threshold progress and repo-owned candidate work
31
+ route_id: finite_check_gap_closure
32
+ status: active
33
+ summary: The repo now has a committed review package for its audited `exp(1420)` candidate, while the imported forum timeline currently points to a stronger external threshold. The chosen next lane is bounded finite verification under the best trusted threshold.
34
+ current_blocker: The repo has not yet frozen the certificate surface needed for any bounded interval claim to count as canonical coverage.
35
+ next_move: Close `N848.G1.A18`.
36
+ - ticket_id: N848F
37
+ title: Audit public formalization coverage
38
+ route_id: formalization_coverage_audit
39
+ status: support
40
+ summary: Separate asymptotic Lean coverage from finite sample checks and full closure claims.
41
+ current_blocker: The current dossier only records public chatter, not a precise coverage map.
42
+ next_move: Keep as a support lane until the main threshold ledger is stable.
43
+ atoms:
44
+ - atom_id: N848.G1.A1
45
+ title: Enumerate every sufficiently-large input in Sawhney's proof and classify it as explicit, weakly explicit, or existential
46
+ route_id: finite_check_gap_closure
47
+ ticket_id: N848
48
+ status: done
49
+ summary: The threshold ledger is now frozen in canonical pack notes.
50
+ next_move: Keep as support context for the extraction checklist.
51
+ - atom_id: N848.G1.A2
52
+ title: Record the weakest margin case and extract the checklist for making the threshold explicit
53
+ route_id: finite_check_gap_closure
54
+ ticket_id: N848
55
+ status: done
56
+ summary: The weakest branch and its first extraction checklist are now frozen in canonical pack notes.
57
+ next_move: Use the weakest-case budget sheet as the next source-backed frontier surface.
58
+ - atom_id: N848.G1.A3
59
+ title: Freeze the usable slack behind the `0.0377` branch before spending it on explicit error terms
60
+ route_id: finite_check_gap_closure
61
+ ticket_id: N848
62
+ status: done
63
+ summary: The branch budget is now numerically frozen in canonical pack notes.
64
+ next_move: Use the frozen branch slack as the target budget for explicit remainder extraction.
65
+ - atom_id: N848.G1.A4
66
+ title: Make the Lemma 2.1 remainder terms explicit against the frozen weakest-branch budget
67
+ route_id: finite_check_gap_closure
68
+ ticket_id: N848
69
+ status: done
70
+ summary: Lemma 2.1 now has a one-sided explicit remainder ledger, and the large-prime tail has emerged as the live bottleneck.
71
+ next_move: Use the new ledger to decide whether the next move is a sharper prime-tail treatment or a different truncation parameter.
72
+ - atom_id: N848.G1.A5
73
+ title: Decide whether the next Lemma 2.1 move is a sharper prime-tail bound or a different truncation parameter
74
+ route_id: finite_check_gap_closure
75
+ ticket_id: N848
76
+ status: done
77
+ summary: The truncation scan shows that the one-sided route can raise `T` far beyond `sqrt(log N)` without waking the discrete remainder, so the next move is to enlarge `T` before chasing a deeper tail theorem.
78
+ next_move: Use a larger `T` in the full weakest-branch bookkeeping.
79
+ - atom_id: N848.G1.A6
80
+ title: Carry a larger truncation parameter through Lemma 2.2 and the full weakest-branch budget
81
+ route_id: finite_check_gap_closure
82
+ ticket_id: N848
83
+ status: done
84
+ summary: Lemma 2.2 is now explicit at the witness-budget level, including the prime-count term, and the `T = 250` witness retains about `3.66e-4` room for final `eta` and bookkeeping.
85
+ next_move: Turn that witness budget into a line-by-line explicit branch assembly.
86
+ - atom_id: N848.G1.A7
87
+ title: Turn the `T = 250` witness budget into a line-by-line explicit weakest-branch assembly
88
+ route_id: finite_check_gap_closure
89
+ ticket_id: N848
90
+ status: done
91
+ summary: The weakest branch now has a line-by-line witness ledger at `T = 250` with a working choice `eta = 10^-4` and about `2.66e-4` visible reserve.
92
+ next_move: Carry the same witness into the other public proof branches.
93
+ - atom_id: N848.G1.A8
94
+ title: Check whether the weakest-branch witness already closes the other public branches
95
+ route_id: finite_check_gap_closure
96
+ ticket_id: N848
97
+ status: done
98
+ summary: The shared witness also closes the branches `0.0358`, `0.0336`, and `0.0294` at the repo's current explicit level, so no new branch bottleneck has appeared.
99
+ next_move: Package the shared witness into a proposition-level explicit candidate note.
100
+ - atom_id: N848.G1.A9
101
+ title: Package the shared witness into a proposition-level explicit candidate
102
+ route_id: finite_check_gap_closure
103
+ ticket_id: N848
104
+ status: done
105
+ summary: The repo now has a proposition-level explicit witness candidate with claim-safe wording.
106
+ next_move: Separate proof obligations from exposition obligations before any stronger claim is made.
107
+ - atom_id: N848.G1.A10
108
+ title: Write the proof-obligation ledger for the proposition-level explicit candidate
109
+ route_id: finite_check_gap_closure
110
+ ticket_id: N848
111
+ status: done
112
+ summary: The remaining obligations are now split cleanly into mathematical hardening work versus presentation-quality work.
113
+ next_move: Harden the decimal inputs used by the current witness.
114
+ - atom_id: N848.G1.A11
115
+ title: Replace the displayed decimal inputs with certified numerical bounds
116
+ route_id: finite_check_gap_closure
117
+ ticket_id: N848
118
+ status: done
119
+ summary: The current shared witness now has a conservative machine-interval ledger for its main numerical inputs.
120
+ next_move: Assemble the hardened witness into a theorem-style note.
121
+ - atom_id: N848.G1.A12
122
+ title: Assemble the hardened witness into a theorem-style explicit proof note
123
+ route_id: finite_check_gap_closure
124
+ ticket_id: N848
125
+ status: done
126
+ summary: The route now has a theorem-shaped proof artifact built from the numerically hardened shared witness candidate.
127
+ next_move: Decide where to surface that artifact next.
128
+ - atom_id: N848.G1.A13
129
+ title: Decide how to surface the theorem-style repo candidate
130
+ route_id: finite_check_gap_closure
131
+ ticket_id: N848
132
+ status: done
133
+ summary: The theorem-style candidate now lives in both the paper bundle and a dossier-level public review artifact, with a short share-ready summary.
134
+ next_move: Decide whether to commit and open review on the surfaced package.
135
+ - atom_id: N848.G1.A14
136
+ title: Prepare the surfaced candidate package for commit and review
137
+ route_id: finite_check_gap_closure
138
+ ticket_id: N848
139
+ status: done
140
+ summary: The paper bundle now has drafted review-facing sections, the surfaced package has no remaining placeholder text, and the safety checks are green.
141
+ next_move: Turn the prepared package into a clean review unit.
142
+ - atom_id: N848.G1.A15
143
+ title: Commit or open review on the surfaced candidate package
144
+ route_id: finite_check_gap_closure
145
+ ticket_id: N848
146
+ status: done
147
+ summary: The review-ready 848 package is now committed and pushed on `main`, so this is no longer the live frontier.
148
+ next_move: Record the imported threshold timeline and restate the optimization target clearly.
149
+ - atom_id: N848.G1.A16
150
+ title: Record the imported threshold timeline and clarify the closure objective
151
+ route_id: finite_check_gap_closure
152
+ ticket_id: N848
153
+ status: done
154
+ summary: The dossier now distinguishes imported public thresholds from the repo's own audited candidate and states clearly that the real objective is finite-gap closure.
155
+ next_move: Choose the next closure lane under the best imported threshold currently tracked.
156
+ - atom_id: N848.G1.A17
157
+ title: Choose the next closure lane under the best imported threshold
158
+ route_id: finite_check_gap_closure
159
+ ticket_id: N848
160
+ status: done
161
+ summary: The repo has chosen bounded finite verification as the next closure lane under the best imported threshold currently tracked.
162
+ next_move: Freeze the bounded finite-verification program and the certificate spec.
163
+ - atom_id: N848.G1.A18
164
+ title: Freeze the bounded finite-verification program and certificate surface
165
+ route_id: finite_check_gap_closure
166
+ ticket_id: N848
167
+ status: ready
168
+ summary: The next closure cycle should start by partitioning the finite remainder into regimes and defining what evidence is strong enough for a bounded interval claim to count.
169
+ next_move: Promote the bounded verification plan, regimes, certificate spec, and external ledger into the live handoff surface.
@@ -0,0 +1,101 @@
1
+ # Problem 848 Proof-Obligation Ledger
2
+
3
+ This note closes `N848.G1.A10`.
4
+
5
+ Purpose:
6
+ - separate the remaining obligations behind the current proposition-level repo candidate into
7
+ two buckets:
8
+ - obligations that could still change the mathematics
9
+ - obligations that are primarily presentation or publication quality
10
+
11
+ ## Current repo candidate
12
+
13
+ The current candidate, from `PROPOSITION_EXPLICIT_CANDIDATE.md`, is:
14
+ - `N >= exp(1420)`
15
+ - `eta = 10^-4`
16
+ - shared truncation witness `T = 250`
17
+
18
+ with the conclusion that near-extremal sets are forced into the `7 mod 25` or `18 mod 25`
19
+ classes.
20
+
21
+ ## Obligations that still affect the mathematics
22
+
23
+ ### 1. Certified replacement for displayed decimal approximations
24
+
25
+ Why it matters:
26
+ - several branch ledgers currently use displayed decimals such as `0.0376113079`,
27
+ `0.0005641453`, and `0.0014095427`
28
+ - if one of those visible decimals is not backed by a certified upper interval, the current
29
+ witness could in principle be overstated
30
+
31
+ What would discharge it:
32
+ - a machine-checked interval or conservative rational upper bound for every decimal input used
33
+ in the proposition-level candidate
34
+
35
+ ### 2. Explicit domination of the discrete inclusion-exclusion terms
36
+
37
+ Why it matters:
38
+ - the discrete terms are obviously tiny at `N >= exp(1420)`, but the current notes still treat
39
+ them informally as “astronomically small”
40
+
41
+ What would discharge it:
42
+ - one explicit numerical line showing each discrete term is below a fixed reserve such as
43
+ `10^-10`, or far smaller, at `N = exp(1420)` and hence for all larger `N`
44
+
45
+ ### 3. One-sheet theorem-style assembly
46
+
47
+ Why it matters:
48
+ - the current candidate is spread across several notes
49
+ - a theorem claim should have one place where every branch bound is assembled in the same
50
+ notation and every input is visibly consumed exactly once
51
+
52
+ What would discharge it:
53
+ - a single proposition-proof ledger using the current witness and citing the supporting notes
54
+ only as lemma justifications, not as extra floating context
55
+
56
+ ## Obligations that are mainly presentation-quality
57
+
58
+ ### 4. Citation polish
59
+
60
+ Examples:
61
+ - pin the exact Dusart theorem/section in a cleaner bibliographic form
62
+ - standardize references to Sawhney's note and the forum discussion
63
+
64
+ These matter for publication quality, but do not presently look like mathematical blockers.
65
+
66
+ ### 5. Reader-facing proof narration
67
+
68
+ Examples:
69
+ - convert the current route notes into a smoother proof narrative
70
+ - reduce repeated explanations of why the repo is still claim-safe
71
+
72
+ This matters for public readability, not for whether the witness currently works.
73
+
74
+ ### 6. Paper-writer integration
75
+
76
+ Examples:
77
+ - seed the explicit candidate into the paper bundle
78
+ - turn the proposition candidate into a draft section with theorem/proof/corollary structure
79
+
80
+ Again, useful, but downstream from the mathematical hardening steps above.
81
+
82
+ ## Honest prioritization
83
+
84
+ The next mathematically meaningful hardening step is:
85
+ - replace the displayed decimal inputs with certified intervals or conservative rational bounds
86
+
87
+ That is the step most likely to change whether the current repo candidate survives intact.
88
+
89
+ By contrast, the remaining citation and exposition work is important but does not currently
90
+ look like the true blocker.
91
+
92
+ ## Route consequence
93
+
94
+ The route no longer needs:
95
+ - another branch hunt
96
+ - another witness search
97
+ - or another truncation scan
98
+
99
+ It now needs:
100
+ - one hardening pass on the numerical inputs
101
+ - then a theorem-style explicit candidate writeup
@@ -0,0 +1,69 @@
1
+ # Problem 848 Proposition-Level Explicit Candidate
2
+
3
+ This note closes `N848.G1.A9`.
4
+
5
+ Public context:
6
+ - this note records the repo's audited explicit candidate package
7
+ - it does not claim to be the best imported public threshold currently visible on the
8
+ Problem 848 forum thread
9
+
10
+ ## Candidate repo statement
11
+
12
+ The current repo evidence supports the following **candidate**:
13
+
14
+ For every
15
+ - `N >= exp(1420)`
16
+
17
+ if
18
+ - `A subseteq [N]`
19
+ - `ab + 1` is never squarefree for all `a, b in A`
20
+ - `|A| >= (1/25 - 10^-4) * N`
21
+
22
+ then
23
+ - `A` is contained in either the `7 mod 25` class or the `18 mod 25` class.
24
+
25
+ This is the repo's current explicit stability candidate for Sawhney's Proposition 1.1.
26
+
27
+ ## Why the repo can now say this
28
+
29
+ The supporting chain is now explicit inside the repo:
30
+ - `WEAKEST_CASE_BUDGET.md` freezes the weakest public branch main term.
31
+ - `LEMMA21_EXPLICIT_BOUND.md` and `LEMMA21_TRUNCATION_SCAN.md` make Lemma 2.1 explicit and
32
+ justify the larger truncation witness `T = 250`.
33
+ - `LEMMA22_EXPLICIT_BOUND.md` and `LEMMA22_PRIME_COUNT_BOUND.md` make Lemma 2.2 explicit at
34
+ the same witness scale.
35
+ - `WEAKEST_BRANCH_T250_ASSEMBLY.md` freezes the weakest-branch line-by-line witness with
36
+ working `eta = 10^-4`.
37
+ - `BRANCH_COMPARISON_LEDGER.md` shows that the same witness also controls the public branches
38
+ rounded as `0.0358`, `0.0336`, and `0.0294`.
39
+
40
+ So at the repo's current explicit level, the public proof skeleton now has one shared witness
41
+ instead of a collection of separate unresolved branches.
42
+
43
+ ## What the repo is **not** claiming yet
44
+
45
+ This note does **not** yet promote the candidate into canonical solved truth.
46
+
47
+ The repo is still **not** claiming:
48
+ - that a publication-ready explicit proof has been written line by line with every rounding
49
+ and floor/ceiling detail frozen at journal quality
50
+ - that `exp(1420)` is the optimal threshold
51
+ - that the finite range below `exp(1420)` has been closed here
52
+ - that the public theorem page should already be updated from `decidable` to `solved`
53
+
54
+ So the right reading is:
55
+ - explicit repo candidate: yes
56
+ - finished publication proof artifact: not yet
57
+ - full all-`N` closure inside this repo: not yet
58
+
59
+ ## Honest next move
60
+
61
+ The next route task is not another branch estimate.
62
+
63
+ It is:
64
+ - write the proof-obligation ledger separating this repo candidate from a publishable explicit
65
+ theorem writeup
66
+ - list exactly which remaining details are purely expository/bookkeeping and which would still
67
+ change the mathematics if they failed
68
+
69
+ That is the remaining gap between the current research workspace and a public-truth update.
@@ -0,0 +1,8 @@
1
+ # Problem 848 Report Template
2
+
3
+ - Route:
4
+ - What changed:
5
+ - Which part of the finite-check gap moved:
6
+ - Which source line or artifact supports that movement:
7
+ - Verification hook:
8
+ - Next route action:
@@ -0,0 +1,24 @@
1
+ # Problem 848 Route History
2
+
3
+ - Initial repo posture: canonical dossier seeded from imported atlas data plus public site review.
4
+ - First refinement: recast the problem from generic open seed into a decidable finite-check workspace.
5
+ - Second refinement: freeze the first threshold ledger separating existential, weakly explicit, and tentative public threshold claims.
6
+ - Third refinement: isolate the `0.0377` branch as the weakest public case and freeze a source-backed branch-budget note for it.
7
+ - Fourth refinement: freeze the weakest-branch main term numerically at about `0.0376113`, with conservative slack about `0.0023887` before analytic error absorption.
8
+ - Fifth refinement: make Lemma 2.1 one-sided explicit and identify the large-prime tail, not the small-prime inclusion-exclusion remainder, as the live analytic bottleneck.
9
+ - Sixth refinement: show that the one-sided route no longer needs `T = floor(sqrt(log N))`, and that raising `T` materially improves the live bottleneck while leaving the discrete term negligible.
10
+ - Seventh refinement: make Lemma 2.2 explicit at the same one-sided level and freeze a provisional `T = 250` weakest-branch tail budget, with the remaining unfrozen blocker concentrated in the Lemma 2.2 prime-count term and final `eta` bookkeeping.
11
+ - Eighth refinement: freeze the Lemma 2.2 prime-count term with an explicit Dusart bound, leaving about `3.66e-4` witness margin at `N >= exp(1420)` for `eta` and final bookkeeping.
12
+ - Ninth refinement: freeze a weakest-branch working witness at `T = 250`, `N >= exp(1420)`, `eta = 10^-4`, leaving about `2.66e-4` visible reserve in that branch.
13
+ - Tenth refinement: compare the same witness against the public branches `0.0358`, `0.0336`, and `0.0294`, and find that all three retain strictly larger visible reserve than the weakest branch.
14
+ - Eleventh refinement: package the shared witness as a proposition-level repo candidate `N >= exp(1420)`, `eta = 10^-4`, while keeping the distinction between repo candidate and finished theorem writeup explicit.
15
+ - Twelfth refinement: separate the remaining proof obligations into mathematical hardening work versus presentation-quality work, and identify certified numerical intervals as the next real blocker.
16
+ - Thirteenth refinement: replace the visible decimal inputs with conservative machine intervals, leaving a certified visible reserve of about `2.66e-4` after the working `eta = 10^-4`.
17
+ - Fourteenth refinement: assemble the hardened witness into a single theorem-style note suitable for paper-writer mode and future public review.
18
+ - Fifteenth refinement: surface the current candidate in both the paper bundle and a dossier-level public review note, with a short share-ready summary.
19
+ - Sixteenth refinement: draft the remaining paper-bundle sections, refresh the indexes, clear the last placeholder text, and verify the package with tests and a publish-surface check.
20
+ - Seventeenth refinement: commit and push the review-ready 848 package so the audited candidate is now a public repo artifact rather than only a local workspace bundle.
21
+ - Eighteenth refinement: record the imported public-threshold timeline through 2026-03-23 and state explicitly that the optimization target is finite-gap closure, not threshold-lowering in isolation.
22
+ - Nineteenth refinement: choose bounded finite verification as the next closure lane and freeze the first repo artifacts for regimes, certificates, and external verification audit.
23
+ - Current public pack posture: active route `finite_check_gap_closure`, with asymptotic theorem already in hand, a committed audited candidate package in the repo, and the remaining gap centered on building a trusted bounded-verification program under the best imported threshold currently tracked.
24
+ - Next maturity threshold: turn the verification plan into the first concrete covered-interval program.