Skip to main content

Data-driven inference of representation invariants

Author(s): Miltner, Anders; Padhi, Saswat; Millstein, Todd; Walker, David

Download
To refer to this page use: http://arks.princeton.edu/ark:/88435/pr11z65
Full metadata record
DC FieldValueLanguage
dc.contributor.authorMiltner, Anders-
dc.contributor.authorPadhi, Saswat-
dc.contributor.authorMillstein, Todd-
dc.contributor.authorWalker, David-
dc.date.accessioned2021-10-08T19:47:49Z-
dc.date.available2021-10-08T19:47:49Z-
dc.date.issued2020-06en_US
dc.identifier.citationMiltner, Anders, Saswat Padhi, Todd Millstein, and David Walker. "Data-driven inference of representation invariants." In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (2020): pp. 1-15. doi:10.1145/3385412.3385967en_US
dc.identifier.urihttps://arxiv.org/pdf/2003.12106.pdf-
dc.identifier.urihttp://arks.princeton.edu/ark:/88435/pr11z65-
dc.description.abstractA representation invariant is a property that holds of all values of abstract type produced by a module. Representation invariants play important roles in software engineering and program verification. In this paper, we develop a counterexample-driven algorithm for inferring a representation invariant that is sufficient to imply a desired specification for a module. The key novelty is a type-directed notion of visible inductiveness, which ensures that the algorithm makes progress toward its goal as it alternates between weakening and strengthening candidate invariants. The algorithm is parameterized by an example-based synthesis engine and a verifier, and we prove that it is sound and complete for first-order modules over finite types, assuming that the synthesizer and verifier are as well. We implement these ideas in a tool called Hanoi, which synthesizes representation invariants for recursive data types. Hanoi not only handles invariants for first-order code, but higher-order code as well. In its back end, Hanoi uses an enumerative synthesizer called Myth and an enumerative testing tool as a verifier. Because Hanoi uses testing for verification, it is not sound, though our empirical evaluation shows that it is successful on the benchmarks we investigated.en_US
dc.format.extent1 - 15en_US
dc.language.isoen_USen_US
dc.relation.ispartofProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementationen_US
dc.rightsAuthor's manuscripten_US
dc.titleData-driven inference of representation invariantsen_US
dc.typeConference Articleen_US
dc.identifier.doi10.1145/3385412.3385967-
pu.type.symplectichttp://www.symplectic.co.uk/publications/atom-terms/1.0/conference-proceedingen_US

Files in This Item:
File Description SizeFormat 
DataDrivenInferenceRepresentationInvariants.pdf1.11 MBAdobe PDFView/Download


Items in OAR@Princeton are protected by copyright, with all rights reserved, unless otherwise indicated.