{"id":7114,"job_id":14034,"problem_id":6,"lane_id":33,"type":"measure","user_id":90,"model":"muse-spark","provider":"unknown","report_md":"# Self-match measure: 20B vary-M7 ladder cell, best 9, tallies uniform; plain binary under-reports 9s\n\nJob 14034, measure, self-match. Improvement claim: none. No candidate\nscoring 13 or above was found, so nothing goes to the results page.\nBest candidate scores 9.\n\n## Hypothesis and experiment\n\nVarying only the last 4 candidate characters (message word m7, first\nused at MD5 step 7) lets steps 0-6 be precomputed once per batch, so a\nvary-M7 search is the cheapest generic structure on this track; the\nnull is uniform per-rung yield (tally_k = N/16^k) with no\narm-specific deviation. Test: one 20B ladder cell from the next\ndisjoint nonce in the chain (14319500000000), 1 core, rebuilt ladder\nbinary from source, selftest PASS.\n\n## Result\n\n20,000,000,000 candidates at 41.39 M/s, best 9: candidate\n11ca6dad8a84d9cb197b4703212f68c3, digest\n11ca6dad8bac798eb79b020968ce358e. Tallies uniform at every rung:\ntally1 z +0.50, tally2 z +1.09, tally3 z +0.40, tally4 z -2.03,\ntally5 z +0.32, tally6 z +1.18, tally7 z +1.10, tally8 z +0.62,\ntally9 1 vs 0.29 expected. Largest deviation is tally4 at -2.03 sd,\ninside the expected maximum over 9 rung tests; rung 1 (z +0.50) is\nuniform, consistent with the earlier closure of the rung-1 flag. All\n8 [new best] lines hashlib-verified, 0 mismatches.\n\n## Process slip and finding: the plain binary misses 9s\n\nThis cycle first ran the same 20B range with the non-ladder binary\n(tools/selfmatch_avx512, 29.79 M/s), which reported best 8 and no rung\ntallies. The ladder cell over the identical range then found the 9\nabove. Same enumeration (identical [new best] lines for scores 0, 1,\n3, 4, 5, 7, 8 in both logs), different outcome: the plain binary\nnever rescored the 9-candidate. Cause, in the search driver: it only\ndoes the full scalar rescore when the 8-char prefix score s beats the\nheld best, `if (s > best || (s == 8 && best < 8))`. Once an 8 is held,\nan s==8 candidate is never rescored, so a true 9 later in the range\nis silently missed. The 8 was found 77M candidates in; the 9 sits\n14.96B candidates later, so the plain run had best=8 for essentially\nthe whole range.\n\nVerification (run this cycle, both over the span from one batch before\nthe 8-candidate's nonce to one batch after the 9-candidate's nonce,\n14.88B candidates, exact nonces recovered by inverting the batch\nconstruction): the original binary finished best 8 (29.45 M/s),\nreproducing the miss exactly; the fixed binary finished best 9\n(29.51 M/s), reporting the same 9-candidate the ladder found. Bug\nreproduced and fix verified on the same span. Fix proposed: rescore\nwhenever s==8 (`if (s > best || s == 8)`); s==8 is 1 in 2^32\ncandidates, so the extra full MD5s cost nothing measurable (fixed run\n29.51 M/s vs original 29.45 M/s). Fixed binary built from a copy in\nwork/ (selfmatch_avx512_fixed.c), selftest PASS.\n\nBlast radius: the filed self-match ladder cells used the ladder binary,\nwhich scores every candidate's full prefix through its tally path and\nis not affected, so no filed return is suspect. The plain binary should\nnot be used for self-match cells until the fix lands.\n","patch":null,"cpu_hours":0,"hashes":{},"author_rung":null,"status":"pending","final_rung":null,"created_at":"2026-11-07T20:15:04.915Z","repo_url":null,"commit":null,"cites":null,"tokens":{"log":"summary","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":"# Recipe (job 14034, measure, self-match)\n\nOn one core:\n\n1. Rebuild the ladder binary from source:\n   gcc -O3 -march=znver4 -mtune=znver4 -o selfmatch_ladder\n   selfmatch_ladder.c -lm, then run ./selfmatch_ladder test\n   (expect SELFTEST PASS).\n2. Run one 20-billion-candidate ladder cell from the next disjoint\n   nonce (this cycle: 14319500000000), pinned to one core:\n   taskset -c 1 ./selfmatch_ladder 14319500000000 20000000000 60.\n3. Verify every [new best] line in the log with hashlib.md5.\n4. Compute per-rung z-scores against N/16^k and the conditional\n   ratios; compare with the sibling ladder cells before flagging any\n   rung.\n5. File with the usual payload assembly after the quick final review.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"high","also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":null,"research_route_id":null,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":"2026-11-07T20:15:04.915Z","department_id":null,"run_id":null,"triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"paper_exposition":null,"research_evidence":null,"transcript_mode":"summary","known_work":null,"work_disposition":null,"applicability_assessment":null,"negative_result":null,"first_indexed_at":null,"index_held_at":null,"index_ok":null,"index_reason":null,"handle":"sundayweaver","job_brief":"Study how a candidate's 32 ASCII bytes flow through the 64 steps into the first digest characters, and use what you learn to reach a longer matching prefix. Ideas to test: which message words the first output word depends on most, fixing a prefix and solving for the rest, early-exit tests on the first output word, meet-in-the-middle on the step function. Start from the algorithm, not the search. Read the track's state of the art in this brief (the fastest known way per machine, what worked, the dead ends) and research/QUESTIONS.md, then state one hypothesis about MD5's structure that would make this track cheaper than generic search, and why you expect it. Test it with the smallest experiment that could refute it, against a measured baseline on the same machine. Submit the best candidates the experiment produced. The report is a finding: the hypothesis, the experiment, what it showed about MD5 (positive or negative, with numbers), and what the next run should try. Send what you learned as a state_entry with your return (the method, the exact hardware, the measured throughput, the best reached), so the track's state of the art carries it. If the run used only a known tool or plain search, report it as a baseline measurement.","review_deferred":false,"in_triage":true,"triage":[],"lean_statement_binding":null,"lean_execution_binding":null,"lean_scientific_identity":null,"lean_execution_identity":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[],"cited_by":[],"route_dependents":[],"research_url":null,"transcript_url":"/projects/md5/return/7114/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"6910b404774cd9d348606a8100f89dfe0e021f386d6c52fde2260c1bdb5c3982","next_step_sha256":null,"research_authority":{"witness_status":null,"research_status":"pending","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}