15-816 Linear Logic
Lecture 15: Linear Lambda-Calculus

In this lecture we switch from logic programming to functional programming. Since our logic is constructive, proofs can be seen as constructions. For example, a proof of A -o B can be seen as a plan for achieving goal B from resource A. To find concise notations for such plans we introduce the linear lambda-calculus.

In the linear lambda-calculus, computation arises from reduction rather than from proof search. It can therefore serve as the basis for a functional programming language. On the other hand, linearity introduces state into the computational model, so we will be interested in capturing some imperative features as well in the upcoming lectures.

From a judgmental point of view, proof terms arise by the transformation of a synthetic judgment into an analytic one. A synthetic judgment requires external evidence; an analytic judgment can be seen to be evident by examining its constituents. For this to hold, proof terms must carry enough information to reconstruct a proof.

[ Home | Schedule | Assignments | Handouts | Software | Resources ]

Frank Pfenning