Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant

Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant

Thumbnail Image
Download
Name

Chlipala_Fiat Deductive.pdf

Size

433.23 KB

Format

Unknown

Checksum (MD5)

33183a1e3479e28e8de5ea6a6bbe7c61

Author(s)
Delaware, Benjamin James
•
Pit-Claudel, Clément
•
Gross, Jason S.
•
Chlipala, Adam
Date Issued
January 2015
Journal
Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015
Publisher
Association for Computing Machinery
Citation
Delaware, Benjamin, Clément Pit-Claudel, Jason Gross, and Adam Chlipala. "Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant." POPL 2015: 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Tata Institute of Fundamental Research, Mumbai, India, January 12-18, 2015.
Version
Author's final manuscript
Abstract
We present Fiat, a library for the Coq proof assistant supporting refinement of declarative specifications into efficient functional programs with a high degree of automation. Each refinement process leaves a proof trail, checkable by the normal Coq kernel, justifying its soundness. We focus on the synthesis of abstract data types that package methods with private data. We demonstrate the utility of our framework by applying it to the synthesis of query structures--abstract data types with SQL-like query and insert operations. Fiat includes a library for writing specifications of query structures in SQL-inspired notation, expressing operations over relations (tables) in terms of mathematical sets. This library includes a suite of tactics for automating the refinement of specifications into efficient, correct- by-construction OCaml code. Using these tactics, a programmer can generate such an implementation completely automatically by only specifying the equivalent of SQL indexes, data structures capturing useful views of the abstract data. Throughout we speculate on the new programming modularity possibilities enabled by an automated refinement system with proved-correct rules. “Every block of stone has a statue inside it and it is the task of the sculptor to discover it.”--Michelangelo
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
http://creativecommons.org/licenses/by-nc-sa/4.0/
Persistent DSpace Link
https://hdl.handle.net/1721.1/91993.2
DOI of Published Version
http://popl.mpi-sws.org/2015/program.html
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.