crash-refinement · research

Crash refinement

Crash refinement relates an implementation to a specification by requiring crash-free equivalence and permitting no additional observable outcomes after modeled crashes and recovery.

Related Observatory article: Crash refinement on hesela.com

Yggdrasil defines the relation from equivalent consistent states and includes recovery idempotence. Equivalence is specified, not raw disk-byte identity. [1]

In Yxv6, validating the free-block or free-inode candidate protects allocation safety without proving that the search succeeds whenever space is available. A refinement result must be read alongside the operation's permitted failures and resource guarantees. [1]

A proof does not repair an inadequate specification or certify unverified integration code. The released artifact warns about both boundaries. [2]

Relations

related
Bounded crash testing, Crash-test oracle

Advantages

  • Supports modular verification against explicit storage contracts. [1]

Limitations

  • The research prototype assumes atomic block writes and does not verify concurrent execution. [1]

Citations

  1. Sigurbjarnarson et al. Push-Button Verification of File Systems via Crash Refinement. OSDI 2016, pp. 1-16; sections 2-3, 4.2, 4.5 and 6. (accessed 2026-10-24)
  2. Yggdrasil authors. README: guarantees, version differences and limitations; revision e1de61d798acafb9ae2d8387d176c4b091773623. (accessed 2026-10-24)

Further reading

  1. Hesela. Crash-consistency tests: the oracle is part of the result. (accessed 2026-10-24)
Sources & caveats
  • Literature review; no theorem-prover rerun, filesystem execution or hardware validation by Hesela.

JSON: /data/terms/crash-refinement.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Crash refinement. Hesela. 2026-10-24. https://hesela.dev/terms/crash-refinement/