ワンクリックで
dafny-verifier
Use Dafny verification language for constructing verified programs with proofs.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use Dafny verification language for constructing verified programs with proofs.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Implement abstract machines for defining and executing operational semantics of programming languages.
Implements alias and points-to analysis for pointer programs. Use for: (1) Optimizing compilers, (2) Verifying memory safety, (3) Program understanding, (4) Parallelization.
Define program meaning through logical assertions and proof rules (Hoare logic).
Transforms closures to explicit environments. Use when: (1) Implementing functional languages, (2) Building compilers, (3) Understanding closures.
Implements common subexpression elimination (CSE). Use when: (1) Building compilers, (2) Optimizing code, (3) Program analysis.
Implements general dataflow analysis framework. Use when: (1) Building compilers, (2) Static analysis tools, (3) Program verification.
| name | dafny-verifier |
| description | Use Dafny verification language for constructing verified programs with proofs. |
| version | 1.0.0 |
| tags | ["verification","dafny","proofs","popl"] |
| difficulty | intermediate |
| languages | ["dafny"] |
| dependencies | ["hoare-logic-verifier","smt-solver-interface"] |
Dafny is a verification-aware programming language that supports writing specifications, programs, and proofs together. It compiles to verified code in multiple languages (C#, Java, Go, JavaScript).
| Concept | Description |
|---|---|
| Method | Executable code with specifications |
| Function | Mathematical function (pure, no side effects) |
| Lemma | Proof that can be called like a function |
| Invariant | Property that holds at loop header |
| Ensures | Postcondition specification |
| Requires | Precondition specification |
calc statements for calculation proofsold() function refers to pre-statehoare-logic-verifier - Theory behind Dafnycoq-proof-assistant - More expressive proof assistantsmt-solver-interface - Z3 powers Dafnyseparation-logician - For heap reasoning| Reference | Why It Matters |
|---|---|
| Leino, "Dafny: An Automatic Program Verifier for Functional Correctness" (LPAR 2010) | Original Dafny paper |
| Leino, "Program Proofs" (MIT Press, 2023) | Comprehensive Dafny book |
| Dafny documentation (dafny.org) | Official reference |
| Approach | Pros | Cons |
|---|---|---|
| Dafny | Automatic, usable | Limited expressiveness |
| Coq | Very expressive | Manual proofs |
| F* | More features | Steeper learning |
A high-quality implementation should have:
| Criterion | What to Look For |
|---|---|
| Verification | All proofs check |
| Readability | Clear specifications |
| Modularity | Good lemma structure |
| Termination | All loops/functions terminate |
✅ Good: All specs verified, clear invariants, modular lemmas ⚠️ Warning: Some specs need manual hints ❌ Bad: Unverified code, missing invariants
Verification tools:
| Tool | Language | What to Learn |
|---|---|---|
| Verus | Rust | Verified Rust |
| F* | F* | Verification |
| Pitfall | Real Consequence | Solution |
|---|---|---|
| Failed proofs | Verification fails | Add lemmas |