Automating derivations of abstract machines from reduction semantics: a generic formalization of refocusing in Coq

  • Authors:
  • Filip Sieczkowski;Małlgorzata Biernacka;Dariusz Biernacki

  • Affiliations:
  • Institute of Computer Science, University of Wrocław;Institute of Computer Science, University of Wrocław;Institute of Computer Science, University of Wrocław

  • Venue:
  • IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a generic formalization of the refocusing transformation for functional languages in the Coq proof assistant. The refocusing technique, due to Danvy and Nielsen, allows for mechanical transformation of an evaluator implementing a reduction semantics into an equivalent abstract machine via a succession of simple program transformations. So far, refocusing has been used only as an informal procedure: the conditions required of a reduction semantics have not been formally captured, and the transformation has not been formally proved correct. The aim of this work is to formalize and prove correct the refocusing technique. To this end, we first propose an axiomatization of reduction semantics that is sufficient to automatically apply the refocusing method. Next, we prove that any reduction semantics conforming to this axiomatization can be automatically transformed into an abstract machine equivalent to it. The article is accompanied by a Coq development that contains the formalization of the refocusing method and a number of case studies that serve both as an illustration of the method and as a sanity check on the axiomatization.