Show simple item record

Alloy*: A Higher-Order Relational Constraint Solver

dc.date.accessioned2014-09-03T18:15:05Z
dc.date.accessioned2018-11-26T22:27:13Z
dc.date.available2014-09-03T18:15:05Z
dc.date.available2018-11-26T22:27:13Z
dc.date.issued2014-09-02
dc.identifier.urihttp://hdl.handle.net/1721.1/89157
dc.identifier.urihttp://repository.aust.edu.ng/xmlui/handle/1721.1/89157
dc.description.abstractThe last decade has seen a dramatic growth in the use of constraint solvers as a computational mechanism, not only for analysis and synthesis of software, but also at runtime. Solvers are available for a variety of logics but are generally restricted to first-order formulas. Some tasks, however, most notably those involving synthesis, are inherently higher order; these are typically handled by embedding a first-order solver (such as a SAT or SMT solver) in a domain-specific algorithm. Using strategies similar to those used in such algorithms, we show how to extend a first-order solver (in this case Kodkod, a model finder for relational logic used as the engine of the Alloy Analyzer) so that it can handle quantifications over higher-order structures. The resulting solver is sufficiently general that it can be applied to a range of problems; it is higher order, so that it can be applied directly, without embedding in another algorithm; and it performs well enough to be competitive with specialized tools on standard benchmarks. Although the approach is demonstrated for a particular relational logic, the principles behind it could be applied to other first-order solvers. Just as the identification of first-order solvers as reusable backends advanced the performance of specialized tools and simplified their architecture, factoring out higher-ordersolvers may bring similar benefits to a new class of tools.en_US
dc.format.extent15 p.en_US
dc.titleAlloy*: A Higher-Order Relational Constraint Solveren_US


Files in this item

FilesSizeFormatView
MIT-CSAIL-TR-2014-018.pdf645.4Kbapplication/pdfView/Open

This item appears in the following Collection(s)

Show simple item record