Abstract
Formal methods are a key to engineering more reliable systems. In this paper, we focus on an important application of formal methods — enumerating solutions to logical formulas that encode properties of interest. Solution enumeration has many uses, e.g., in systematic software testing, model counting, or hardware analysis. We introduce solution enumeration abstraction, a novel idiom that allows users to define data abstractions to enhance solution enumeration by specifying how the solutions must differ, so enumeration creates a high quality set of solutions of a manageable size. We embody the idiom as a technique built on top of Alloy, a well-known lightweight formal method, which is comprised of a first-order relational logic with transitive closure, and a SAT-based analysis engine. Experimental results show that our technique supports a variety of data abstractions, and can substantially reduce the number of solutions enumerated and the time to enumerate them.
Cite
CITATION STYLE
Sullivan, A., Marinov, D., & Khurshid, S. (2019). Solution Enumeration Abstraction: A Modeling Idiom to Enhance a Lightweight Formal Method. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 11852 LNCS, pp. 336–352). Springer. https://doi.org/10.1007/978-3-030-32409-4_21
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.