Temporal Verification Theories for Java-like Classes

We consider Java-like object types equipped with assertions as in recent proposals and implementations. The first issue that we consider is the formal notion of an object-oriented type extended with logicbased constraints along with the notions of inheritance and substitutability for such extended types. The second issue is a suitable logic for explicitly expressing properties of sequences of object states, particular cases of which appear for mutator methods in Java-related and other object-oriented assertion languages. The third issue is a suitable prover technology and the required techniques for verifying properties of object types extended with logic-based constraints. We present our solution for these problems based on the view of object types as temporal theories along with a model theory and the required verification techniques. The temporal logic-based approach makes it possible to reason about properties of sequences of object states which allows verification of behavioral subtyping requirements that are based on history properties.

[1]  Gary T. Leavens,et al.  Design by Contract with JML , 2006 .

[2]  Joseph A. Goguen,et al.  Types as theories , 1991 .

[3]  Martín Abadi,et al.  A Logic of Object-Oriented Programs , 1997, Verification: Theory and Practice.

[4]  Gary T. Leavens,et al.  The Behavior-Realization Adjunction and Generalized Homomorphic Relations , 1997, Theor. Comput. Sci..

[5]  Gary T. Leavens,et al.  Concepts of behavioral subtyping and a sketch of their extension to component-based systems , 2000 .

[6]  Hendrik Tews,et al.  Reasoning about Java Classes (Preliminary Report) , 1998, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[7]  Véronique Benzaken,et al.  Static Integrity Constraint Management in Object-Oriented Database Programming Languages via Predicate Transformers , 1997, ECOOP.

[8]  G. Leavens,et al.  Equational Reasoning with Subtypes , 2002 .

[9]  Suad Alagic,et al.  Semantics of Temporal Classes , 2000, Inf. Comput..

[10]  Greg Nelson,et al.  Extended static checking for Java , 2002, PLDI '02.

[11]  Suad Alagic,et al.  Behavioral Compatibility of Self-Typed Theories , 2002, ECOOP.

[12]  Suad Alagic,et al.  Orthogonal to the Java Imperative , 1998, ECOOP.

[13]  Erik Poll,et al.  A Coalgebraic Semantics of Subtyping , 2001, RAIRO Theor. Informatics Appl..

[14]  Gary T. Leavens,et al.  How the design of JML accommodates both runtime assertion checking and formal verification , 2003, Sci. Comput. Program..

[15]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[16]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[17]  Florent Kirchner,et al.  Coq Tacticals and PVS Strategies: A Small Step Semantics , 2003 .

[18]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.

[19]  Myla Archer,et al.  Developing User Strategies in PVS: A Tutorial , 2003 .

[20]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[21]  Gary T. Leavens,et al.  A complete algebraic characterization of behavioral subtyping , 2000, Acta Informatica.

[22]  Bart Jacobs,et al.  Objects and Classes, Co-Algebraically , 1995, Object Orientation with Parallelism and Persistence.

[23]  Amir Pnueli,et al.  TLPVS: A PVS-Based LTL Verification System , 2003, Verification: Theory and Practice.

[24]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[25]  Mara Alagic,et al.  Order-Sorted Model Theory for Temporal Executable Specifications , 1997, Theor. Comput. Sci..

[26]  Suad Alagic,et al.  Consistency of Java Transactions , 2003, DBPL.

[27]  Will Tracz,et al.  An implementation-oriented semantics for module composition , 2000 .