Summary: Notes on Simply Typed Lambda Calculus \Lambda
Ralph Loader y
The purpose of this course is to provide an introduction to –calculi,
specifically the simply typed lambda calculus (– ! ).
–calculi are formalisms that are useful in computer science. They are
languages that express both computational and logical information.
Computational information in that they can be see as functional pro
gramming languages, or more realistically, a solid core on which to build a
Logical information in two ways. First, typed –calculi can be used dir
ectly as logics---these are `intuitionistic type theories' such as the calculus of
constructions (e.g., used in the `Lego' theorem proving software developed
in this department). Second, typed –calculi underly the term structure of
higher order logics.
There are many different –calculi---everyone working in the field has their
own pet language(s)---but they generally fall into a few classes of broadly
similar languages. This course does not provide a wide ranging survey, but
instead aims to explain a good range of theoretical techniques, most of which
are applicable to a much wider range of languages than we will actually study.