Sequent Calculi and Abstract Machines
We propose a sequent calculus derived from the (lambda) over bar mu(mu) over tilde -calculus of Curien and Herbelin that is expressive enough to directly represent the fine details of program evaluation using typical abstract machines. Not only does the calculus easily encode the usual components of abstract machines such as environments and stacks, but it can also simulate the transition steps of the abstract machine with just a constant overhead. Technically this is achieved by ensuring that reduction in the calculus always happens at a bounded depth from the root of the term. We illustrate these properties by providing shallow encodings of the Krivine (call-by-name) and the CEK (call-by-value) abstract machines in the calculus.
languages theory curry-howard isomorphism duality explicit substitutions krivine machine natural deduction