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.

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning