Model checking and abstraction
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Computing Surveys (CSUR)
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
Verifying Temporal Properties of Reactive Systems: A STeP Tutorial
Formal Methods in System Design
Finding bugs with a constraint solver
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Alloy: a lightweight object modelling notation
ACM Transactions on Software Engineering and Methodology (TOSEM)
Counter-Example Based Predicate Discovery in Predicate Abstraction
FMCAD '02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Successive Approximation of Abstract Transition Relations
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Inferring Specifications to Detect Errors in Code
Proceedings of the 19th IEEE international conference on Automated software engineering
DynAlloy: upgrading alloy with actions
Proceedings of the 27th international conference on Software engineering
Reasoning about static and dynamic properties in alloy: A purely relational approach
ACM Transactions on Software Engineering and Methodology (TOSEM)
UML-B: Formal modeling and design aided by UML
ACM Transactions on Software Engineering and Methodology (TOSEM)
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
Saturn: A scalable framework for error detection using Boolean satisfiability
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Efficient Analysis of DynAlloy Specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
LTSA-MSC: tool support for behaviour model elaboration using implied scenarios
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Formalizing the UML class diagram using object-Z
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
Hi-index | 0.00 |
DynAlloy is an extension of the Alloy language to better describe state change via actions and programs, in the style of dynamic logic. In this paper, we report on our experience in trying to provide abstraction based mechanisms for improving DynAlloy specifications with respect to SAT based analysis. The technique we employ is based on predicate abstraction, but due to the context in which we make use of it, is subject to the following more specific improvements: (i)since DynAlloy's analysis consists of checking partial correctness assertions against programs, we are only interested in the initial and final states of a computation, and therefore we can safely abstract away some intermediate states in the computation (generally, this kind of abstraction cannot be safely applied in model checking), (ii)since DynAlloy's analysis is inherently bounded, we can safely rely on the sole use of a SAT solver for producing the abstractions, and (iii)since DynAlloy's basic operational unit is the atomic action, which can be used in different parts within a program, we can reuse the abstraction of an action in different parts of a program, which can accelerate the convergence in checking valid properties.We present the technique via a case study based on a translation of a JML annotated Java program into DynAlloy, accompanied by some preliminary experimental results showing some of the benefits of the technique.