15-816 Linear Logic
Lecture 18: Polynomial Time Computation
The affine lambda-calculus differs from the linear lambda-calculus in
that affine hypotheses need not be used. Its rules and properties are
closely related to the linear lambda-calculus.
In this lecture we show how to exploit affine lambda-calculus in order
to restrict our system of primitive recursive functionals so that every
definable function can be computed in polynomial time. Closely related
systems have been developed by Hofmann and by Bellantoni, Niggl, and
Schwichtenberg. Moreover, the system also has the property that every
polynomial time function can be represented in it. Note that no
explicit arithmetic reasoning is required: the characterization
is purely structural, achieved by natural typing conditions.
However, some caution should be applied in interpreting this
result. Even though every polynomial time function is representable,
not every polynomial time algorithm can be written out naturally
and be type-checked in our system.