SaltBench: A Referee-Gated Protocol for Measuring Method Effects in Machine-Checked Software Work
Jason Hickey
cs.SE
Sep 10, 2026 · v3
cs.LO
TL;DR
Uses Lean 4 with Mathlib as a kernel-replay and axiom-audit referee for agent proofs on CLEVER tasks, in one of several scored populations.
Abstract
SaltBench asks how a machine referee (a proof kernel, program verifier or withheld test suite) changes how a coding agent works. Outcomes are decided outside the agent's toolchain; a wall probed before any scored run isolates the agent from the network, reference solutions and harness; a dated freeze of predictions authorizes each run; a budget stop is a halt, never a failure. Five Rust systems components on a pinned Verus toolchain are each refereed by a withheld test suite. The arms: plain; salt-diet, also instructed to specify and verify its code (a registered reduced rendering of the method); and two arms handed the specification a priori, where the registered sign test at k=4 reached no verdict (3 of 4, p = 0.3125). salt-diet cost more on all five components, by a practical margin: no premium exceeded 2.8879x under either reading of the declared set and the three cheapest sat below 1.4x, a bound of this population and not a promise about larger ones: the premium is near 1 on the smallest components and rises with size. Versions 2 and 3 add the complete pilot matrix: 200 conditions over four models, 181 with a result of record, 16 inexpressible and 3 declared unreached at the cost cap, costed in tokens, dollars and wall time, with no verdict on the arms. Version 3 adds a correctness reading, declared post hoc and registered after every verdict it reads existed and many had been read by its author: 447 cells pass the withheld suite, 40 fail, 10 are censored at a registered budget, 4 are unscorable and 42 are read by condition. salt-diet's pass-rate interval lies wholly below plain's on 8 greenfield and 5 brownfield rows and wholly above it on 2 greenfield rows. It is descriptive, over three cells of record per condition, with no test, and says nothing about whether the method makes code more or less correct. The full record is public.
Problem
Benchmarks for coding agents often let the agent's own account, or the experimenter's after-the-fact reading, decide outcomes. This makes it hard to measure how a method, such as instructing agents to specify and verify their code, affects their work.
Approach
SaltBench is a pre-registered protocol in which machine referees decide outcomes outside the agent's toolchain. The referees are a Lean kernel replay with an axiom audit, a Verus verifier, or a withheld test suite. It also uses a probed sandbox wall, dated prediction freezes, and treats budget stops as halts rather than failures. The main measurement compares plain and 'salt-diet' (specify-and-verify) arms on five authored Rust/Verus systems components. Earlier reads on CLEVER Lean tasks and Verus tasks shaped the design.
Results
Salt-diet cost more on all five components (sign test 5 of 5, p=0.0312), with premiums up to about 2.89x that rise with component size. A post-hoc correctness pass and a 200-condition pilot matrix over four models did not separate the arms on correctness. The authors also report instrument findings, for example that censored caps bias budgets and that sandbox fences must be probed at every layer.
| problem | premium, reading A | premium, reading B |
|---|
| Crc32 | 1.1610x | 1.1610x |
| FreeList | 2.8070x | 2.8879x |
| LZW | 1.3749x | 1.3749x |
| Paxos | 2.4306x | 2.2437x |
| LRU | 1.2826x | 1.1521x |
Cost premium of salt-diet over plain per problem (median diet-bare / median plain-bare)