SpecFault-Dafny is a compact Dafny benchmark for verifier-passing specification faults. Each item pairs a stated intent with a Dafny candidate whose specification either matches the intent or verifies while missing it.
The release includes:
- a 45-item scored corpus under
specfault-dafny/bench/items - five baseline validators under
specfault-dafny/src/specfault - final scorecard artifacts under
specfault-dafny/artifacts/results - Markdown evidence cards under
specfault-dafny/artifacts/cards - the camera-ready hackathon report under
submission
Prerequisites:
- Dafny 4.11.0 on
PATH - Python dependencies managed by
uv
cd specfault-dafny
uv sync --extra dev
make smokemake smoke runs the package-level sanity check without live LLM calls.
The submitted report uses prediction run 20260524T205027Z-llmfinal. The
tracked prediction file is enough to regenerate the scorecard and audit tables:
cd specfault-dafny
uv run specfault score bench/items artifacts/results/predictions.jsonl \
--out artifacts/results/scorecard.json \
--markdown report/tables/scorecard.md
uv run specfault audit bench/items artifacts/results/predictions.jsonl \
--out notes/corpus_audit.md
uv run python scripts/validate_roundtrip_cache.py \
20260524T205027Z-llmfinal artifacts/results/predictions.jsonlTo rerun the LLM-backed round-trip validator instead of using the submitted
predictions, export OPENAI_API_KEY and run make run. Live calls are not
required for checking the submitted scorecard.
specfault-dafny/README.md- benchmark package instructionsspecfault-dafny/bench/items/- scored Dafny corpusspecfault-dafny/artifacts/results/- final prediction, verification, and scorecard artifactsspecfault-dafny/artifacts/cards/- generated per-item evidence cardsspecfault-dafny/report/tables/- generated report tablessubmission/- report, rendered PDF/HTML, and demo script