
Introducing Software Verification with Dafny Language
Proving Program Correctness
Boro Sitnikovski(Author)
APress
Published on 1. March 2022
Book
Paperback/Softback
XX, 131 pages
978-1-4842-7977-9 (ISBN)
Description
Get introduced to software verification and proving correctness using the Microsoft Research-backed programming language, Dafny. While some other books on this topic are quite mathematically rigorous, this book will use as little mathematical symbols and rigor as possible, and explain every concept using plain English. It's the perfect primer for software programmers and developers with C# and other programming language skills.
Writing correct software can be hard, so you'll learn the concept of computation and software verification. Then, apply these concepts and techniques to confidently write bug-free code that is easy to understand. Source code will be available throughout the book and freely available via GitHub.
After reading and using this book you'll be able write correct, big free software source code applicable no matter which platform and programming language you use.
What You Will Learn
Software developers and programmers with at least prior, basic programming experience. No specific language needed. It is also for those with very basic mathematical experience (function, variables).
Writing correct software can be hard, so you'll learn the concept of computation and software verification. Then, apply these concepts and techniques to confidently write bug-free code that is easy to understand. Source code will be available throughout the book and freely available via GitHub.
After reading and using this book you'll be able write correct, big free software source code applicable no matter which platform and programming language you use.
What You Will Learn
-
Discover the Microsoft Research-backed Dafny programming language
- Explore Hoare logic, imperative and functional programs
- Work with pre- and post-conditions
- Use data types, pattern matching, and classes
- Dive into verification examples for potential re-use for your own projects
Software developers and programmers with at least prior, basic programming experience. No specific language needed. It is also for those with very basic mathematical experience (function, variables).
More details
Edition
1st ed.
Language
English
Place of publication
Berkeley
United States
Target group
Professional and scholarly
Illustrations
104 s/w Abbildungen
XX, 131 p. 104 illus.
Dimensions
Height: 235 mm
Width: 155 mm
Thickness: 9 mm
Weight
242 gr
ISBN-13
978-1-4842-7977-9 (9781484279779)
DOI
10.1007/978-1-4842-7978-6
Schweitzer Classification
Other editions
Additional editions

E-Book
02/2022
APress
€34.99
Available for download
Person
Boro Sitnikovski
has over ten years of experience working professionally as a software engineer. He started programming with assembly on an Intel x86 at the age of ten. While in high school, he won several prizes in competitive programming, varying from 4th, 3rd, and 1st place. He is an informatics graduate - his bachelor's thesis was titled "Programming in Haskell using algebraic data structures", and his master's thesis was titled "Formal verification of Instruction Sets in Virtual Machines". He has also published a few papers on software verification. Other research interests of his include programming languages, mathematics, logic, algorithms, and writing correct software. He is a strong believer in the open-source philosophy and contributes to various open-source projects. In his spare time, he enjoys some time off with his family.
Content
Introduction: Languages and Systems.- Chapter 1: Our First Program.- Chapter 2: Logic.- Chapter 3: Computation.- Chapter 4: Mathematical Foundations.- Chapter 5: Proofs.- Chapter 6: Specifications.- Chapter 7: Mathematical Induction.- Chapter 8: Verification Exercises.- Chapter 9: Implementing a Formal System. Conclusion.- Bibliography.- Appendix A: Gödel's Theorems.