Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Introduction to Algorithms
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
A case study of specification and verification using JML in an avionics application
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Generating unit tests from formal proofs
TAP'07 Proceedings of the 1st international conference on Tests and proofs
White-box testing by combining deduction-based specification extraction and black-box testing
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
A theorem proving approach to analysis of secure information flow
SPC'05 Proceedings of the Second international conference on Security in Pervasive Computing
Simplifying transformations of OCL constraints
MoDELS'05 Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems
Predicate Abstraction in a Program Logic Calculus
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Predicate abstraction in a program logic calculus
Science of Computer Programming
Hi-index | 0.00 |
This paper is a tutorial on performing formal specification and semi-automatic verification of Java programs with the formal software development tool KeY. This tutorial aims to fill the gap between elementary introductions using toy examples and state-of-art case studies by going through a self-contained, yet non-trivial, example. It is hoped that this contributes to explain the problems encountered in verification of imperative, object-oriented programs to a readership outside the limited community of active researchers.