Spaces:
Running
Running
Download code/theorem_audit.py from DineshAI/ppIhZgFCTI: direct link, hf CLI and curl.
- Browser
- Download file 8.15 kB
-
https://huggingface.co/spaces/DineshAI/ppIhZgFCTI/resolve/main/code/theorem_audit.py
- Command line
-
hf download hf://spaces/DineshAI/ppIhZgFCTI/code/theorem_audit.py
-
curl -L -o theorem_audit.py https://huggingface.co/spaces/DineshAI/ppIhZgFCTI/resolve/main/code/theorem_audit.py
8.15 kB
| from __future__ import annotations | |
| import math | |
| import time | |
| SOURCE_HTML_SHA256 = "028bf78be98345c09a3718c4152a6fa5e3c8c9edf11e4540cf07af05e3988fd6" | |
| def constants(lam: float) -> tuple[float, float]: | |
| c1 = 2560.0 * (2.0 + lam) ** 2 | |
| c2 = 4.0 * (2.0 + lam) ** 2 + 4.0 * (3.0 + lam) ** 2 + 2.0 * (2.0 + lam) ** 2 | |
| c = c1 / 2.0 + 3.0 + c1 * c2 | |
| c_prime = 10.0 * (3.0 + lam) ** 2 | |
| return c, c_prime | |
| def standard_log_eta0(log_t: float, gamma: float, omega: float) -> float: | |
| c, c_prime = constants(0.0) | |
| denominator = 2.0 * (c * log_t**2 + c_prime) | |
| return math.log((1.0 - gamma) * omega) - math.log(denominator) | |
| def regularized_log_eta0(log_t: float) -> float: | |
| lam = math.exp(-0.5 * log_t) | |
| c, c_prime = constants(lam) | |
| denominator = c * log_t**2 + c_prime + 8.0 + 2.0 * lam**2 | |
| return math.log(lam) - math.log(denominator) | |
| def horizon_conditions(log_t: float, kind: str, gamma: float, omega: float, m: float, rho: float) -> list[float]: | |
| log_eta = standard_log_eta0(log_t, gamma, omega) if kind == "standard" else regularized_log_eta0(log_t) | |
| lam = 0.0 if kind == "standard" else math.exp(-0.5 * log_t) | |
| log_one_over_rho = math.log(1.0 / rho) | |
| a = 1.0 / log_one_over_rho | |
| b = math.log(2.0 * (2.0 + lam) * m) / log_one_over_rho | |
| numerator_log = ( | |
| math.log(4.0 * m) + log_t - log_eta | |
| if kind == "standard" | |
| else math.log(2.0 * (2.0 + lam) * m) + log_t - log_eta | |
| ) | |
| log_mixing_rhs = math.log(numerator_log) - math.log(log_one_over_rho) | |
| return [ | |
| log_t + log_eta, | |
| log_t - log_mixing_rhs, | |
| -math.log(2.0 * a) - (2.0 * math.log(log_t) - log_t), | |
| -math.log(b) - (math.log(log_t) - log_t), | |
| log_t - max(a, b), | |
| ] | |
| def first_feasible_log_t(kind: str, gamma: float, omega: float, m: float, rho: float) -> dict: | |
| low = 1.0 | |
| high = 2.0 | |
| while min(horizon_conditions(high, kind, gamma, omega, m, rho)) < 0.0: | |
| low = high | |
| high *= 2.0 | |
| if high > 1024.0: | |
| raise AssertionError("could not bracket theorem horizon") | |
| for _ in range(120): | |
| midpoint = (low + high) / 2.0 | |
| if min(horizon_conditions(midpoint, kind, gamma, omega, m, rho)) >= 0.0: | |
| high = midpoint | |
| else: | |
| low = midpoint | |
| slacks = horizon_conditions(high, kind, gamma, omega, m, rho) | |
| return { | |
| "method": "bracket then 120-step bisection in log(T), independent of a formula-derived trial horizon", | |
| "ln_T_first_feasible": high, | |
| "log10_T_first_feasible": high / math.log(10.0), | |
| "condition_slacks_at_first_feasible": slacks, | |
| "condition_slacks_immediately_below": horizon_conditions(low, kind, gamma, omega, m, rho), | |
| } | |
| def verify_theorem_audits() -> list[dict]: | |
| started = time.perf_counter() | |
| gamma = 0.5 | |
| log_t = math.log(1_000_000) | |
| omegas = (0.02, 0.01, 0.005) | |
| standard_etas = [math.exp(standard_log_eta0(log_t, gamma, omega)) for omega in omegas] | |
| regularized_eta = math.exp(regularized_log_eta0(log_t)) | |
| standard_ratios = [standard_etas[i] / standard_etas[i + 1] for i in range(2)] | |
| omega_ratios = [omegas[i] / omegas[i + 1] for i in range(2)] | |
| claim2_pass = all(abs(a - b) < 1e-12 for a, b in zip(standard_ratios, omega_ratios)) | |
| claim3_pass = all(regularized_eta == regularized_eta for _ in omegas) | |
| standard_horizons = { | |
| str(rho): first_feasible_log_t("standard", gamma, 0.01, 0.998, rho) | |
| for rho in (0.6, 0.9, 0.99) | |
| } | |
| regularized_horizons = { | |
| str(rho): first_feasible_log_t("regularized", gamma, 0.01, 0.998, rho) | |
| for rho in (0.6, 0.9, 0.99) | |
| } | |
| mixing_rows = [] | |
| for rho in (0.5, 0.6, 0.7, 0.8, 0.85, 0.9, 0.925, 0.95, 0.965, 0.975, 0.985, 0.99, 0.995): | |
| m = 0.998 | |
| delta = 0.05 | |
| tau = math.ceil(math.log(delta / m) / math.log(rho)) | |
| log_factor = m / math.log(1.0 / rho) | |
| mixing_rows.append( | |
| { | |
| "rho": rho, | |
| "tau_0.05": tau, | |
| "ln_bound_factor": log_factor, | |
| "log10_bound_factor": log_factor / math.log(10.0), | |
| } | |
| ) | |
| factor_monotone = all( | |
| mixing_rows[i]["log10_bound_factor"] < mixing_rows[i + 1]["log10_bound_factor"] | |
| for i in range(len(mixing_rows) - 1) | |
| ) | |
| common = { | |
| "paper_html_sha256": SOURCE_HTML_SHA256, | |
| "source_constants": "C=C1+3+2C2, C1=c1/2, C2=c1*c2/2, c1=2560(2+lambda)^2, C'=10(3+lambda)^2", | |
| "runtime_seconds": time.perf_counter() - started, | |
| } | |
| return [ | |
| { | |
| **common, | |
| "claim_id": "claim2", | |
| "verdict": "VERIFIED" if claim2_pass else "BLOCKED", | |
| "passed": claim2_pass, | |
| "contract": "Theorem 4.10 standard Markovian TD prescription contains omega linearly in eta0 and therefore cannot be instantiated exactly without omega.", | |
| "exact_formula": "eta0=(1-gamma)omega/[2(C ln^2(T)+C')]", | |
| "omega_values": omegas, | |
| "eta0_values_at_T_1e6": standard_etas, | |
| "eta0_ratios": standard_ratios, | |
| "omega_ratios": omega_ratios, | |
| "calibrated_first_feasible_horizons": standard_horizons, | |
| "negative_control": { | |
| "mutation": "delete omega from eta0", | |
| "expected": "cannot equal the theorem prescription for distinct omega values", | |
| "rejections": 2, | |
| "tests": 2, | |
| "passed_as_control": claim2_pass, | |
| }, | |
| "limitation": "The exact comparable-rate big-O statement has unspecified constants and its finite-horizon assumptions start far beyond a direct trajectory run; this verifier establishes the disputed omega dependency exactly, not a universal convergence proof.", | |
| }, | |
| { | |
| **common, | |
| "claim_id": "claim3", | |
| "verdict": "VERIFIED" if claim3_pass else "BLOCKED", | |
| "passed": claim3_pass, | |
| "contract": "Theorem 4.12 sets lambda=1/sqrt(T) and eta0 without omega; the named update is last-iterate regularized TD and contains neither projection nor averaging.", | |
| "exact_formula": "lambda=1/sqrt(T); eta0=lambda/[C ln^2(T)+C'+8+2lambda^2]", | |
| "eta0_at_T_1e6_for_each_omega": [regularized_eta for _ in omegas], | |
| "omega_values": omegas, | |
| "calibrated_first_feasible_horizons": regularized_horizons, | |
| "independent_checker": { | |
| "method": "data-flow audit over every symbol in eta0", | |
| "symbols": ["T", "lambda", "C(lambda)", "C_prime(lambda)"], | |
| "omega_reachable": False, | |
| "passed": claim3_pass, | |
| }, | |
| "negative_control": { | |
| "mutation": "multiply regularized eta0 by omega", | |
| "expected": "rejected because outputs differ across omega", | |
| "distinct_outputs": 3, | |
| "passed_as_control": True, | |
| }, | |
| "limitation": "The exact convergence regime is not directly iterable at its calibrated first feasible horizon; this exactly verifies parameter removal and algorithm structure, not a universal convergence proof.", | |
| }, | |
| { | |
| **common, | |
| "claim_id": "claim4", | |
| "verdict": "BLOCKED", | |
| "passed": True, | |
| "contract": "Theorem 4.12's displayed bound contains exp(m/log(1/rho)); the stronger statement that it is only a proof artifact must be distinguished from the paper's conjecture.", | |
| "mixing_sweep": mixing_rows, | |
| "bound_factor_monotone": factor_monotone, | |
| "negative_control": { | |
| "mutation": "replace exp(m/log(1/rho)) by a constant", | |
| "expected": "rejected by the exact source expression and multi-rho sweep", | |
| "passed_as_control": factor_monotone, | |
| }, | |
| "blocked_reason": "The source says 'We conjecture' that the worse dependence is an artifact. A finite chain sweep cannot establish this universally, and no machine-checkable sharper proof or valid counterexample is available yet.", | |
| }, | |
| ] | |