A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS
IEEE Transactions on Software Engineering
Toward reliable modular programs
Toward reliable modular programs
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Understanding Object-Oriented Programming Using Java
Understanding Object-Oriented Programming Using Java
The Java Programming Language
Java Program Verification via a Hoare Logic with Abrupt Termination
FASE '00 Proceedings of the Third Internationsl Conference on Fundamental Approaches to Software Engineering: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
Machine-Checking the Java Specification: Proving Type-Safety
Formal Syntax and Semantics of Java
Formal Syntax and Semantics of Java
A Type-Theoretic Memory Model for Verification of Sequential Java Programs
WADT '99 Selected papers from the 14th International Workshop on Recent Trends in Algebraic Development Techniques
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
Formal Specification and Verification of JavaCard's Application Identifier Class
JavaCard '00 Revised Papers from the First International Workshop on Java on Smart Cards: Programming and Security
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
The Larch Family of Specification Languages
IEEE Software
Ownership confinement ensures representation independence for object-oriented programs
Journal of the ACM (JACM)
POSIX file store in Z/Eves: An experiment in the verified software repository
Science of Computer Programming
A refinement method for Java programs
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Proving theorems about JML classes
Formal methods and hybrid real-time systems
Automatic inference of abstract type behavior
Proceedings of the IEEE/ACM international conference on Automated software engineering
Hi-index | 0.00 |
This paper presents the specification and (modular) verification of Java's AbstractCollection class. This work is done as a case study within the LOOP project (at the university of Nijmegen). It is the first major verification within the project using the theorem prover Isabelle. The class AbstractCollection is automatically translated into a series of Isabelle theories. The specifications, written in the Java Modeling Language (JML), give rise to appropriate proof obligations. The paper explains how the specifications are constructed and verified. When working on this case study, it became clear that there is a problem that is not documented in the informal documentation: when a collection contains a reference to itself it has unexpected behaviour. It is discussed how the specifications are adapted to overcome this problem.