Introduction to Verified Functional Data Structures and Algorithms Using Isabelle Proof Assistant
By
SchwKatze
Kettled twice. Extra chewy, extra trustworthy.
Summary
This book introduces data structures and algorithms for functional programming languages with a focus on formal verification. It covers both functional correctness and running time analysis using inductive proofs about functional programs and their running time functions. All proofs have been machine-checked by the Isabelle proof assistant, and the PDF includes links to corresponding Isabelle theories.
Key quotes
· 5 pulledThis book is an introduction to data structures and algorithms for functional languages, with a focus on verification.
It covers both functional correctness and running time analysis.
It does so in a unified manner with inductive proofs about functional programs and their running time functions.
All proofs have been machine-checked by the proof assistant Isabelle.
The pdf contains links to the corresponding Isabelle theories.
You might also wanna read
Isabelle's Design Philosophy: Why It Avoids Dependent Types and Proof Objects
This article discusses the design philosophy behind the Isabelle proof assistant, explaining why it doesn't use dependent types or proof obj
The History of Pipes, Forks, and Zombies in Unix Systems
This article discusses the history and concept of pipes in Unix systems, focusing on Doug McIlroy's original vision of coupling programs lik
A 7-line interpreter: Implementing a functional programming language in minutes
The article presents a minimal 7-line interpreter for a functional programming language, demonstrating the eval/apply design pattern from St
Demystifying Floating Point Numbers: An Interactive Guide
An in-depth technical blog post that demystifies floating point numbers, explaining their internal representation and behavior. The author i
The Seven Foundational Programming Paradigms: Understanding Core Concepts Beyond Specific Languages
The article argues that instead of focusing on specific programming languages, learners should understand the fundamental 'ur-languages' or
Introduction to C Programming: Understanding the Foundational Language
This appears to be the beginning of a book about the C programming language, specifically Chapter 1 titled 'Getting Started.' The content in
