Academy PassIntermediate9 lessons127 min

Programs with proofs

Put induction to work on programs. Write specifications that rule out wrong implementations, split proofs on a program’s branches, verify a reference implementation of list reverse and build on the lemmas you prove, show that an invariant survives every sequence of operations, and finish with a verified polymorphic iterator.