dc.contributor.author | Milicevic, Aleksandar | |
dc.contributor.author | Near, Joseph Paul | |
dc.contributor.author | Kang, Eunsuk | |
dc.contributor.author | Jackson, Daniel | |
dc.date.accessioned | 2018-06-06T17:21:49Z | |
dc.date.available | 2018-06-06T17:21:49Z | |
dc.date.issued | 2015-08 | |
dc.date.submitted | 2015-05 | |
dc.identifier.isbn | 978-1-4799-1934-5 | |
dc.identifier.uri | http://hdl.handle.net/1721.1/116144 | |
dc.description.abstract | The last decade has seen a dramatic growth in the use of constraint solvers as a computational mechanism, not only for analysis 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. Just as the identification of first-order solvers as reusable backends advanced the performance of specialized tools and simplified their architecture, factoring out higher-order solvers may bring similar benefits to a new class of tools. | en_US |
dc.language.iso | en_US | |
dc.publisher | Institute of Electrical and Electronics Engineers (IEEE) | en_US |
dc.relation.isversionof | http://dx.doi.org/10.1109/ICSE.2015.77 | en_US |
dc.rights | Creative Commons Attribution-Noncommercial-Share Alike | en_US |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | en_US |
dc.source | MIT Web Domain | en_US |
dc.title | Alloy*: A General-Purpose Higher-Order Relational Constraint Solver | en_US |
dc.type | Article | en_US |
dc.identifier.citation | Milicevic, Aleksandar, et al. "Alloy*: A General-Purpose Higher-Order Relational Constraint Solver." 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE), 16-24 May, 2015, Florence, Italy, IEEE, 2015, pp. 609–19. | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | en_US |
dc.contributor.mitauthor | Milicevic, Aleksandar | |
dc.contributor.mitauthor | Near, Joseph Paul | |
dc.contributor.mitauthor | Kang, Eunsuk | |
dc.contributor.mitauthor | Jackson, Daniel | |
dc.relation.journal | 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering | en_US |
dc.eprint.version | Original manuscript | en_US |
dc.type.uri | http://purl.org/eprint/type/ConferencePaper | en_US |
eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
dspace.orderedauthors | Milicevic, Aleksandar; Near, Joseph P.; Kang, Eunsuk; Jackson, Daniel | en_US |
dspace.embargo.terms | N | en_US |
dc.identifier.orcid | https://orcid.org/0000-0002-0194-3989 | |
dc.identifier.orcid | https://orcid.org/0000-0003-4864-078X | |
mit.license | OPEN_ACCESS_POLICY | en_US |