erdos-problems 0.3.2 → 0.3.4

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 (34) hide show
  1. package/package.json +1 -1
  2. package/packs/number-theory/problems/848/BOUNDED_VERIFICATION_PLAN.md +46 -0
  3. package/packs/number-theory/problems/848/BRANCH_COMPARISON_LEDGER.md +85 -0
  4. package/packs/number-theory/problems/848/CERTIFIED_NUMERICAL_LEDGER.md +88 -0
  5. package/packs/number-theory/problems/848/EXACT_SMALL_N_1_2000_CERTIFICATE.md +55 -0
  6. package/packs/number-theory/problems/848/EXACT_SMALL_N_1_2000_RESULTS.json +102531 -0
  7. package/packs/number-theory/problems/848/EXTERNAL_VERIFICATION_LEDGER.md +56 -0
  8. package/packs/number-theory/problems/848/EXTRACTION_CHECKLIST.md +31 -4
  9. package/packs/number-theory/problems/848/FRONTIER_NOTE.md +39 -8
  10. package/packs/number-theory/problems/848/INTERVAL_WORK_QUEUE.yaml +43 -0
  11. package/packs/number-theory/problems/848/LEMMA21_EXPLICIT_BOUND.md +200 -0
  12. package/packs/number-theory/problems/848/LEMMA21_TRUNCATION_SCAN.md +111 -0
  13. package/packs/number-theory/problems/848/LEMMA22_EXPLICIT_BOUND.md +133 -0
  14. package/packs/number-theory/problems/848/LEMMA22_PRIME_COUNT_BOUND.md +58 -0
  15. package/packs/number-theory/problems/848/OPERATIONAL_THRESHOLD_POSTURE.md +38 -0
  16. package/packs/number-theory/problems/848/OPS_DETAILS.yaml +140 -9
  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/ROUTE_HISTORY.md +19 -2
  20. package/packs/number-theory/problems/848/ROUTE_PACKET.yaml +7 -4
  21. package/packs/number-theory/problems/848/THEOREM_STYLE_EXPLICIT_NOTE.md +91 -0
  22. package/packs/number-theory/problems/848/VERIFICATION_CERTIFICATE_SPEC.md +60 -0
  23. package/packs/number-theory/problems/848/VERIFICATION_REGIMES.md +89 -0
  24. package/packs/number-theory/problems/848/WEAKEST_BRANCH_T250_ASSEMBLY.md +109 -0
  25. package/packs/number-theory/problems/848/WEAKEST_BRANCH_T250_BUDGET.md +107 -0
  26. package/packs/number-theory/problems/848/compute/problem848_small_n_exact_scan.mjs +170 -0
  27. package/packs/number-theory/problems/848/context.yaml +22 -15
  28. package/problems/848/CHECKPOINT_NOTES.md +4 -0
  29. package/problems/848/EVIDENCE.md +78 -4
  30. package/problems/848/EXPLICIT_CANDIDATE_REVIEW.md +57 -0
  31. package/problems/848/REFERENCES.md +4 -0
  32. package/problems/848/ROUTES.md +30 -8
  33. package/problems/848/SHARE_READY_SUMMARY.md +37 -0
  34. package/problems/848/STATEMENT.md +9 -0
@@ -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
@@ -39,6 +39,12 @@ Need:
39
39
  Route question:
40
40
  - can these be made comfortably smaller than the smallest slack without overcomplicating the rest of the proof?
41
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
+
42
48
  ### B. Lemma 2.2 progression error
43
49
 
44
50
  Need:
@@ -67,13 +73,18 @@ Current belief:
67
73
 
68
74
  1. Freeze the exact or conservatively certified main-term slack for the `0.0377` branch.
69
75
  2. Extract every hidden constant and error input from Lemma 2.1.
70
- 3. Extract every hidden constant and error input from Lemma 2.2.
71
- 4. Decide whether the proof can realistically beat the usable branch slack with explicit estimates.
72
- 5. Only then decide whether to keep pushing analytic extraction or pivot harder into bounded finite computation.
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.
73
80
 
74
81
  Current repo posture:
75
82
  - Step 1 is now complete at a conservative numerical level.
76
- - The next unresolved work is Step 2: make the Lemma 2.1 remainder terms explicit against the branch budget.
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.
77
88
 
78
89
  ## What would count as progress
79
90
 
@@ -81,6 +92,22 @@ Current repo posture:
81
92
  - an exact or conservative usable-slack budget for the weakest branch
82
93
  - an explicit declaration of which branch sets the threshold
83
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
84
111
  - a justified statement like:
85
112
  - “the current proof architecture plausibly yields an explicit threshold”
86
113
  - or
@@ -1,19 +1,50 @@
1
1
  # Problem 848 Frontier Note
2
2
 
3
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.
4
5
 
5
6
  The live route is `finite_check_gap_closure`:
6
7
  - keep Sawhney's sufficiently-large-`N` theorem exact
7
8
  - do not widen `decidable` into `solved`
8
9
  - treat explicit-threshold extraction and finite verification as separate but coupled lanes
9
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
+
10
19
  The smallest honest next move is not “solve 848”.
11
20
  It is:
12
- - use the frozen threshold ledger and weakest-case budget sheet to isolate the real usable slack
13
- - spend that slack on the first explicit inequality, namely Lemma 2.1
14
- - only then decide how much of the remainder is computational versus analytic
15
-
16
- Read first:
17
- - `THRESHOLD_LEDGER.md`
18
- - `EXTRACTION_CHECKLIST.md`
19
- - `WEAKEST_CASE_BUDGET.md`
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`
49
+ - `INTERVAL_WORK_QUEUE.yaml`
50
+ - `EXACT_SMALL_N_1_2000_CERTIFICATE.md`
@@ -0,0 +1,43 @@
1
+ packet_id: nt848_interval_work_queue_v1
2
+ operational_threshold:
3
+ value: "2.64 x 10^17"
4
+ source: forum_thread_2026_03_23
5
+ trust_status: external_public_claim
6
+ usage: sizing_only
7
+ intervals:
8
+ - interval_id: N848.V1
9
+ label: exact_small_n_base_interval
10
+ range: "1..2000"
11
+ status: done
12
+ method_class: exact_small_n
13
+ claim_level: verified
14
+ certificate: EXACT_SMALL_N_1_2000_CERTIFICATE.md
15
+ data_packet: EXACT_SMALL_N_1_2000_RESULTS.json
16
+ next_move: Use this as the first trusted base interval and decide whether the next extension is another exact interval or an imported-computation audit.
17
+ - interval_id: N848.V2
18
+ label: exact_small_n_extension
19
+ range: "2001..?"
20
+ status: ready
21
+ method_class: exact_small_n
22
+ claim_level: target
23
+ certificate: ""
24
+ data_packet: ""
25
+ next_move: Decide how far the exact clique scan can be pushed before a different method class is needed.
26
+ - interval_id: N848.V3
27
+ label: imported_computation_audit
28
+ range: "public_claimed_interval"
29
+ status: support
30
+ method_class: imported_external_computation
31
+ claim_level: external_only
32
+ certificate: EXTERNAL_VERIFICATION_LEDGER.md
33
+ data_packet: ""
34
+ next_move: Audit public computational claims without silently promoting them to canonical coverage.
35
+ - interval_id: N848.VA
36
+ label: asymptotic_handoff
37
+ range: "[2.64 x 10^17, inf)"
38
+ status: support
39
+ method_class: asymptotic_handoff
40
+ claim_level: external_only
41
+ certificate: OPERATIONAL_THRESHOLD_POSTURE.md
42
+ data_packet: ""
43
+ next_move: Keep the imported handoff threshold visible and separate from repo-audited theorem language.
@@ -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.
@@ -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?