Today we wrote some recursive functions for integers and lists.
We proved correctness of two implementations of the power
function. We used standard/mathematical induction for one
implementation and strong/complete induction for a different
implementation of that same function.
We also proved totality (not
correctness) of our implementation of the length function,
using structural induction over lists. (Exercise: How might you
modify that proof to prove correctness?)
Here is another introduction to
lists, with a bit more formal detail than in the previous lecture's notes.
(There will
be additional notes about structural induction over lists and trees
next time.)