15-312 Foundations of Programming Languages
Lecture 2: Inductive Definitions
In this lecture we introduce the most important mathematical
tools in this class: inductive definitions and proof by rule induction.
Inductive definitions are given via judgments and inference rules to
derive judgments. We illustrate these concepts by presenting grammars
inductively and proving some properties of them, such as the equivalence
of two grammars.
We also show how algorithms, such as parsing, can be presented in the
form of judgments and rules. We see how this approach allows us to
prove their correctness in the same manner: by rule induction.