%%% Expression representation using de Bruijn indices %%% Author: Frank Pfenning, based on [Hannan & Pfenning 92] exp' : type. %name exp' F. 1 : exp'. ^ : exp' -> exp'. %postfix 20 ^. z' : exp'. s' : exp' -> exp'. case' : exp' -> exp' -> exp' -> exp'. pair' : exp' -> exp' -> exp'. fst' : exp' -> exp'. snd' : exp' -> exp'. lam' : exp' -> exp'. app' : exp' -> exp' -> exp'. letv' : exp' -> exp' -> exp'. letn' : exp' -> exp' -> exp'. fix' : exp' -> exp'. % Environments and values env : type. %name env K. val : type. %name val W. empty : env. ; : env -> val -> env. %infix left 10 ;. + : env -> exp' -> env. %infix left 10 +. z* : val. s* : val -> val. pair* : val -> val -> val. clo : env -> exp' -> val.