# 15-816 Linear Logic

## Assignment 6: Strictness Analysis

This homework consists of two exercises, 4.1 and 4.2. The latter did not appear at the end of Handout 11 on proof terms.

Exercise 4.1
Prove that if Gamma ; Delta |- M : A and Gamma ; Delta |- M : A' then A = A'. You do not need to show all cases, but you should show the necessary generalization of the induction hypothesis and a few critical cases.
Exercise 4.2
Design a lambda-calculus at the core of a functional language which makes strictness explict at the level of types. Your calculus should
• contain an unrestricted function type A -> B
• contain a strict function type A ->> B which requires that the argument is used at least once,
• contain a vacuous function type A --* B which requires that the argument is not used at all,
• contain a full complement of operators refining product and disjoint sum types as for the linear lambda-calculus,
• contain a modal operator to internalize the notion of unrestricted resource as in the linear lambda-calculus.
Your calculus should not contain quantifiers.
1. Show the introduction and elimination rules for all types, including their proof terms.
2. Give the reduction and expansions on the proof terms.
3. State (without proof) the valid substitution principles.
4. If possible, give a translation from types and terms in the strict lambda-calculus to types and terms in the linear lambda-calculus such that a strict lambda-term is well-typed if and only if its linear translation is well-typed (in an appropriately translated context).
5. Either sketch the correctness proof for your translation in each direction by giving the generalization (if necessary) and a few representative cases, or give an informal argument why such a translation is not possible.

[ home | schedule | assignments | languages | handouts | overview | links ]

Frank Pfenning
fp@cs