원클릭으로
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 |