In linear lambda calculus, you must use each bound variable exactly once in a term. A term with a single bound variable is a full binary tree of applications in which one of the leaves is the bound variable, so it makes sense to ask, “which leaf?”

Three combinators are universal for the free linear lambda calculus on a countable set of types. In the description below, means “ applied to ” Note the position of the term in each case:

identity



cut



braid



A full binary tree of applications is either a leaf or an application of a left subtree to a right subtree. says that this leaf is the variable in question; says that the variable is in the right subtree; and says it’s in the left subtree. So, for example, in the linear lambda term

appears in the left subtree, so applying abstraction elimination once gives

Now is on the right; eliminating again in the bracketed term gives

Now is on the left; eliminating again in the bracketed term gives

And finally, we replace with

to get a term with no bound occurrences of The “I-terminated” list of combinators we added, in this case tells us exactly where in the tree the variable appeared.

In the (nonlinear) lambda calculus, the variable may appear in either branch or not at all. The and combinators are a universal basis for this calculus, and can be interpreted as

the variable may appear in either subtree, since

the variable may appear in either subtree, since the variable does not appear in this subtree, since

the variable does not appear in this subtree, since this leaf is a copy of the variable, since