Introduction to algorithms
Alcoa: the alloy constraint analyzer
Proceedings of the 22nd international conference on Software engineering
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
Combining strengths of circuit-based and CNF-based algorithms for a high-performance SAT solver
Proceedings of the 39th annual Design Automation Conference
The Quest for Efficient Boolean Satisfiability Solvers
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
ICSE '81 Proceedings of the 5th international conference on Software engineering
Declarative symbolic pure-logic model checking
Declarative symbolic pure-logic model checking
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Constraint-Based Verification
Kato: A Program Slicing Tool for Declarative Specifications
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Kodkod: a relational model finder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Optimizations for compiling declarative models into boolean formulas
SAT'05 Proceedings of the 8th international conference on Theory and Applications of Satisfiability Testing
A Modeling Language for Program Design and Synthesis
Advances in Software Engineering
Annotations for alloy: automated incremental analysis using domain specific solvers
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Hi-index | 0.00 |
The declarative modeling language Alloy and its automatic analyzer provide an effective tool-set for building designs of systems and checking their properties. The Alloy Analyzer performs bounded exhaustive analysis using off-the-shelf SAT solvers. The analyzer's performance hinges on the complexity of the models and so far, its feasibility has been shown only within limited bounds. We present a novel optimization technique that defines program slicing for declarative models and enables efficient analyses exploiting partial solutions. We present an algorithm that computes transient slices for Alloy models by partitioning them into a base and a derived slice. A satisfying solution to the base slice is systematically extended to generate a solution for the entire model, while unsatisfiability of the base implies unsatisfiability of the entire model.By generating slices, our approach enables constraint prioritization, where the base slice assumes higher priority than the derived slice. Compared to the complete model, base and derived slices represent smaller and, ideally, simpler sub-problems, which, in turn, enables efficient analyses for the underlying SAT solvers. Our approach analyzes the structure of a given model and constructs a set of candidate slicing criteria. Our prototype tool, Kato, performs a small-scope analysis for each criterion to determine whether declarative slicing optimization provides any performance gain and, if so, to select a criterion that is likely to provide an optimal performance enhancement. The experimental results show that, with declarative slicing, it is possible to achieve significant improvements compared to the Alloy Analyzer.