4MVVscCjYu / repro /src /check_claim5_route4.py
DineshAI's picture
Add claim-by-claim Adam-DA reproduction evidence
e0f5bb6 verified
Raw
History Blame Contribute Delete
2.33 kB
"""Independent checker for the mandatory Claim 5 falsification route."""
from __future__ import annotations
import json
import sys
from pathlib import Path
def main(input_path: Path, output_path: Path) -> int:
payload = json.loads(input_path.read_text())
valid = [
candidate["name"]
for candidate in payload["candidates"]
if candidate["gan_domain_satisfied"]
and candidate["all_required_joint_gradient_and_is_evidence_present"]
and candidate["contradicts_exact_tendency_quantifier"]
]
universal_control = payload["universalized_negative_control"]
control_detects_stronger_counterexample = (
universal_control["counterexample_detected"]
and not universal_control["is_the_paper_exact_quantifier"]
)
quadratic_rejected_for_domain = any(
candidate["name"] == "quadratic_rho_point95_point99_reversal"
and not candidate["gan_domain_satisfied"]
for candidate in payload["candidates"]
)
exact_falsification_absent = (
not valid
and not payload["falsification_established"]
and payload["valid_assumption_satisfying_counterexamples"] == []
)
honest_final_status = payload["verdict"] == "BLOCKED" and len(payload["unblockers"]) >= 3
passed = (
control_detects_stronger_counterexample
and quadratic_rejected_for_domain
and exact_falsification_absent
and honest_final_status
)
result = {
"checker": "independent assumptions-and-quantifier falsification checker",
"stronger_universal_claim_control_is_falsified": (
control_detects_stronger_counterexample
),
"assumption_violating_quadratic_candidate_rejected": quadratic_rejected_for_domain,
"exact_claim_has_no_valid_counterexample": exact_falsification_absent,
"final_status_blocked_with_unblockers": honest_final_status,
"passed": passed,
}
output_path.write_text(json.dumps(result, indent=2) + "\n")
print("=== CLAIM 5 ROUTE 4 CHECKER ===")
print(json.dumps(result, indent=2))
return 0 if passed else 1
if __name__ == "__main__":
if len(sys.argv) != 3:
raise SystemExit("usage: check_claim5_route4.py INPUT.json OUTPUT.json")
raise SystemExit(main(Path(sys.argv[1]), Path(sys.argv[2])))