ProCreations's picture
Replace proxy audit with direct Algorithm 1 evidence
057c6b4 verified
Raw
History Blame Contribute Delete
4.66 kB
#!/usr/bin/env python3
"""Fail-closed semantic and numerical validator for D5Ijcnz1L9."""
from __future__ import annotations
import csv
import hashlib
import json
import math
from pathlib import Path
ROOT = Path(__file__).resolve().parent
OUT = ROOT / "outputs"
def sha256(path: Path) -> str:
return hashlib.sha256(path.read_bytes()).hexdigest()
def rows(name: str) -> list[dict]:
with (OUT / name).open(newline="", encoding="utf-8") as handle:
return list(csv.DictReader(handle))
def numeric_finite(table: list[dict]) -> None:
for row in table:
for value in row.values():
try:
number = float(value)
except (TypeError, ValueError):
continue
assert math.isfinite(number), value
def main() -> None:
results = json.loads((OUT / "results.json").read_text(encoding="utf-8"))
claims = json.loads((ROOT / "official_claims.json").read_text(encoding="utf-8"))
matrix = json.loads((ROOT / "EVIDENCE_MATRIX.json").read_text(encoding="utf-8"))
checksums = json.loads((OUT / "SHA256SUMS.json").read_text(encoding="utf-8"))
matrix_rows = matrix["claims"]
assert matrix["paper_id"] == results["paper_id"] == "D5Ijcnz1L9"
assert len(claims) == len(matrix_rows) == len(results["registered_claims"]) == 6
assert [item["text"] for item in claims] == results["registered_claims"]
assert [item["literal_claim"] for item in matrix_rows] == results["registered_claims"]
assert matrix["release_quality_gate"]["expected_verified_points"] == 12
assert matrix["release_quality_gate"]["proxy_support_counted"] is False
assert matrix["release_quality_gate"]["formula_only_support_counted"] is False
assert all(item["status"] == "supported" for item in matrix_rows)
assert all(item["evidence_tier"] == "literal_claim_experiment" for item in matrix_rows)
assert all(item["claim_object_match"] == "exact" for item in matrix_rows)
assert all(item["registered_system_executed"] for item in matrix_rows)
assert all(item["paper_or_released_scale"] for item in matrix_rows)
assert all(item["actual_model_or_dataset_used"] for item in matrix_rows)
assert all(item["not_proxy_reason"] and item["destructive_or_boundary_control"] for item in matrix_rows)
assert all(results["gates"].values()) and len(results["gates"]) == 20
expected = {
"linear_safety.csv": 216,
"outlier_radius_sweep.csv": 6,
"transfer_m_scaling.csv": 6,
"transfer_delta_scaling.csv": 10,
"transfer_epsilon_scaling.csv": 6,
"balancedness_examples.csv": 3,
"spectrum_collapse.csv": 6,
"infinite_B_controls.csv": 256,
"population_comparability.csv": 1200,
"intrinsic_fallback.csv": 600,
"glm_grid.csv": 45,
"glm_favorable_transfer.csv": 8,
"objective_structures.csv": 4,
"optimization_diagnostics.csv": 373,
"literal_claim_evidence.csv": 6
}
loaded = {}
for name, count in expected.items():
loaded[name] = rows(name)
assert len(loaded[name]) == count, (name, len(loaded[name]), count)
numeric_finite(loaded[name])
summary = results["summary"]
assert summary["max_linear_safety_ratio"] < 2.0
assert summary["pooling_ratio_at_radius_100000"] > 1e9
assert -1.18 < summary["m_scaling_slope"] < -0.82 and summary["m_scaling_r2"] > 0.99
assert 1.75 < summary["delta_squared_slope"] < 2.25 and summary["delta_squared_r2"] > 0.99
assert 1.55 < summary["epsilon_squared_slope"] < 2.45 and summary["epsilon_squared_r2"] > 0.99
assert summary["population_comparability_violations"] == 0
assert summary["naive_nu_one_failures"] > 1000
assert summary["intrinsic_fallback_violations"] == 0
assert summary["max_glm_safety_ratio"] < 2.0
assert summary["max_glm_mvt_ratio"] <= 1 / 16 + 1e-10
assert summary["median_glm_itl_over_mtlr"] > 10
assert summary["convexity_violations"] == 0
for index, item in enumerate(matrix_rows, start=1):
page = next(ROOT.glob(f"pages/claim-{index}-*/page.md"))
text = page.read_text(encoding="utf-8")
assert text.startswith(f"# {results['registered_claims'][index - 1]}")
assert "control" in text.lower()
assert any(output in text for output in item["executed_outputs"])
for name, digest in checksums.items():
assert sha256(OUT / name) == digest, name
print(json.dumps({"validated_claims": 6, "validated_gates": 20, "validated_tables": len(expected), "validated_output_files": len(checksums)}, sort_keys=True))
if __name__ == "__main__":
main()