Data Definitions in ACL2 Sedan
Authors: Harsh Raju Chamarthi, Peter Dillinger and Panagiotis Manolios
Paper Information
| Title: | Data Definitions in ACL2 Sedan |
| Authors: | Harsh Raju Chamarthi, Peter Dillinger and Panagiotis Manolios |
| Proceedings: | ACL2 2014 Proceedings |
| Editors: | Freek Verbeek and Julien Schmaltz |
| Keywords: | type framework, automation, pedagogy, polymorphism, test data generation, enumerators |
| Abstract: | ABSTRACT. We present a data definition framework that supports a wide variety of specifying (classifying) ``new'' data types from existing types. A distinguishing feature of our approach is that we maintain both a analytic (recognizer/predicate function) and synthetic (enumerator function) characterization of a data definition. We describe the syntax and semantics of our interfacing macros (\p{defdata} et al). The \p{defdata} language concisely captures common data definition patterns, e.g. list types, map types, record types, and installs theories raising the level of automation for reasoning about such types (and associated functions). It also provides support for polymorphic functions, by using the advanced ACL2 features of \p{encapsulate} and functional instantiation, without exposing them to the user. We give a complete characterization (in terms of tau-rules) of the inclusion/exclusion relations a \p{defdata} type definition induces. We present a number of examples illustrating usage of \p{defdata}. The data definition framework has been implemented as a component of counterexample generation support in ACL2 Sedan, but can be independently used, and is available, as a community book. |
| Pages: | 22 |
| Talk: | Jul 12 11:45 |
| Paper: | ![]() |
