Show simple item record

dc.contributor.authorGross, Jason
dc.contributor.authorErbsen, Andres
dc.contributor.authorChlipala, Adam
dc.date.accessioned2021-11-04T19:19:42Z
dc.date.available2021-11-04T19:19:42Z
dc.date.issued2018
dc.identifier.issn0302-9743
dc.identifier.issn1611-3349
dc.identifier.urihttps://hdl.handle.net/1721.1/137403
dc.description.abstract© 2018, Springer International Publishing AG, part of Springer Nature. We present a new strategy for performing reification in Coq. That is, we show how to generate first-class abstract syntax trees from “native” terms of Coq’s logic, suitable as inputs to verified compilers or procedures in the proof-by-reflection style. Our new strategy, based on simple generalization of subterms as variables, is straightforward, short, and fast. In its pure form, it is only complete for constants and function applications, but “let” binders, eliminators, lambdas, and quantifiers can be accommodated through lightweight coding conventions or preprocessing. We survey the existing methods of reification across multiple Coq metaprogramming facilities, describing various design choices and tricks that can be used to speed them up, as well as various limitations. We report benchmarking results for 18 variants, in addition to our own, finding that our own reification outperforms 16 of these methods in all cases, and one additional method in some cases; writing an OCaml plugin is the only method tested to be faster. Our method is the most concise of the strategies we considered, reifying terms using only two to four lines of Ltac—beyond lists of the identifiers to reify and their reified variants. Additionally, our strategy automatically provides error messages that are no less helpful than Coq’s own error messages.en_US
dc.language.isoen
dc.publisherSpringer International Publishingen_US
dc.relation.isversionof10.1007/978-3-319-94821-8_17en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT web domainen_US
dc.titleReification by Parametricity: Fast Setup for Proof by Reflection, in Two Lines of Ltacen_US
dc.title.alternativeFast Setup for Proof by Reflection, in Two Lines of Ltacen_US
dc.typeArticleen_US
dc.identifier.citationGross, Jason, Erbsen, Andres and Chlipala, Adam. 2018. "Reification by Parametricity: Fast Setup for Proof by Reflection, in Two Lines of Ltac."
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/JournalArticleen_US
eprint.statushttp://purl.org/eprint/status/PeerRevieweden_US
dc.date.updated2019-05-13T17:56:37Z
dspace.date.submission2019-05-13T17:56:38Z
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record