MMR-Bench v1.0
Three readings of one cell.
MMR-Bench compares the value stored in the workbook, a bounded evaluator, and an independent engine — then signs exactly what it found. A disagreement between engines never authorizes it to rewrite your formula.
the value Excel last wrote into the file
a bounded AST-whitelisted recomputation
an independent Python engine, not Excel
Six of the nine classifications, shown with worked values. The 2^3 case is the real v0.9 defect — the old MMR evaluator read Excel's ^ as Python's XOR. The 1904 case is the external engine's 1,462-day date-system gap. Measured fixture outcomes are on the results page.
Where it started
MMR-Bench began as a test of a representational question: should matrix position, direction, display structure, formula dependency, and semantic roles be represented together, rather than flattened into one linear sequence? Nine versions later, the question that survived was narrower and more practical — what can a spreadsheet audit actually prove about itself?
Version 1.0 closes the first research cycle by answering that in a replayable form: a signed certificate that records the evidence, the decisions, and the boundary of both.
What v1.0 adds
- A safe bounded formula evaluator built on a Python AST whitelist.
- Excel-compatible
^exponentiation semantics. - Excel-style
ROUND, with half-away-from-zero behaviour. - Explicit 1900 / 1904 date-system handling in the MMR evaluator.
- Three-source evidence: the OOXML cache, the MMR evaluator, and an independent
formulasengine. - Ed25519-signed computation certificates.
- Canonical payload hashing,
MMR-CJ-1. - XLSX source-hash binding.
- Replay verification of normalization, formula evidence, and safety decisions.
- Tamper rejection and wrong-source rejection.
- Zero formula-write authorization from engine disagreement.
Verified results
Every line below is a count from the v1.0 regression run on .
| Trial | Result |
|---|---|
| Full historical regression | 69 tests passed |
| Input mutation trials | 30 / 30 MMR and external engine agree |
| Exponent trials | 20 / 20 three-way agreement |
ROUND trials | 20 / 20 three-way agreement |
| 1904 date trials | 20 / 20 external-engine gap detected |
| Signed example certificates | 4 / 4 signature verified |
| Signed example certificates | 4 / 4 exact replay verified |
| Tampered payloads | 10 / 10 rejected |
| Wrong XLSX sources | 10 / 10 rejected |
| Formula writes authorized by certificates | 0 |
These are results on synthetic business contents stored in real XLSX packages. The packages are genuine OOXML; the contents are generated.
Accuracy on arbitrary enterprise workbooks, or complete Microsoft Excel compatibility.
Try it
The benchmark runs from the repository. Certificates are created and checked through one CLI.
python -m pip install -r requirements.txt
./run_v10.shCreate a signing keypair. The private key stays with you — no example private key ships with the release.
python -m mmr_bench.certificate_cli_v10 keygen \
--private-key private.pem \
--public-key public.pemSign a workbook audit, verify the certificate, then replay it against the original file.
python -m mmr_bench.certificate_cli_v10 create workbook.xlsx \
--private-key private.pem \
--output workbook.mmr-cert.json
python -m mmr_bench.certificate_cli_v10 verify workbook.mmr-cert.json
python -m mmr_bench.certificate_cli_v10 replay \
workbook.mmr-cert.json workbook.xlsxResearch release. No general production write authorization.