Formal Verification With Lean

Introduction

Lean is a functional programming language whose type system is powerful enough to encode mathematical proofs. One implication is that it is possible to use lean to write a program and to construct mathematical proofs about the its properties which are checked by the compiler. As an added benefit, lean comes with an interactive theorem prover which helps guide the process of converting mathematical statements into types.

The goal of this post is to introduce lean and walk through an example in which we implement insertion sort and prove that the output is always sorted.

We’ll

Comments

The comments are powered by the utterences Github app. If you do not want the app to post on your behalf, you can comment directly on this Github issue.