|
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.
- 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.
[ home
| schedule
| assignments
| languages
| handouts
| overview
| links
]
Frank Pfenning
fp@cs