Spaces:
Running
Running
Download code/claim5_verifier.py from DineshAI/ppIhZgFCTI: direct link, hf CLI and curl.
- Browser
- Download file 1.86 kB
-
https://huggingface.co/spaces/DineshAI/ppIhZgFCTI/resolve/main/code/claim5_verifier.py
- Command line
-
hf download hf://spaces/DineshAI/ppIhZgFCTI/code/claim5_verifier.py
-
curl -L -o claim5_verifier.py https://huggingface.co/spaces/DineshAI/ppIhZgFCTI/resolve/main/code/claim5_verifier.py
1.86 kB
| """Current Claim 5 verifier; extracted from Git SHA 8a72923 for evaluator use.""" | |
| import sys | |
| import numpy as np | |
| def definition_first_hit(m: float, rho: float, delta: float) -> int: | |
| t = 0 | |
| envelope = m | |
| while envelope > delta: | |
| envelope *= rho | |
| t += 1 | |
| return t | |
| def direct_tv_curve(n_states: int, rho: float, max_steps: int) -> list[float]: | |
| stationary = np.full(n_states, 1.0 / n_states) | |
| distributions = np.eye(n_states) | |
| curve = [] | |
| for _ in range(max_steps + 1): | |
| curve.append(float(np.max(0.5 * np.abs(distributions - stationary).sum(axis=1)))) | |
| distributions = rho * distributions + (1.0 - rho) * stationary | |
| return curve | |
| def verify() -> bool: | |
| tests = 0 | |
| rejections = 0 | |
| max_error = 0.0 | |
| for n_states in (32, 128, 512): | |
| m = 1.0 - 1.0 / n_states | |
| for rho in (0.5, 0.75, 0.875, 0.9375): | |
| minimum_transition_probability = (1.0 - rho) / n_states | |
| if minimum_transition_probability <= 0.0: | |
| return False | |
| deltas = (0.1, 0.05, 0.01, 0.001, m * rho**7) | |
| max_steps = max(definition_first_hit(m, rho, d) for d in deltas) + 2 | |
| curve = direct_tv_curve(n_states, rho, max_steps) | |
| for delta in deltas: | |
| tau = definition_first_hit(m, rho, delta) | |
| direct = next(t for t, tv in enumerate(curve) if tv <= delta + 1e-12) | |
| tests += 1 | |
| rejections += int(tau + 1 != direct) | |
| max_error = max(max_error, abs(curve[direct] - m * rho**direct)) | |
| if tau != direct: | |
| return False | |
| print({"tests": tests, "off_by_one_rejections": rejections, "max_error": max_error}) | |
| return tests == 60 and rejections == 60 and max_error < 1e-12 | |
| if __name__ == "__main__": | |
| sys.exit(0 if verify() else 1) | |