Dependent types are a powerful concept that allows us to write proof-carrying code. Idris is a programming language that supports dependent types. We will learn about the mathematical foundations, and then write correct software and mathematically prove properties about it.This book aims to be accessible to novices that have no prior experience beyond high school mathematics. Thus, this book is designed to be self-contained.The first part of this book serves as an introduction to the theory behind Idris, while the second part is a practical introduction to Idris with examples.
Boro Sitnikovski Knihy




The book delves into dependent types, enabling developers to create proof-carrying code using the Idris programming language. It covers the mathematical foundations essential for understanding Idris, along with practical applications for writing software and proving its properties mathematically. This resource is ideal for those looking to enhance their programming skills through a rigorous, proof-oriented approach.
Introducing Software Verification with Dafny Language
Proving Program Correctness
- 152 stránek
- 6 hodin čtení
The book offers an accessible introduction to software verification and correctness proof using Dafny, a programming language supported by Microsoft Research. Unlike other texts that are heavily mathematical, it emphasizes clear explanations in plain English, making it suitable for programmers and developers familiar with C# and similar languages. This approach aims to demystify complex concepts, providing a practical foundation for those looking to enhance their understanding of software correctness.
Introducing Blockchain with Lisp
Implement and Extend Blockchains with the Racket Language
- 160 stránek
- 6 hodin čtení
The book offers a comprehensive guide to implementing blockchain technology using Racket, a general-purpose Lisp. It begins with foundational concepts of blockchain, ensuring a solid understanding before diving into Racket programming. After successfully creating a basic blockchain, readers will learn how to extend its functionality. Additionally, the appendices serve as valuable resources for further blockchain projects, making it a practical resource for both beginners and those looking to deepen their knowledge.