15-317 Constructive Logic
Lecture 16: The LF Logical Framework
In this lecture we present the LF logical framework
as a generalization of the logic programming language
we have used thus far. In particular, LF has a strong
type system and the ability to represent variable binding
intrinsically. We exploit these features to give a representation
of proof terms for natural deduction.
LF can also be given a logic programming interpretation and
we exploit this to write a checker for proof terms, which is
the main running example in this lecture. The new features
used here are a form of universal quantification (which introduces
new parameters into a deduction) and embedded implication (which
introduces new hypotheses). Unlike Prolog, therefore, neither
the set of available constructors nor the program are constant,
but can change dynamically.