## 15-816 Linear Logic |

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.

- Show the introduction and elimination rules for all types, including their proof terms.
- Give the reduction and expansions on the proof terms.
- State (without proof) the valid substitution principles.
- 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).
- 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.

Frank Pfenning fp@cs