Parallel Bounded Verification of Alloy Models by TranScoping
Bounded verification is a technique associated with the Alloy specification language that allows one to analyze Alloy software models by looking for counterexamples of intended properties, under the assumption that data type domains are restricted in size by a provided bound (called the scope of the analysis). The absence of errors in the analyzed models is relative to the provided scope, so achieving verifiability in larger scopes is necessary in order to provide higher confidence in model correctness. Unfortunately, analysis time usually grows exponentially as the scope is increased. A technique that helps in scaling up bounded verification is parallelization. However, the performance of parallel bounded verification greatly depends on the particular strategy used for partitioning the original analysis problem, which in the context of Alloy is a boolean satisfiability problem. In this article we present a novel technique called tranScoping, which aims at improving the scalability of bounded exhaustive analysis by using information mined at smaller scopes to guide decision making at larger ones. In its application to parallel analysis, tranScoping compares different ways to split an Alloy-borne SAT problem at small scopes, and extrapolates this information to select an adequate partitioning criterion for larger scopes. As our experiments show, tranScoping allows us to find suitable criteria that extend the tractability barrier, and in particular leads to successful analysis of models on scopes that have been elusive for years.
KeywordsAlloy Analyzer Parallel analysis Bounded verification Parallel SAT-solving
Unable to display preview. Download preview PDF.
- 1.Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996)Google Scholar
- 4.Chrabakh, W., Wolski, R.: GrADSAT: A Parallel SAT Solver for the Grid. In: UCSB Computer Science Technical Report Number 2003-05Google Scholar
- 6.MPI2: A Message Passing Interface Standard. Message Passing Interface Forum, High Performance Computing Applications 12, 1–2, 1–299 (1998)Google Scholar
- 7.Dalcin, L., Paz, R., Storti, M., D’Elia, J.: MPI for Python: Performance improvements and MPI-2 extensions. J. Parallel Distrib. Comput. 68(5), 655–662Google Scholar
- 9.Davies, J., Woodcock, J.: Using Z: Specification, Refinement and Proof. International Series in Computer Science. Prentice Hall (1996)Google Scholar
- 10.Dennis, G., Chang, F., Jackson, D.: Modular Verification of Code with SAT. In: ISSTA 2006, pp. 109–120 (2006)Google Scholar
- 11.Galeotti, J.P., Rosner, N., Pombo, C.L., Frias, M.F.: Analysis of invariants for efficient bounded verification. In: ISSTA 2010, pp. 25–36 (2010)Google Scholar
- 13.Jackson, D., Schechter, I., Shlyakhter, I.: Alcoa: the alloy constraint analyzer. In: Proceedings of ICSE 2000, Limerick, Ireland (2000)Google Scholar
- 14.Jackson, D.: Software Abstractions. MIT Press (2006)Google Scholar
- 20.Shao, D., Gopinath, D., Khurshid, S., Perry, D.: Optimizing Incremental Scope-Bounded Checking with Data-Flow Analysis. In: ISSRE 2010, pp. 408–417 (2010)Google Scholar
- 22.Sperberg-McQueen, C.M.: Alloy version of XPath 1.0 data model, http://www.blackmesatech.com/2010/01/xpath10.als
- 23.World Wide Web Consortium (W3C), XML Path Language (XPath) Version 1.0, W3C Recommendation (November 16, 1999)Google Scholar