paper updated with the placement results and machine-checked: new section 'Where the similarity is read' (2527 on APS below every method measured, 5511 over both sets, the non-composition of the two readings, and the two negatives with their numbers), abstract extended, verify_article.py now also checks every new number against its own sweep file — all green, pdflatex clean
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ end of a stated trade (better average, one constant), so both are checked.
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from report_sweep import PROPOSED, head_to_head, place, rank
|
||||
@@ -199,6 +200,8 @@ def main():
|
||||
("start", 14540)]:
|
||||
check(f"scale {sc} best", best_by_scale[sc], v)
|
||||
|
||||
verify_placement_modes()
|
||||
|
||||
print()
|
||||
if FAILS:
|
||||
print(f"{len(FAILS)} STATED NUMBERS DO NOT MATCH THE DATA:")
|
||||
@@ -208,5 +211,57 @@ def main():
|
||||
print("every number stated in the paper matches the sweep data.")
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Section "where the similarity is read" (PREREGs of 2026-09-20/21). Each new
|
||||
# grid lives in its OWN sweep file so the published sweep_full.json stays the
|
||||
# artefact of the original claims; every number the new section quotes is
|
||||
# re-checked here against that file.
|
||||
# --------------------------------------------------------------------------
|
||||
PLACEMENT = {
|
||||
# file label APS CHA
|
||||
"sweep_slope.json": ("slope.ratio.derived3.project", 2848, 3074),
|
||||
"sweep_points.json": ("pure+shape+slope.ratio.derived3.safe", 2527, 3108),
|
||||
"sweep_direction.json": ("pure+dissim+slope.ratio.derived3.project", 2726, 2785),
|
||||
"sweep_combo.json": ("pure+shape+dissim+slope.ratio.derived3.safe", 2884, 2859),
|
||||
"sweep_gate.json": ("gate.ratio.derived.project", 4449, 2991),
|
||||
"sweep_log.json": ("log.ratio_soft.derived.safe", 6940, 3474),
|
||||
}
|
||||
PLACEMENT_PER_SET = {
|
||||
"sweep_direction.json": ("CHA", "pure+dissim+slope.ratio.derived3.safe", 2683),
|
||||
"sweep_gate.json": ("CHA", "gate.ratio_soft.derived.safe", 2851),
|
||||
}
|
||||
|
||||
|
||||
def verify_placement_modes():
|
||||
print("\nThe placement modes (each in its own sweep file):")
|
||||
for path, (lbl, aps, cha) in PLACEMENT.items():
|
||||
if not os.path.exists(path):
|
||||
print(f" !! {path} absent — the section quoting it cannot be verified")
|
||||
FAILS.append(f"missing {path}")
|
||||
continue
|
||||
with open(path, encoding="utf8") as fh:
|
||||
rows = json.load(fh)
|
||||
try:
|
||||
d = next(r for r in rows if r["label"] == lbl)
|
||||
except StopIteration:
|
||||
print(f" !! {lbl} not in {path} — stale sweep")
|
||||
FAILS.append(f"{lbl} missing from {path}")
|
||||
continue
|
||||
check(f"{lbl} APS", d["APS"]["total"], aps)
|
||||
check(f"{lbl} CHA", d["CHA"]["total"], cha)
|
||||
check(f"{lbl} solved", d["APS"]["solved"] + d["CHA"]["solved"], 193)
|
||||
check(f"{lbl} guarantee (over 2x)", d["APS"]["over"] + d["CHA"]["over"], 0)
|
||||
for path, (setname, lbl, want) in PLACEMENT_PER_SET.items():
|
||||
if not os.path.exists(path):
|
||||
continue
|
||||
with open(path, encoding="utf8") as fh:
|
||||
rows = json.load(fh)
|
||||
d = next((r for r in rows if r["label"] == lbl), None)
|
||||
if d is None:
|
||||
FAILS.append(f"{lbl} missing from {path}")
|
||||
continue
|
||||
check(f"{lbl} {setname} per-set", d[setname]["total"], want)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user