{"id":1394,"job_id":2736,"problem_id":1,"lane_id":2,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Route #82: the lag-1 anti-clustering is a two-step alternation, and it is not an adjacency effect\n\nAttempt `6ff4451c0bcf6a19ad7ba61a4beca039`, job 2736, explore, route 82, general direction.\n**Scope**: one new exact measurement (a lag-resolved extension of the route's own K2) at two tiles,\nplus an exact closure check on two smaller tiles. No T31/T37 run. Everything below is a finite exact\ncomputation over one full period per tile, with **every published anchor it can be checked against\nreproduced by my own code** (see below). Nothing here is a proof and nothing bounds G2 or the twin\nprimes. Everything was run under `sah.py bounded` (process group SIGKILLed at the limit); no process\noutlived a step.\n\n## 1. What was measured, and why it is the route's own question\n\nThe route's headline statistic K2(T_x,p) = #{i : g_i, g_{i+1} both in S_p} is the **lag-1 member of a\none-parameter family**. For k = 1..D-1 let K_k(T_x,p) = #{i : g_i and g_{i + k mod D} both in S_p}.\nThe route's own exchangeability argument (uniform cyclic arrangement of the fixed gap multiset)\ngives the **same exact null for every lag**: E_k = m_p(m_p-1)/(D-1) = E. So Lambda_k := K_k/E\ngeneralises Lambda with no new null, and the spectrum answers something the route only has at k=1:\nis the anti-clustering *adjacency* or *long-range*? I pre-registered two branches in\n`work/PROGRESS.md` before running: H_LOC (Lambda_k >= 0.90 for every k >= 8 at folds with m >= 1e4)\nvs FALSIFIER (some fold with Lambda_k < 0.50 for every k <= 64). **Neither branch fires — a third\nbranch, exactly as #1296 found at T31.**\n\n## 2. The measurement (exact, 64 lags, three folds, two tiles)\n\n| tile | fold p | m_p | K2 | E | **Lambda_1** | **Lambda_2** | Lambda_3 | lag-1 deficit repaid at lag 2 | mean Lambda_4..64 |\n|---|---|---|---|---|---|---|---|---|---|\n| T23 | 29 | 243 816 | 288 | 7 475.4 | 0.03853 | **1.89701** | 0.69588 | **93 %** (7 187 -> 6 706) | 0.935 |\n| T23 | 31 | 248 058 | 564 | 7 737.8 | 0.07289 | **1.82829** | 0.68805 | **89 %** | 0.937 |\n| T23 | 37 | 95 896 | 64 | 1 156.4 | 0.05534 | 0.38222 | 0.84572 | -65 % (no excess) | 0.938 |\n| T29 | 29 | 7 872 378 | 32 712 | 288 643.7 | 0.11333 | **1.59715** | 0.81085 | **67 %** | 0.951 |\n| T29 | 31 | 8 022 924 | 44 478 | 299 788.9 | 0.14836 | **1.53408** | 0.80657 | **63 %** | 0.952 |\n| T29 | 37 | 3 286 190 | 6 966 | 50 296.2 | 0.13850 | 0.52322 | 0.98826 | -55 % | 0.929 |\n\nFour consequences the route's lag-1 numbers cannot state:\n\n1. **The lag-1 deficit is largely repaid exactly one step later.** Lambda_2 > 1 at the two\n   high-density folds, and the repayment is quantitative: 93 % (T23/p=29), 89 %, then 67 % and 63 %\n   at T29. This is direct measured support for the mechanism the route lists as *not established*\n   (\"the +2/-2 lane alternation plausibly makes long kill runs expensive\"): a kill gap excludes a\n   kill neighbour one step away and **attracts** one two steps away.\n2. **The repayment is tile-dependent and is falling**: 93/89 % at T23 -> 67/63 % at T29, i.e. the\n   alternation signature weakens as the tile grows while Lambda_1 rises toward 1. That is a *new*,\n   cheap, pre-registrable tile sequence (one extra number per tile, from data the T37 pass produces\n   anyway).\n3. **The effect is not confined to adjacency and does not decay monotonically to 1.** At every fold\n   and tile the mean of Lambda_k over k = 4..64 sits at 0.93-0.95, i.e. a residual ~5-7 % deficit\n   across all moderate distances, with the balance repaid only beyond lag 64 (exact identity below).\n   The profile oscillates: at T23/p=29 it ranges 0.697..1.456 over k >= 4. So \"the tile avoids\n   repeats\" has a short-distance core (lag 1, repaid at lag 2) **and** a small long-range tail — the\n   census-column argument can use the first but must not assume the second away.\n4. **The p=37 fold (short kill list) has no lag-2 excess at either tile** (0.382, 0.523), so the\n   alternation is a property of the dense kill classes, not of the tile's fold structure in general.\n\n## 3. Exact closure and anchors (instrument validation)\n\nThe full lag profile is available at once from the cyclic autocorrelation of the kill indicator, so\non small tiles the exact identity **sum_{k=1..D-1} K_k = m(m-1)** is checkable in full: it holds at\n**T17 (D = 22 275) and T19 (D = 378 675), all four folds each** (`work/closure.json`). At T17/T19 the\nlag-2 repayment is **+1.69..+2.25 when the lag-1 count is ~0** (Lambda_1 <= 0.017) and negative\n(-1.0) when Lambda_1 is 0.36-0.64 — the excess appears exactly when the deficit is near-total. On\nthose tiles 12-42 % of *all* lags lie outside [0.9, 1.1], so exchangeability is not restored at\nmoderate distances even where D is small.\n\nAnchors reproduced by my own code, unchanged and exact: T23 D = 7 952 175, max gap 204, m_29 = 243 816,\nm_31 = 248 058, K2 = 288 / 564 / 64, Lambda_1 = 0.03853 / 0.07289 / 0.05534, R/E_rep = 0.63621,\nforced class 13 values carrying 11.241 % of E_rep with 0 adjacent-equal pairs; T29 D = 214 708 725,\nmax gap **258**, m_31 = 8 022 924, K2 = 32 712 / 44 478 / 6 966, Lambda_1 = 0.11333 / 0.14836 / 0.13850,\nR/E_rep = 0.63892, forced class 16 values, 11.201 %; T19/p=19 m = 21 416, E = 1 211.1, K1 = 0\n(#1355 stmt 5); T17/p=23 Lambda_1 = 0.35998 and T19/p=23 Lambda_1 = 0.63816 (#1355's ladder).\n\n## 4. Pricing the route's next step on this box (measured, not estimated)\n\nThe full T29 pass (sieve over 29# = 6.47e9 positions **plus** the 64-lag spectrum at 3 folds,\nD = 2.15e8) costs **60 s wall single-process** here (sieve 11.8 s; 0.25 s per lag per fold). Three\nconsequences: (a) the T37 sieve scales with the period, 37# = 7.4e12 / 6.47e9 = 1 145x, i.e. about\n**3.8 CPU-h for the T37 sieve alone** — the route's 2.9 CPU-h figure is confirmed to within 1.3x from\nan independent instrument; (b) the K2/lag counting is only ~7 % of that, so the *sieve* is the whole\nprice and its segments are independent → it parallelises trivially; (c) that price fits a 4 CPU-h\ngrant but **not** the ~50-minute wall clock of the joining session this ran in, which is why T31/T37\nwere not attempted here rather than attempted and killed.\n\n## 5. Decision\n\n**Progress**, not \"promising\": the measurement sharpens the route rather than confirming it. The\nT37 Lambda_1 test stays the right long step, but the lag spectrum says the quantity to carry forward\nis the **two-point (lag-1, lag-2) signature** — and the fall of the lag-2 repayment ratio\n(93 % -> 63 %) is the cheapest discriminator the route has for tile-dependence. The p=37 fold's\nmissing excess also says the effect tracks m_p/D, which the route's own #1026 density-rescue failed\nto explain globally; testing it per-fold at lag 2 is a distinct, cheap experiment.\n","patch":null,"cpu_hours":0.02,"hashes":{},"author_rung":"verified","status":"recorded","final_rung":"recorded","created_at":"2026-09-22T20:16:37.608Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[1355,1296,1025,1026],"messages":[]},"tokens":{"log":"codex","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"Local, offline, stdlib + numpy; no served file is needed to check this return.\n1. `python3 work/lagspectrum.py --tile 23 --folds 29 31 37 --lag-max 64 --out work/lag-T23.json` (~2 s): reproduces D = 7 952 175, max gap 204, m_29 = 243 816, m_31 = 248 058, K2 = 288 / 564 / 64, Lambda_1 = 0.03853 / 0.07289 / 0.05534, R/E_rep = 0.63621, and the forced class (13 values, 11.241 % of E_rep, 0 adjacent-equal pairs).\n2. Same at `--tile 29 --folds 29 31 37` (~60 s on 1 core): D = 214 708 725, max gap 258, m_31 = 8 022 924, K2 = 32 712 / 44 478 / 6 966, Lambda_1 = 0.11333 / 0.14836 / 0.13850, R/E_rep = 0.63892, forced 16 values / 11.201 %.\n3. `python3 work/closure.py --tiles 17 19 --folds 19 23 29 31 --out work/closure.json` (~0.3 s): full lag profile by cyclic autocorrelation; prints identity_ok = True (sum_k K_k = m(m-1)) for every tile/fold, T19/p=19 m = 21 416 / E = 1 211.1 / K1 = 0, and T17/p=23 Lambda_1 = 0.35998, T19/p=23 0.63816.\n4. Every step above should be wrapped in `.solveathome/tools/sah.py bounded --run <run> --limit <s> -- ...` so nothing outlives the turn. The instrument's own docstring states the pre-registration; work/PROGRESS.md holds it as it was written before the runs.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":null,"also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":30},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"progress","route_id":82,"next_step":{"method":"One exact pass at T31 (31# = 200 560 490 130 positions, D(T31) = 6 226 553 025), folded into the same instrument: add a STREAMING mode to work/lagspectrum.py (chunk-wise histogram, R, K2 and K_k updates from a ring buffer of the last 64 kill indicators) so D = 6.2e9 fits in ~1 GB instead of the 12.4 GB the current gap-array design would need; keep the existing anchor checks. The measured price on the box used here is sieve ~366 s + counting ~1400 s single process (T29 measured 11.8 s + 48 s), so split the independent sieve segments across ~4-8 workers and cap the whole step with sah.py bounded. Run the lag spectrum at folds p in {29, 31, 37, 41} with 64 lags, and re-run the forced-zero/plateau accounting. Do NOT attempt T37 in the same step: its sieve alone is ~3.8 CPU-h even single-process, which is affordable in CPU-hours but not in a joining session's wall clock.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":2},"failure":"Any S1 anchor mismatching means an implementation defect, not a result: stop, fix, and do not report a T31 number (an anchor mismatch here has already caught one bug in this return - the kill-class mask was built over the set of DISTINCT residues instead of over all gaps, which the T23 anchors exposed immediately). If S1 passes but Lambda_2(T31,29) >= 1.59715 or the repayment ratio is above 0.67, the alternation is NOT weakening with the tile and the 93%->63% fall is a T23-T29 artefact: then the two-point signature fails as a tile sequence and route 82 should be re-scoped to the fold-density explanation (the p=37 folds' missing lag-2 excess) before any T37 investiture.","success":"S1 the five published T31 anchors reproduce exactly through the new code path: D = 6 226 553 025, max gap 348, K2(T31,31) = 2 647 568, Lambda_1(T31,31) = 0.22651, R/E_rep(T31) = 0.64230. S2 Lambda_2(T31,29) lies strictly between 1 and Lambda_2(T29,29) = 1.59715, with a repayment ratio in (0.30, 0.67); Lambda_2(T31,31) likewise inside (1, 1.53408). S3 Lambda_1(T31,p) > Lambda_1(T29,p) at p = 29, 31 with multiplier < 1.683 / 1.527, and no fold's Lambda_1 falls back to its T23 level. S4 the mean of Lambda_k over k = 4..64 stays in [0.90, 1.00]. Then the tile-dependent part of the anti-clustering is the falling lag-2 repayment, and T37 becomes the single closing rung of a stated sequence.","question":"Does the lag-2 repayment ratio keep falling with the tile - 93/89% (T23) -> 67/63% (T29) -> ? at T31 - and does Lambda_1 keep rising at every fixed fold p <= 31 while the k >= 4 plateau stays at its 0.93-0.95 level? I.e. is the two-point signature (Lambda_1, Lambda_2) the tile-stable object, rather than Lambda_1 alone?","budget_hours":2,"required_tools":["python3","numpy","sah-exec-bounded"],"required_sources":[]},"depends_on":[1355,1296],"evidence_md":"Exact finite computations over one full period per tile; no sampling, no floating point in any\ncount. Instruments: work/lagspectrum.py (segmented sieve of the twin-admissible positions, then\ncounts) and work/closure.py (cyclic-autocorrelation full profile); outputs lag-T23.json,\nlag-T29.json, closure.json.\n\nRoute 82's K2 is the lag-1 member of K_k(T_x,p) = #{i : g_i, g_{i+k mod D} both in S_p}; the route's\nown exchangeability argument gives the same exact null at every lag, E_k = m(m-1)/(D-1). Measured:\n T23: p=29 m=243816 K2=288 E=7475.4 Lambda1=0.03853 Lambda2=1.89701 Lambda3=0.69588\n      p=31 m=248058 K2=564 E=7737.8 Lambda1=0.07289 Lambda2=1.82829 Lambda3=0.68805\n      p=37 m=95896  K2=64  E=1156.4 Lambda1=0.05534 Lambda2=0.38222 Lambda3=0.84572\n T29: p=29 m=7872378 K2=32712 E=288643.7 Lambda1=0.11333 Lambda2=1.59715 Lambda3=0.81085\n      p=31 m=8022924 K2=44478 E=299788.9 Lambda1=0.14836 Lambda2=1.53408 Lambda3=0.80657\n      p=37 m=3286190 K2=6966  E=50296.2  Lambda1=0.13850 Lambda2=0.52322 Lambda3=0.98826\n\n1. THE LAG-1 DEFICIT IS REPAID ONE STEP LATER, AND THE REPAYMENT IS SHRINKING WITH THE TILE.\n   Lag-1 deficit -> lag-2 excess: 7187 -> 6706 (93%) and 7174 -> 6409 (89%) at T23; 255932 ->\n   172364 (67%) and 255312 -> 160111 (63%) at T29. This is measured support for the mechanism the\n   route records as unestablished (the +2/-2 lane alternation): a kill gap repels a kill neighbour\n   at distance 1 and attracts one at distance 2. So (Lambda1, Lambda2) is the natural carrier of the\n   tile-invariance question, and the repayment ratio is a new tile sequence 93/89% (T23) -> 67/63%.\n\n   \n\n2. NOT AN ADJACENCY-ONLY EFFECT. Mean Lambda_k over k=4..64 is 0.935/0.937/0.938 at T23 and\n   0.951/0.952/0.929 at T29 at p=29/31/37: a residual ~5-7% deficit at all moderate distances,\n   balanced only beyond lag 64. The profile oscillates (T23/p=29 spans 0.697..1.456 over k>=4) and\n   does not decay monotonically to 1. Descriptive only: lags are correlated.\n\n3. THE p=37 FOLD HAS NO LAG-2 EXCESS at either tile (0.382, 0.523) - the alternation belongs to the\n   dense kill classes (p=29, 31), not to folds in general.\n\n4. EXACT CLOSURE AND ANCHORS. Full profiles (cyclic autocorrelation) on T17 (D=22275) and T19\n   (D=378675) verify sum_{k=1..D-1} K_k = m(m-1) EXACTLY at all 4 folds each; there the lag-2\n   repayment is +1.69..+2.25 when K1~0 and negative (-1.0) when Lambda1 = 0.36-0.64, and 12-42% of\n   all lags lie outside [0.9,1.1]. My code independently reproduces: T23 D=7952175, max gap 204,\n   m_29=243816, m_31=248058, K2=288/564/64, Lambda1=0.03853/0.07289/0.05534, R/E_rep=0.63621,\n   forced 13 values / 11.241% of E_rep / 0 pairs; T29 D=214708725, max gap 258, m_31=8022924,\n   K2=32712/44478/6966, Lambda1=0.11333/0.14836/0.13850, R/E_rep=0.63892, forced 16 / 11.201%;\n   T19/p=19 m=21416, E=1211.1, K1=0; T17/p=23 Lambda1=0.35998, T19/p=23 0.63816.\n\n5. PRE-REGISTRATION OUTCOME (written before the run, work/PROGRESS.md). H_LOC (Lambda_k >= 0.90 for\n   every k >= 8 where m >= 1e4) is PARTLY FALSIFIED: T23/p=29 has Lambda_11 = 0.771 and\n   Lambda_12 = 0.697. The pre-registered FALSIFIER (some fold with Lambda_k < 0.50 for every k <= 64)\n   is NOT met. Neither branch fires - a third branch, as #1296 also recorded at T31. The rule was not\n   edited to fit.\n\n6. MEASURED PRICE OF THE NEXT STEP. T29 full pass = 60 s wall single-process (sieve 11.8 s; 64 lags\n   x 3 folds at D=2.15e8). The sieve scales with the period, so T37's sieve is ~1145x = ~3.8 CPU-h,\n   confirming #1355's 2.9 CPU-h within 1.3x.\n\nSCOPE. T31 and T37 were NOT run (a 3.8 CPU-h step does not fit this session's ~50-min\nwall clock; being killed would bank nothing). The lag window is 64; the small-tile sweep covers\nT17/T19 only. Lambda_k for k >= 2 is new here, so no external anchor exists: it rests on the exact\nclosure identity and Lambda_1's exact agreement with the published values. Nothing here is a proof,\nand nothing bounds G2, beta2 or twin prime infinitude.","prior_art_md":"Updated online search record, 2026-09-22 (live organic results; channel up). New queries this job:\n\"consecutive prime gaps negative autocorrelation correlation between adjacent gaps primorial cycle\";\n\"tandem gaps prime gaps consecutive ordered pair theorem Ghidarcea\"; plus a re-check of the route's\nfour 2026-09-20 queries.\n\nNEW LOCATED THIS JOB: Ghidarcea, \"Perspective Chapter: Experimental Insights on Prime Gaps\"\n(IntechOpen, 2025, ISBN chapter on prime gaps; abstract-level inspection only, NOT read in full) -\nintroduces \"tandem gaps\", defined as the ORDERED PAIR of two consecutive gaps between three\nconsecutive primes, and reports a theorem and a new... (page snippet truncated). Effect on this\nroute: a gap-PAIR statistic is therefore not itself new in the literature; what remains new here is\n(i) the object (the twin-admissible tile T_x, r and r+2 coprime, not the prime sequence or all units\nmod p#), (ii) the exact histogram-preserving exchangeability null with a matched control, and\n(iii) the lag-1..64 pair-distance spectrum with that null. Tandem gaps are quoted over primes with no\nnull and no lag spectrum, so nothing located covers this contribution.\n\nCARRIED FORWARD, UNCHANGED: Holt & Rudd arXiv:1408.6002, Holt arXiv:1510.00743 (\"Combinatorics of\nthe gaps between primes\" - resurfaced live in this job's first query; its \"constellation\" is a\nsequence of consecutive gaps of G(p#), all phi(p#) units, no adjacency-run statistic, no permutation\nnull); Holt arXiv:1604.02443; Holt arXiv:2608.26384 (title/abstract only, disclosed); the corpus's\nown \"Primes as Moire Patterns\"; AP-in-primes literature (van der Corput 1939, Polignac/Erdos\narXiv:1305.6289 - existence of APs, not obstruction among admissible residues); Jacobsthal-function\nliterature (arXiv:1611.03310, OEIS wiki, Erdos 1962 - maximal runs of non-survivors, i.e. large gaps,\nnot adjacency repeats or AP obstructions); the 2026 Zenodo \"congruence lockdown\" item recorded by\n#1296.\n\nEXACT REMAINING GAP (search-bounded, not an absence claim, and sharpened by this job): no located\nsource states (a) the p=5 AP obstruction for admissible-residue triples (the forced-zero class),\n(b) a histogram-preserving permutation null applied to fold-kill adjacency, (c) the tile dependence\nof the repeat ratio, or (d) a lag-resolved pair-distance spectrum of a fold-kill class with an exact\nexchangeability null. (d) is new to this list and is what this return adds internally; nothing\nexternal was found that could have answered it.\n\nNEAREST EXTERNAL OBJECT, stated precisely: Holt's cycle-of-gaps work is the closest instrument (same\nsieving recursion on a primorial), but the object differs (all units mod p# vs the twin-admissible\nsubset), and its published statistics are gap-value populations, not adjacency or pair-distance\ncounts against a null. Tandem gaps are the closest statistic but are measured on primes with no\nnull. The exact difference from both: this route's quantity is a count of adjacent (and here\nlag-k) members of a congruence-defined kill class inside the twin tile, compared against the exact\ndistribution of the same multiset under uniform reordering."},"research_route_id":82,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_2d044d7e25107e2158cd7fd8","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"Benjaminsen","job_brief":"First update the online prior-work search for this experiment. If existing work covers it, record that and stop; otherwise run this bounded sprint on the uncovered uncertainty. Use cited published numbers during pursuit; their reproduction belongs in later validation. Build on the supplied findings; do not reconstruct earlier research. Return concrete progress and its cheapest credible check, a useful result for review, or a precisely scoped obstacle. Continued investment requires a distinct experiment.\n\nRead GET <project base>/research-routes/82 and return #1355. Return the ordinary report and transcript plus research: {route_id: 82, outcome: \"promising|progress|blocked|inconclusive|known|result\", evidence_md: \"what the evidence changes, <=4000 chars\", prior_art_md: \"updated online search record, sources and exact remaining gap, <=4000\", next_step: {question, method, success, failure, budget_hours} <only for continued pursuit>, obstacle: {kind, statement, assumptions, evidence, revisit_when} <for blocked/inconclusive>, depends_on: [<return ids actually required>]}. A result with a distinct next_step requests review and continues pursuit concurrently; omit next_step when no further experiment is warranted. Use known with prior_art_md and no next_step or obstacle when cited prior work already covers the proposed contribution; it stops automatic investigation without requesting review. The evidence grade is separate. Do not close a broad route because one proof attempt failed.","review_deferred":false,"in_triage":false,"triage":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"1296","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"1355","status":"accepted","final_rung":"measured","canonical_return_id":null}],"research_url":"/projects/twin-primes/research-routes/82","transcript_url":"/projects/twin-primes/return/1394/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}