Annotations for alloy: automated incremental analysis using domain specific solvers

  • Authors:
  • Svetoslav Ganov;Sarfraz Khurshid;Dewayne E. Perry

  • Affiliations:
  • Electrical and Computer Engineering, University of Texas at Austin, Austin, TX;Electrical and Computer Engineering, University of Texas at Austin, Austin, TX;Electrical and Computer Engineering, University of Texas at Austin, Austin, TX

  • Venue:
  • ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Alloy is a declarative modeling language based on first-order logic with sets and relations. Alloy problems are analyzed fully automatically by the Alloy Analyzer. The analyzer translates a problem for given bounds to a propositional formula for which it searches a satisfying assignment via an off-the-shelf propositional satisfiability (SAT) solver. Hence, the performed analysis is a bounded exhaustive search and increasing the bounds leads to a combinatorial explosion. We increase the efficiency of the Alloy Analyzer by performing incremental analysis via domain specific solvers. We introduce annotations that define data types, operations on these data types, and bindings from data types to domain specific solvers. This meta-data is utilized to automatically partition a problem into sub-problems and opportunistically solve independent sub-problems in parallel using dedicated constraint solvers. We integrate dedicated Integer and String constraint solvers into Alloy's SAT based backend. Experimental results show that using dedicated solvers and exploiting independent sub-problems provide better efficiency and scalability; for the chosen subjects, our technique enables up to an order of magnitude speed-up.