## 15-816 Linear Logic |

This homework consists of two exercises. One is mandatory, the other is optional.

- Exercise: 1
- linear (every bound variable occurs exactly once);
- affine (every bound variable occurs at most once);
- relevant (every bound variable occurs at least once).
- Exercise 2: (extra credit)

Write a linear Twelf program to determine if a purely functional Mini-ML expression, (see course notes [under preparation]) is recursion-free and at the same time

Since only one branch in a case statement will be taken during evaluation, a bound variable must occur exactly once in each branch in a linear expression, may occur at most once in each branch in an affine expression, and must occur at least once in each branch in a relevant expression.

Define your judgments and rules, the representation function into LLF, show adequacy, and program your solution in linear Twelf.

Extend your solution from Exercise 1 to full Mini-ML with references. Expressions assigned to reference cells cannot contain free variables for any of the three properties to hold.

Carsten Schuermann carsten@cs.cmu.edu