The Suspension Calculus and its Relationship to Other Explicit Treatments of Substitution in Lambda Calculi

Abstract The intrinsic treatment of binding in the lambda calculus makes it an ideal data struc-ture for representing syntactic objects with binding such as formulas, proofs, types, andprograms. Supporting such a data structure in an implementation is made diﬃcult bythe complexity of the substitution operation relative to lambda terms. To remedy this,researchers have suggested representing the meta level substitution operation explicitly ina reﬁned treatment of the lambda calculus. The beneﬁt of an explicit representation is thatit allows for a ﬁne-grained control over the substitution process, leading also to the abilityto intermingle substitution with other operations on lambda terms. This insight has leadto the development of various explicit substitution calculi and to their exploitation in newalgorithms for operations such as higher-order uniﬁcation. Considerable care is needed,however, in designing explicit substitution calculi since within them the usually implicit op-erations related to substitution can interact in unexpected ways with notions of reductionfrom standard treatments of the lambda calculus.This thesis describes a particular realization of explicit substitutions known as the sus-pension calculus and shows that it has many properties that are useful in a computationalsetting. One signiﬁcant property is the ability to combine substitutions. An earlier versionof the suspension calculus has such an ability, but the complexity of the machinery realiz-ing it in a complete form has deterred its direct use in implementations. To overcome thisdrawback a derived version of the calculus had been developed and used in practice. Un-fortunately, the derived calculus sacriﬁces generality and loses a property that is importantfor new approaches to uniﬁcation. This thesis redresses this situation by presenting a mod-iﬁed form of the substitution combination mechanism that retains the generality and thecomputational properties of the original calculus while being simple enough to use directlyin implementations. These modiﬁcations also rationalize the structure of the calculus, mak-ing it possible to easily superimpose additional logical structure over it. We illustrate thiscapability by showing how typing in the lambda calculus can be treated in the resultingframework and by presenting a natural translation into the λσ-calculus, another well-knowntreatment of explicit substitutions.Another contribution of this thesis is a survey of the realm of explicit substitution calculi.In particular, we describe the computational properties that are desired in this settingand then characterize various calculi based on how well they capture these. We utilizethe simpliﬁed suspension calculus in this process. In particular, we describe translationsbetween the other popular calculi and the suspension calculus towards understanding andcontrasting their relative capabilities. Finally, we discuss an elusive property of explicitsubstitution calculi known as preservation of strong normalization and discuss why there ishope that the suspension calculus possesses this property.ii