The schema has always promised a HwShunt provenance (a true hardware reading,
the strongest tier) but nothing produced one — the solvers reported ModelBased
(wall time × a power model). Add proof-cascade::meter: it brackets a real proof,
run on every spare core, against an idle baseline using the platform's energy
interface (IOReport via macmon on Apple Silicon, RAPL energy_uj on Linux) and
returns the marginal microjoules of one proof. No interface reachable ⇒ None, so
the caller keeps the honestly-tagged ModelBased figure rather than inventing a
number; multi-thread saturation is what clears a loaded machine's noisy idle
baseline (a single thread vanishes into it).
`proof --measure` meters a real, non-trivial T0 proof — validity of a
16-variable propositional tautology by the actual truth-table decider (2^16
rows), genuine parallelizable compute — and reports measured joules-per-proof
with HwShunt provenance + measured_uj present. The standard's headline (joules
per verified proof) is now a real reading, not only a model. Measured ~50 mJ on
an M-series box.
Co-Authored-By: Claude Opus 4.8 <[email protected]>