Journal of Logic and Computation Advance Access originally published online on August 2, 2008
Journal of Logic and Computation 2009 19(1):17-43; doi:10.1093/logcom/exn026
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
This article appears in the following Journal of Logic and Computation issue: Special Issue: Logic and Computation in the Real World: CiE 2007 [View the issue table of contents]
Original Articles |
RZ: a Tool for Bringing Constructive and Computable Mathematics Closer to Programming Practice
Faculty of Mathematics and Physics, University of Ljubljana, Ljubljana, Slovenia
E-mail: Andrej.Bauer{at}fmf.uni-lj.si
Computer Science Department, Harvey Mudd College, Claremont, CA, USA
E-mail: stone{at}cs.hmc.edu
Received 29 September 2007.
| Abstract |
|---|
Realizability theory is not just a fundamental tool in logic and computability. It also has direct application to the design and implementation of programs, since it can produce code interfaces for the data structure corresponding to a mathematical theory. Our tool, called RZ, serves as a bridge between the worlds of constructive mathematics and programming. By using the realizability interpretation of constructive mathematics, RZ translates specifications in constructive logic into annotated interface code in Objective Caml. The system supports a rich input language allowing descriptions of complex mathematical structures. RZ does not extract code from proofs, but allows any implementation method, from handwritten code to code extracted from proofs by other tools.