PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
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
Generating structurally complex tests from declarative constraints
Generating structurally complex tests from declarative constraints
Modular verification of code with SAT
Proceedings of the 2006 international symposium on Software testing and analysis
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Inferring specifications to detect errors in code
Automated Software Engineering
Formal Modeling and Analysis of a Flash Filesystem in Alloy
ABZ '08 Proceedings of the 1st international conference on Abstract State Machines, B and Z
Reasoning about comprehensions with first-order SMT solvers
Proceedings of the 2009 ACM symposium on Applied Computing
Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
On Deciding Satisfiability by DPLL($\Gamma+{\mathcal T}$) and Unsound Theorem Proving
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Solving quantified verification conditions using satisfiability modulo theories
Annals of Mathematics and Artificial Intelligence
Decidable fragments of many-sorted logic
Journal of Symbolic Computation
A constraint solver for software engineering: finding models and cores of large relational specifications
Alloy analyzer+PVS in the analysis and verification of alloy specifications
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Sets with cardinality constraints in satisfiability modulo theories
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Translating alloy specifications to UML class diagrams annotated with OCL
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
A proof assistant for alloy specifications
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Unbounded data model verification using SMT solvers
Proceedings of the 27th IEEE/ACM International Conference on Automated 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
Data model property inference and repair
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Dynamite: A tool for the verification of alloy models based on PVS
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
This paper explores the idea of using a SAT Modulo Theories (SMT) solver for proving properties of relational specifications. The goal is to automatically establish or refute consistency of a set of constraints expressed in a first-order relational logic, namely Alloy, without limiting the analysis to a bounded scope. Existing analysis of relational constraints - as performed by the Alloy Analyzer - is based on SAT solving and thus requires finitizing the set of values that each relation can take. Our technique complements this approach by axiomatizing all relational operators in a first-order SMT logic, and taking advantage of the background theories supported by SMT solvers. Consequently, it can potentially prove that a formula is a tautology - a capability completely missing from the Alloy Analyzer - and generate a counterexample when the proof fails. We also report on our experiments of applying this technique to various systems specified in Alloy.