ECAI '92 Proceedings of the 10th European conference on Artificial intelligence
Fast planning through planning graph analysis
Artificial Intelligence
Lackwit: a program understanding tool based on type inference
ICSE '97 Proceedings of the 19th international conference on Software engineering
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Isomorph-free model enumeration: a new method for checking relational specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
AnnoDomini: from type theory to Year 2000 conversion tool
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Should your specification language be typed
ACM Transactions on Programming Languages and Systems (TOPLAS)
Model checking
Automating first-order relational logic
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Symbolic Model Checking
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Exploring the Design of an Intentional Naming Scheme with an Automatic Constraint Analyzer
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
BerkMin: A Fast and Robust Sat-Solver
Proceedings of the conference on Design, automation and test in Europe
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Automatic SAT-compilation of planning problems
IJCAI'97 Proceedings of the Fifteenth international joint conference on Artifical intelligence - Volume 2
Checking properties of heap-manipulating procedures with a constraint solver
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
An Abstract Equivalence Notion for Object Models
Electronic Notes in Theoretical Computer Science (ENTCS)
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
Hi-index | 0.00 |
Constraints in predicate or relational logic can be translated into boolean logic and solved with a SAT solver. For faster solving, it is common to exploit the typing of predicates or relations, in order to reduce the number of boolean variables needed to encode the constraint. Here we show how to extend this idea to constraints expressed in a language with subtyping. Our technique, called atomization, refactors the type hierarchy into a flat collection of disjoint atomic types. The constraints are then decomposed into equivalent constraints involving smaller relations or predicates over these new types, which can then be solved in the normal fashion. Experiments with an implementation of this technique within the Alloy Analyzer show improved performance on practical software checking problems.