Automating Derivations of Abstract Machines from Reduction Semantics: - A Generic Formalization of Refocusing in Coq

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.

[1]  Orna Grumberg,et al.  A game-based framework for CTL counterexamples and 3-valued abstraction-refinement , 2007, TOCL.

[2]  Olivier Danvy,et al.  A syntactic correspondence between context-sensitive calculi and abstract machines , 2005, Theor. Comput. Sci..

[3]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[4]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[5]  Amr Sabry,et al.  Lazy evaluation and delimited control , 2009, POPL '09.

[6]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[7]  Lasse R. Nielsen,et al.  Refocusing in Reduction Semantics , 2004 .

[8]  Olivier Danvy,et al.  Three Syntactic Theories for Combinatory Graph Reduction , 2010, LOPSTR.

[9]  Olivier Danvy,et al.  Defunctionalized Interpreters for Call-by-Need Evaluation , 2010, FLOPS.

[10]  Olivier Danvy From Reduction-Based to Reduction-Free Normalization , 2008, Advanced Functional Programming.

[11]  Olivier Danvy,et al.  Inter-deriving semantic artifacts for object-oriented programming , 2008, J. Comput. Syst. Sci..

[12]  Erich J. Neuhold,et al.  Formal description of programming concepts , 1991 .

[13]  Olivier Danvy,et al.  A concrete framework for environment machines , 2005, TOCL.

[14]  Jean-Louis Krivine,et al.  A call-by-name lambda-calculus machine , 2007, High. Order Symb. Comput..

[15]  Jacek Chrząszcz Implementing Modules in the Coq System , 2003, TPHOLs.

[16]  Philip Wadler XQuery: A Typed Functional Language for Querying XML , 2002, Advanced Functional Programming.

[17]  Olivier Danvy,et al.  A walk in the semantic park , 2011, PEPM '11.

[18]  Pierre-Louis Curien,et al.  An Abstract Framework for Environment Machines , 1991, Theor. Comput. Sci..

[19]  Olivier Danvy,et al.  On the equivalence between small-step and big-step abstract machines: a simple application of lightweight fusion , 2007, Inf. Process. Lett..

[20]  Dariusz Biernacki,et al.  Formalizing Constructions of Abstract Machines for Functional Languages in Coq , 2007 .

[21]  Jens Palsberg,et al.  Semantics and Algebraic Specification, Essays Dedicated to Peter D. Mosses on the Occasion of His 60th Birthday , 2009, Semantics and Algebraic Specification.

[22]  Matt Brown,et al.  Invited talk , 2007 .

[23]  Frank Wolter,et al.  Spatial logics with connectedness predicates , 2010, Log. Methods Comput. Sci..

[24]  Olivier Danvy,et al.  Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part II: Reduction Semantics and Abstract Machines , 2009, Semantics and Algebraic Specification.

[25]  Olivier Danvy Defunctionalized interpreters for programming languages , 2008, ICFP 2008.