Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Introduction to algorithms
Alcoa: the alloy constraint analyzer
Proceedings of the 22nd international conference on Software engineering
Combining strengths of circuit-based and CNF-based algorithms for a high-performance SAT solver
Proceedings of the 39th annual Design Automation Conference
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
Optimizations for compiling declarative models into boolean formulas
SAT'05 Proceedings of the 8th international conference on Theory and Applications of Satisfiability Testing
Finding bugs efficiently with a SAT solver
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Constraint Prioritization for Efficient Analysis of Declarative Models
FM '08 Proceedings of the 15th international symposium on Formal Methods
Verification-driven slicing of UML/OCL models
Proceedings of the IEEE/ACM international conference on Automated software engineering
Hi-index | 0.00 |
This paper presents Kato, a tool that implements a novel class of optimizations that are inspired by program slicing for imperative languages but are applicable to analyzable declarative languages, such as Alloy. Kato implements a novel algorithm for slicing declarative models written in Alloy and leverages its relational engine KodKod for analysis. Given an Alloy model, Kato identifies a slice representing the model's core: a satisfying instance for the core can systematically be extended into a satisfying instance for the entire model, while unsatisfiability of the core implies unsatisfiability of the entire model. The experimental results show that for a variety of subject models Kato's slicing algorithm enables an order of magnitude speed-up over Alloy's default translation to SAT.