In this lecture, we learned about the tight coupling between recursion and induction.

We learned about how we could use the *recursive leap of faith*
to help us write our recursive functions, a technique which resembles
the usage of inductive hypotheses when proving theorems by mathematical
induction.

We recapped the definitions of strong and simple induction on the natural numbers, and explored how we could use induction in the context of a programming language, by proving theorems on recursive functions.

We learned about some other fundamental SML language constructs, namely case expressions and let-in-end expressions. We also saw limited examples of lists, which let us store multiple values of a given type.