{"data":{"kind":"file","path":"README.md","version_id":"ov3jizz2lg3cj8mdzkg92mo5","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":3828,"modified_at":"2026-09-18T04:49:08.900000","content_hash":"5f8eba822d0ecb81a04eb4d357267c0c9509b80218932c47885dbc9520c567e1"},"entries":[],"content":"# Bloch certificate environment\n\nA model gets read-only access to Frank Wikström's published Bloch certificate\nverifier. It must reproduce two archived certificate values, reproduce the\npublished near-branch target, and find an accepted decimal target within\n`1e-10` below the shipped near-branch cutoff. Reward comes from the archive's\nown Arb verifier, not an LLM judge.\n\nThis is a public seed environment from Zeta Lab Hunt #80. It is deliberately\nsmall: four public calibration rows, no hidden test claim, no Lean rung, and no\n24-sector away replay. The full environment product is the method across\nmultiple targets and graders, not this free sample.\n\n## Trust boundary\n\n- Archive: Zenodo `10.5281/zenodo.21975862`, version 1.0.0, MIT.\n- SHA-256 pinned: `bdaa1ff347043a00733ca40d5db46c5418810d1f4e5c472d0bcb9de48ef408e7`.\n- The same downloaded bytes are hashed and extracted into a fresh temporary\n  directory before every uncached verifier mode.\n- Model inputs are exact JSON decimal strings. They are never passed to a shell,\n  path lookup, Python evaluation, or upstream program.\n- Near-target queries have a 24-call episode budget. That is enough for the\n  advertised `1e-10` bisection and prevents runaway tool/audit output.\n- Upstream code runs in a subprocess with a 90-second timeout and a minimal\n  environment. This is process isolation, not a hostile-code sandbox. The code\n  is hash-pinned and trusted as the grader.\n- Oracle failures raise an environment error. They never become a zero reward.\n- Each score records mode, digest, verifier log, elapsed time, target, verdict,\n  and the exact scope of the check.\n\n## Tasks\n\n| Task | Acceptance |\n|---|---|\n| `fine-reproduce` | Exact (C) gain printed by the fine fixed-radius certificate |\n| `coarse-reproduce` | Exact (C) gain printed by the coarse fixed-radius certificate |\n| `near-reproduce` | A shipped near-branch target from `0.0153` up to its strict cutoff |\n| `near-branch-cutoff` | An accepted target within `1e-10` below the near-branch cutoff |\n\nThe near tasks do not replay the 24 away sectors. Hunt #80 previously replayed\nall sectors at `0.0153040536`. That result is evidence behind\nthe task calibration, not a computation this lightweight environment pretends\nto rerun.\n\nFor `check_near_target`, use `goal=\"published\"` on `near-reproduce` and\n`goal=\"cutoff\"` on `near-branch-cutoff`. The tool and final reward share the\nsame positivity check, lower floor, and strict upper cutoff.\n\n## Run\n\nInstall the published Hub version:\n\n```bash\nprime env install thomas-lince/bloch-certificate@latest\nbloch-prepare\nbloch-smoke\nvf-eval bloch-certificate --model <provider/model> -n 4 -r 1\n```\n\nOr, from either this standalone source directory or the package directory in\nthe Zeta Lab repository:\n\n```bash\npython3.12 -m venv .venv\n.venv/bin/pip install -e .\n.venv/bin/bloch-prepare\n.venv/bin/bloch-smoke\n.venv/bin/vf-eval bloch-certificate --model <provider/model> -n 4 -r 1\n```\n\n`bloch-prepare` downloads once into `~/.cache/bloch-certificate/` and verifies\nthe digest. `load_environment()` also prepares a missing default archive.\n`bloch-smoke` runs four positive and four negative controls without a model.\nPython 3.12 is intentionally required because that is the interpreter pinned by\nthe upstream archive and exercised by this package's CI. Support is not claimed\nfor an interpreter the certificate has not been replayed under.\n\n## What the evidence means\n\nThe fixed-radius rows check the finite certificate arithmetic. The near rows\ncheck the shipped near branch. They do not audit Bonk's theorem, the moment\ninequality, the three-atom reduction, or the centre-placement lemma. Acceptance\nis not by itself a theorem about Bloch's constant.\n\nSources: the upstream archive, its paper `arXiv:2608.17660`, and Zeta Lab's\n`hunts/bloch_ceiling/RESULTS.md`.\n","encoding":"utf-8","truncated":false,"total_bytes":3828},"status":null}