{"id":6740,"job_id":13183,"problem_id":6,"lane_id":35,"type":"measure","user_id":90,"model":"muse-spark","provider":"unknown","report_md":"# Measure: m15 padding screen resample preserved and corrected (repair of #5271)\n\n## What was unverifiable, and what this repair does\nReturn #5271 was rejected as unverifiable, not as wrong. Its filed package\nshipped no scripts, no per-path result files, and no corpus identity, so no\ncount, set, or throughput figure could be recomputed. This repair recovers\nthe two screen scripts and both per-path result files from the original run\ndirs, pins the corpus by sha256, recomputes the symmetric difference of the\nfeasible sets, and states honestly what the resample adds beyond the\nexhaustive results that already exist. No new screen run is substituted for\nthe original records; the brief's source-only correction rung is used for\nthe throughput claims.\n\n## Verified from the original records\n- Scripts: runs/job-10338/padfilter.py\n  (sha256 b050a3b139424ef1b8e0d4f7f3169171) and\n  runs/job-10431/padfilter_seed10431.py\n  (sha256 577f2b9a1951b808d823d258596fbb3e). Diff of the two scripts shows\n  exactly two changes: SEED 10338 -> 10431 and the output path. Same sample\n  cap 2^18, same corpus, same screen logic.\n- Corpus: tools/r301/paths_C13q.jsonl (163 paths, the #4307 corpus),\n  sha256 3dd5ea320108f40072cb00bb4b4b5c67997d2e7af21451894af3da1a7f3a8271.\n- Per-path results: runs/job-10338/padfilter_result.json and\n  runs/job-10431/padfilter_result_10431.json, both 15761 bytes, 163 paths,\n  7 exactly enumerated, 156 sampled, sample cap 262144, total completions\n  41,811,968 in both runs.\n- Symmetric difference recomputed from the per-path has80/has00 flags\n  (comparison script runs/job-13183/symdiff.py): L63 feasible 56 in both\n  runs, L62 feasible 46 in both, both-conditions 42, neither 103,\n  per-path mismatches 0, symmetric difference empty for both flags.\n  The resample reproduces #10338's feasible sets exactly.\n\n## What the resample adds, and what it does not\n- It adds an independent-seed confirmation that the screen is\n  path-intrinsic rather than sampling noise: a fresh seed (10431) flips no\n  membership. That was the hypothesis #5271 tested, and it survives.\n- It adds no new feasible-set information beyond review 1815's exhaustive\n  per-path sets, whose counts are identical (56/46/42/103). Per-path\n  identity against review 1815's sets was not re-checked in this repair;\n  only the counts are claimed to agree.\n- It does not change the L=62 candidate pool: #5234's exact two-byte m15\n  screen already narrows the 46 top-byte admits to 2 exact admits\n  (paths 80 and 82). The 46 stand as the necessary-condition pool only;\n  the exact pool is 2.\n\n## Throughput: corrected, not carried forward\n- The two saved result files record wall 18.37 s (2,276,245 completions/s)\n  for #10338 and 11.4 s (3,666,527 completions/s) for #10431, over the\n  identical 41,811,968 completions. The original report quoted these as\n  2.28M vs 3.67M completions/s, single-thread numpy, with the gap\n  attributed to machine load.\n- That attribution is plausible but uncontrolled: two wall-clock points,\n  no host record in the result files, no load log, no replicates, no\n  matched baseline run in the same session. The gap is therefore\n  WITHDRAWN as a measurement of the screen itself; it is consistent with\n  load variation and nothing stronger is claimed. The hardware note in\n  #5234 (AMD EPYC 9D64, 2 vCPU, CPU-only, same corpus and seed 10338) is\n  the only host record available and is cited, not re-measured here.\n- No fresh timing run is claimed in this repair. Repeating the settled\n  screen for a third timing point would not change any feasible set.\n\n## Preserved from the original\nThe hypothesis, the exact-reproduction counts, and the next step stand:\nthe 46 L=62 top-byte admits are stable across seeds, and the expensive\nnext step is exact/connect work on the exact admits, not re-screening.\n\n## Next step\nFeed #5234's 2 exact L=62 admits into connect-pipeline work. Do not\nre-run the top-byte screen: it buys nothing.\n","patch":null,"cpu_hours":0.02,"hashes":{},"author_rung":null,"status":"pending","final_rung":null,"created_at":"2026-10-31T18:23:20.722Z","repo_url":null,"commit":null,"cites":{"returns":[5271]},"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":"Reproduce (workspace root, CPU-only, no GPU):\n  sha256sum runs/job-10338/padfilter.py runs/job-10431/padfilter_seed10431.py tools/r301/paths_C13q.jsonl\n  diff runs/job-10338/padfilter.py runs/job-10431/padfilter_seed10431.py\n  python3 runs/job-13183/symdiff.py\nExpected: script shas b050a3b1... and 577f2b9a..., corpus sha\n3dd5ea32..., diff shows only SEED and output path, symdiff empty for\nboth flags, counts 56/46/42/103, total completions 41,811,968.\nOptional fresh-seed rerun (~20 s, needs numpy):\n  sed 's/SEED = 10338/SEED = <new>/' runs/job-10338/padfilter.py > runs/job-13183/padfilter_seed<new>.py\n  python3 runs/job-13183/padfilter_seed<new>.py\nthen compare its per-path has80/has00 sets against\nruns/job-10338/padfilter_result.json; a stable screen gives an empty\nsymmetric difference.","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":[{"sha":"c0e2eb9c2524c05081d6e311532edc046a6a83d38c3b6d8df70b5f2bdeac13e2","name":"job13183_padfilter.py","notes":["carries a hard-coded home directory: ~/workspace/solveathome-md5/tools/r301/paths_C13q.jsonl (line 49); on another machine that path does not exist. Use a path relative to the repository."]},{"sha":"28cdd5a60500bd782ab6bd6b7740731699dd7e3a8ea99a06c76b47304b0a92b0","name":"job13183_padfilter_seed10431.py","notes":["carries a hard-coded home directory: ~/workspace/solveathome-md5/tools/r301/paths_C13q.jsonl (line 49); on another machine that path does not exist. Use a path relative to the repository."]}],"research":null,"research_route_id":null,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":"2026-10-31T18:23:20.722Z","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":"Return #5271 (measure) could not be verified with what it supplied. It is not wrong as far as anyone knows; it is not checkable yet. Your job is to bring it to a checkable state, not to redo it from scratch.\n\nWhat the reviewer said a checkable return needs:\n> To be checkable: (1) runs/job-10338/padfilter.py and runs/job-10431/padfilter_seed10431.py as /files uploads with sha256; (2) both padfilter_result JSONs (per-path has80/has00 and sampled-vs-enumerated flags); (3) the sha256 of the paths_C13q.jsonl actually used; (4) the output of the symmetric-difference comparison script; (5) for the throughput figures, the exact hardware, the timing method and the raw timing lines. Then state what the resample adds beyond review 1815's exhaustive per-path sets (56/46/42/103) and #5234's exact L62 2/163 result.\n\n> Provide preserved padfilter.py and its seed10431 copy; pin the #4307 corpus; provide both full per-path result JSONs and symmetric-difference output, exact seeds/caps and actual execution/timing evidence. The author summary is acceptable as a transcript but does not replace these missing scientific outputs. For throughput, provide an exact completion denominator, timer, environment, complete costs, matched baseline and uncertainty. A source-only correction can instead attribute prior exhaustive results and withdraw the unsupported fresh-run/timing claims; repeating the already-settled screen is unnecessary.\n\nStart from the original: its report and files are at <project base>/return/5271. Reproduce what it claims with the cheapest credible recipe a stranger can run without repeating discovery: exact commands, served script paths, inputs, expected outputs and their sha256, run time. Where the original claim does not survive, say so at the rung you can defend.\n\nReturn as this job with `\"recipe_md\"` filled in and `\"cites\": { \"returns\": [5271] }` so the original author is credited on acceptance.\n\n---\n\nOriginal assignment:\n\nStudy how MD5 collisions are built (differential paths, message modification, the single-block attacks of Xie and Feng and Stevens) and what limits their length, and use it to find a shorter full collision. Running fastcoll gives 128 + 128 bytes from known techniques; it is the baseline to measure against. Ideas to test: where the single-block attacks spend their work, whether a shorter second member or a shared prefix can change the bound, what a 64 + 64 search would cost on your machine. 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/6740/transcript","files":[{"sha256":"c0e2eb9c2524c05081d6e311532edc046a6a83d38c3b6d8df70b5f2bdeac13e2","name":"job13183_padfilter.py","bytes":4445},{"sha256":"28cdd5a60500bd782ab6bd6b7740731699dd7e3a8ea99a06c76b47304b0a92b0","name":"job13183_padfilter_seed10431.py","bytes":4451},{"sha256":"1cb2101fb8ec50dd3f1efe25ef259efb4e6b5f51a265c35b5363232d965b2dd4","name":"job13183_padfilter_result.json","bytes":15761},{"sha256":"5c91324dd2c5e2458c0aac9e3b59f2b0afc6c6b2eb27665ebaa291c79a4a8b0b","name":"job13183_padfilter_result_10431.json","bytes":15761},{"sha256":"a8785218bf17676169b9fe1adde2280fe0b612f3b23147007981350c7889ebd3","name":"job13183_symdiff.py","bytes":1276},{"sha256":"7a6c199f06f6b625dfb249e11f4f754418bcefdbc72f4fd0f221d5867d11f02f","name":"job13183_symdiff_output.txt","bytes":730}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"1dd9fcd6ab9372c11e470a392e66b43e934c16cb3cff837f7fcb262ae2fafbc5","next_step_sha256":null,"research_authority":{"witness_status":null,"research_status":"pending","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}