Dafny

by Rustan Leino

Dafny is an automated verification tool for functional correctness of imperative programs written in a subset of the C# and Java programming languages.

Operating system: Windows

Publisher: Rustan Leino

Antivirus check: passed

Last revision: Last week

Report a Problem

Dafny is a programming language and a program verifier designed to help developers create correct and reliable software systems. It was designed and developed by Microsoft Research and it is fully integrated with the Visual Studio IDE.

Dafny is a general-purpose programming language with static typing, which is suitable for both programming, and as a tool for software verification. It supports features such as procedural programming, object-oriented programming, and concurrent programming.

Dafny enables the user to write executable code that is verified to be correct through the use of automated theorem proving.
Features:

1. Static Typing: Dafny has static typing, which means it checks the types of all variables declared in a program and ensures that they are used correctly. This helps to catch errors early and makes programs more reliable.

2. Program Verification: Dafny is designed to be used as a program verifier, which means it can check the correctness of a program and ensure that it does what it is supposed to do. This is especially useful for mission-critical software, such as embedded systems.

3. Refinement: Dafny allows developers to start with a high-level specification of a program, and gradually refine it to a more detailed implementation. This helps to ensure that the program is correct at every stage of development.

4. Automated Code Generation: Dafny can generate code from a specification, which can help to reduce the amount of code that needs to be written manually.

5. Concurrent Programming: Dafny supports concurrent programming, which allows developers to take advantage of multiple cores in modern processors.

6. Integrated Development Environment (IDE): Dafny is fully integrated with the Visual Studio IDE, which provides an easy-to-use development environment.

7. Open Source: Dafny is open source, which means anyone can use and modify the source code.

8. Cross-Platform: Dafny is available for Windows, Linux, and Mac OS, so it can be used on any platform.

9. Extensibility: Dafny can be extended with new features and tools, so developers can customize it to their needs.

10. Documentation: Dafny comes with extensive documentation, which makes it easier to learn and use.
The Dafny software requires a Windows or Linux operating system with at least 4GB of RAM and 2GB of free disk space. It is also necessary to have an up-to-date version of Microsoft Visual Studio (or an equivalent IDE) installed on the system. Additionally, the Z3 Theorem Prover must be installed in order to run the software.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Arran E******g

I recently used Dafny for a project in my software engineering class. I found it to be a very useful tool. It helped me quickly verify the correctness of my algorithms and programs. Its syntax is easy to learn and its support for loop invariants makes it very convenient for writing proofs. I also liked how it automatically finds loop invariants, which saved me a lot of time. Overall, I found it to be a great tool for verifying algorithms and programs.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Harris Rydholm

I found Dafny to be an interesting and useful software for formal verification of programs. It is easy to learn and use, and its automated system for proving properties of programs is very helpful. The code it generates is also very readable, which makes for an overall pleasant programming experience. The automated proof system does a good job of finding bugs.
JRebel logo
JRebel is a Java productivity tool that enables developers to instantly see code changes, without redeploying.
Sikuli IDE logo
Sikuli IDE is a visual automation tool that uses image recognition to automate user interaction with graphical user interfaces.
Portable Binary Viewer logo
Portable Binary Viewer is a free and lightweight binary file viewer and editor for Windows, Mac, and Linux systems.
Javascript DropDownMenu logo
Javascript DropDownMenu is a software library providing a convenient way to create drop-down menus for webpages.
Altova UModel Enterprise Edition logo
Altova UModel Enterprise Edition is an advanced UML modeling tool for visually designing and documenting software applications.