Extensible Universes for Object-Oriented Data Models

We present a datatype package that enables the shallow embedding technique to object-oriented specification and programming languages. This datatype package incrementally compiles an object-oriented data model to a theory containing object-universes, constructors, accessors functions, coercions between dynamic and static types, characteristic sets, their relations reflecting inheritance, and the necessary class invariants. The package is conservative, i.e., all properties are derived entirely from axiomatic definitions. As an application, we use the package for an object-oriented core-language called imp++ , for which correctness of a Hoare-Logic with respect to an operational semantics is proven.

[1]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[2]  Burkhart Wolff,et al.  Verification of a Signature Architecture with HOL-Z , 2005, FM.

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

[4]  Martin Wirsing,et al.  Formal Syntax and Semantics of Java , 1999 .

[5]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[6]  Tobias Nipkow,et al.  Javalight is type-safe—definitely , 1998, POPL '98.

[7]  Lawrence C. Paulson,et al.  A fixedpoint approach to (co)inductive and (co)datatype definitions , 2000, Proof, Language, and Interaction.

[8]  Achim D. Brucker,et al.  HOL-OCL: A Formal Proof Environment for UML/OCL , 2008, FASE.

[9]  Achim D. Brucker An Interactive Proof Environment for Object-oriented Specifications , 2007 .

[10]  Ian J. Hayes,et al.  FM 2005: Formal Methods, International Symposium of Formal Methods Europe, Newcastle, UK, July 18-22, 2005, Proceedings , 2005, FM.

[11]  Claude Marché,et al.  Reasoning About Java Programs with Aliasing and Frame Conditions , 2005, TPHOLs.

[12]  Kim B. Bruce Some challenging typing issues in object-oriented languages , 2003, WOOD.

[13]  Matthias Felleisen,et al.  A Programmer's Reduction Semantics for Classes and Mixins , 1999, Formal Syntax and Semantics of Java.

[14]  Tobias Nipkow,et al.  HOLCF = HOL + LCF , 1999, Journal of Functional Programming.

[15]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[16]  Tobias Nipkow,et al.  Hoare Logic for NanoJava: Auxiliary Variables, Side Effects, and Virtual Methods Revisited , 2002, FME.

[17]  Achim D. Brucker,et al.  The HOL-OCL Book , 2006 .

[18]  Hartmut Ehrig Behaviour and Instantiation of High-Level Net Processes , 2003, Electron. Notes Theor. Comput. Sci..

[19]  Peter A. Lindsay,et al.  FME 2002:Formal Methods—Getting IT Right , 2002, Lecture Notes in Computer Science.

[20]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[21]  Florian Kammüller,et al.  Encoding Object-Z in Isabelle/HOL , 2002, ZB.

[22]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

[23]  Achim D. Brucker,et al.  HOL-Z 2.0: A Proof Environment for Z-Specifications , 2003, J. Univers. Comput. Sci..

[24]  Stephen Gilmore,et al.  Mobile Resource Guarantees for Smart Devices , 2004, CASSIS.

[25]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[26]  Jonathan P. Bowen,et al.  ZB 2002:Formal Specification and Development in Z and B , 2002, Lecture Notes in Computer Science.

[27]  Sophia Drossopoulou,et al.  Describing the Semantics of Java and Proving Type Soundness , 1999, Formal Syntax and Semantics of Java.

[28]  Gavin M. Bierman,et al.  Effects and effect inference for a core Java calculus , 2003, Electron. Notes Theor. Comput. Sci..

[29]  Thomas F. Melham A Package For Inductive Relation Definitions In HOL , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[30]  Achim D. Brucker,et al.  A Formal Proof Environment for uml/ocl , 2008 .

[31]  G. Winskel The formal semantics of programming languages , 1993 .

[32]  Wolfgang Naraschewski,et al.  Object-Oriented Verification Based on Record Subtyping in Higher-Order Logic , 1998, TPHOLs.

[33]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[34]  Tobias Nipkow,et al.  Winskel is (almost) Right: Towards a Mechanized Semantics Textbook , 1996, Formal Aspects of Computing.

[35]  Stefan Berghofer,et al.  Inductive Datatypes in HOL - Lessons Learned in Formal-Logic Engineering , 1999, TPHOLs.

[36]  K. Rustan M. Leino,et al.  Modular Verification of Static Class Invariants , 2005, FM.