SUBSEXPL

We present the system SUBSEXPL used for simulating and comparing explicit substitutions calculi. The system allows the manipulation of expressions of the $\lambda$-calculus and of three different styles of explicit substitutions: the $\lambda\sigma$, the $\lambda s_e$ and the suspension calculus. A variation of the suspension calculus, which allows for combination of steps of $\beta$-contraction is included too. Implementations of the $\eta$-reduction are provided for each style. Other explicit substitutions calculi can be easily incorporated into the system due to its modular structure. The uses of the system include: the visualization of the contractions of the $\lambda$-calculus in de Bruijn notation, and of guided one-step reductions as well as normalization via each of the associated substitution calculi. Many useful facilities are included: reductions can be easily recorded as text files, LaTeX outputs can be generated and several examples for dealing with arithmetic operations and computational operators such as conditionals and repetitions in the $\lambda$-calculus are available.\parThe system can be executed over Emacs using the $x$-symbol mode in such a way that $\lambda$-terms and terms of the explicit substitutions calculi are represented in its natural syntax avoiding the necessity of repeatedly generating LaTeX outputs. The system has been of great help for systematically comparing explicit substitutions calculi, as well as for understanding properties of explicit substitutions such as the Preservation of Strong Normalization. In addition, it has been used for teaching basic properties of the $\lambda$-calculus such as: computational adequacy, the usefulness of de Bruijn’s notation and of making explicit substitutions in real implementations.

Keywords for this software

Anything in here will be replaced on browsers that support the canvas element