## 15-816 Linear Logic |

Natural deductions in intuitionistic logic are in bijective
correspondence with simply-typed lambda terms. This correspondence also
relates propositions (from logic) to types (from the lambda-calculus).
This insight, known as the *Curry-Howard isomorphism*, shows the
deep connection between logic and functional programming, and has led to
the development of *constructive type theory*.

In this lecture we briefly review this connection and extend it
to linear logic. Local reduction can be interpreted as rules of
functional computation, and local expansions and extensionality
principles. Linear types express properties of functions, such as
"*this function will use its argument exactly once*".

Proof terms are also important if we want to verify the operations of tactics and tacticals: to insulate ourselves against errors in complex theorem proving procedures, we might ask for it to produce a proof term, which can be independently checked.

We also show another example application, which is the encoding of computations in a small imperative programming language. We will later increase the complexity of this language to handle more advanced construct.

Frank Pfenning fp@cs