## A package for extensible object-oriented data models with an application to imp (2006)

Venue: | SVV 2006, Computing Research Repository |

Citations: | 9 - 6 self |

### BibTeX

@INPROCEEDINGS{Brucker06apackage,

author = {Achim D. Brucker and Burkhart Wolff},

title = {A package for extensible object-oriented data models with an application to imp},

booktitle = {SVV 2006, Computing Research Repository},

year = {2006}

}

### OpenURL

### Abstract

with an Application to IMP++

### Citations

795 |
Isabelle/HOL: A Proof Assistant for Higher-Order Logic, volume 2283
- Nipkow, Paulson, et al.
- 2002
(Show Context)
Citation Context ...apply this datatype-package for a small imperative language with OO features and show the 2s2 Formal and Technical Background soundness of a Hoare calculus. 2 Formal and Technical Background Isabelle =-=[18]-=- is a generic, LCF-style theorem prover implemented in SML. For our object-oriented datatype package, we use the possibility to build SML programs performing symbolic computations over formulae in a l... |

486 | The spec# programming system: An overview
- Barnett, Leino, et al.
- 2004
(Show Context)
Citation Context ...th subtyping and references can be categorized as: 1) pre-compilation into standard logic, and 2) deep embeddings into a meta-logic. As precompilation tools, for example, we consider Boogie for Spec# =-=[2, 11]-=- and several based on the Java Modeling Language (JML) such as Krakatoa [12]. The underlying idea is to compile OO programs into standard imperative ones and to apply a verification condition generato... |

319 |
Introduction to Mathematical Logic and Type Theory: To Truth through Proof
- Andrews
- 2002
(Show Context)
Citation Context ...upport for checks for conservatism of definitions, datatypes, primitive and well-founded recursion, and powerful generic proof engines based on rewriting and tableau provers. Higher-order logic (HOL) =-=[1]-=- is a classical logic with equality enriched by total polymorphic higher-order functions. It is more expressive than first-order logic, e.g., induction schemes can be expressed inside the logic. HOL i... |

249 |
The formal semantics of programming languages
- Winskel
- 1993
(Show Context)
Citation Context ...culi for denotational, operational and axiomatic semantics can be derived in a standard exercise. In particular, we show that proof-work as well as usability is fairly similar to previous work on IMP =-=[24, 17]-=-, but notably easier than traditional work based on deep embeddings for OO languages since binding and typing are internalized. The small language follows deliberately the standard presentation of IMP... |

97 | A programmer’s reduction semantics for classes and mixins. Formal Syntax and Semantics of Java - Flatt, Krishnamurthi, et al. - 1999 |

55 | Winskel is (almost) right: Towards a mechanized semantics textbook
- Nipkow
- 1996
(Show Context)
Citation Context ...culi for denotational, operational and axiomatic semantics can be derived in a standard exercise. In particular, we show that proof-work as well as usability is fairly similar to previous work on IMP =-=[24, 17]-=-, but notably easier than traditional work based on deep embeddings for OO languages since binding and typing are internalized. The small language follows deliberately the standard presentation of IMP... |

53 | Java Program Verification at Nijmegen: Developments and Perspective
- Jacobs, Poll
- 2004
(Show Context)
Citation Context ...ott's reflexive domains. Not really a package, merely a library construction, it helps to reflect the type constructor classes in Haskell-like languages. The underlying encoding used by the loop tool =-=[10]-=- and Jive [14] shares same basic ideas with respect to the object model. However, the overall construction based on a closed world assumption and thus, not extensible. The support for class invariants... |

45 | Inductive datatypes in HOL—lessons learned in formal-logic engineering
- Berghofer, Wenzel
(Show Context)
Citation Context ... X. \Phi self fifi self [Node] 2 (NodeKindF o/ (* o. o[Node]) 8 X)) ^ * * * \Psiswhere the . . . stand for the constraints specific to the subclass and 8 denotes the pointwise application. Similar to =-=[4]-=- we can handle mutual-recursive datatype definitions by encoding them into a type sum. However, we already have a suitable type sum together with the needed injections and projections, namely our univ... |

38 | Object-oriented verification based on record subtyping in higher-order logic
- Naraschewski, Wenzel
- 1998
(Show Context)
Citation Context ..., the idea of using parametric polymorphism is partly folklore in HOL research communities; for example, extensible records and their application for some form of subtyping has been described in HOOL =-=[16]-=-. Since only ff-extensions are used, this results in a restricted form of class types with no coercion mechanism to ff Object. Datatype packages have been considered mostly in the context of HOL or fu... |

36 |
The HOL-OCL book
- Brucker, Wolff
- 2006
(Show Context)
Citation Context ... references) will be resolved by accessor functions like A.left for a given state; an access failure will be reported by ?. Details of the accessor function definition process are described elsewhere =-=[6]-=-. In principle, a class is a Cartesian products of its attribute types extended by an abstract type ensuring uniqueness. Definition 2 (Tag Types) For each class C a tag type t 2 T is associated. The s... |

34 |
An architecture for interactive program provers
- Meyer, Poetzsch-Heffter
- 2000
(Show Context)
Citation Context ...e domains. Not really a package, merely a library construction, it helps to reflect the type constructor classes in Haskell-like languages. The underlying encoding used by the loop tool [10] and Jive =-=[14]-=- shares same basic ideas with respect to the object model. However, the overall construction based on a closed world assumption and thus, not extensible. The support for class invariants is either ful... |

30 | A package for inductive relation definitions in HOL
- Melham
- 1991
(Show Context)
Citation Context ...h no coercion mechanism to ff Object. Datatype packages have been considered mostly in the context of HOL or functional programming languages. Going back to ideas of Milner in the 70ies, systems like =-=[13, 4]-=- build over a S-expression like term universe (co)-inductive sets which are abstracted to (freely generated) datatypes. Paulsons inductive package [21] also uses subsets of the ZF set universe i. Rece... |

25 | Modular verification of static class invariants
- Leino, Müller
(Show Context)
Citation Context ...th subtyping and references can be categorized as: 1) pre-compilation into standard logic, and 2) deep embeddings into a meta-logic. As precompilation tools, for example, we consider Boogie for Spec# =-=[2, 11]-=- and several based on the Java Modeling Language (JML) such as Krakatoa [12]. The underlying idea is to compile OO programs into standard imperative ones and to apply a verification condition generato... |

22 | A fixedpoint approach to (co)inductive and (co)datatype definitions
- Paulson
(Show Context)
Citation Context ...to ideas of Milner in the 70ies, systems like [13, 4] build over a S-expression like term universe (co)-inductive sets which are abstracted to (freely generated) datatypes. Paulsons inductive package =-=[21]-=- also uses subsets of the ZF set universe i. Recently, Huffman et al [9] suggest a universe construction based on Scott’s reflexive domains. Not really a package, merely a library construction, it hel... |

21 | Hoare logic for NanoJava: auxiliary variables, side effects and virtual methods revisited
- Oheimb, Nipkow
- 2002
(Show Context)
Citation Context ...e verification generator with respect to this calculus. 1s1 Introduction Among the tools based on deep embeddings, there is a sizable body of literature on formal models of Java-like languages (e.g., =-=[7, 8, 19, 23]-=-). In a deep embedding of a language semantics, syntax and types are represented by free datatypes. As a consequence, derived calculi inherit a heavy syntactic bias in form of side-conditions over bin... |

16 | Axiomatic constructor classes in Isabelle/HOLCF
- Huffman, Matthews, et al.
- 2005
(Show Context)
Citation Context ...ession like term universe (co)-inductive sets which are abstracted to (freely generated) datatypes. Paulsons inductive package [21] also uses subsets of the ZF set universe i. Recently, Huffman et al =-=[9]-=- suggest a universe construction based on Scott's reflexive domains. Not really a package, merely a library construction, it helps to reflect the type constructor classes in Haskell-like languages. Th... |

15 |
2.0: A proof environment for Z-specifications
- HOL-Z
- 2003
(Show Context)
Citation Context ...llow embedding technique has been used for semantic representations such as HOL itself (in Isabelle/Pure), for HOLCF (in Isabelle/HOL) allowing reasoning over Haskell-like programs [15] or, for HOL-Z =-=[5]-=-. These embeddings have been used for substantial applications [3]. The essence of a shallow embedding is to represent object-language binding and typing directly in the binding and typing machinery o... |

13 |
Reasoning about java programs with aliasing and frame conditions
- Marché, Paulin-Mohring
(Show Context)
Citation Context ...dard logic, and 2) deep embeddings into a meta-logic. As precompilation tools, for example, we consider Boogie for Spec# [2, 11] and several based on the Java Modeling Language (JML) such as Krakatoa =-=[12]-=-. The underlying idea is to compile OO programs into standard imperative ones and to apply a verification condition generator on the latter. While technically sometimes very advanced, the foundation o... |

13 | Encoding Object-Z in Isabelle/HOL
- Smith, Kammüller, et al.
- 2002
(Show Context)
Citation Context ...s is below 2 minutes on recent hardware. 6.1 Related Work Work on OO semantics based on deep embeddings has been discussed earlier. For shallow embeddings, to the best of our knowledge, there is only =-=[22]-=-. In this approach, however, emphasis is put on a universal type for the method table of a class. This results in local "universes" for input and output types of methods and the need for reasoning on ... |

5 |
von Oheimb, D.: Javaℓight is type-safe—definitely
- Nipkow
- 1998
(Show Context)
Citation Context ...e verification generator with respect to this calculus. 1s1 Introduction Among the tools based on deep embeddings, there is a sizable body of literature on formal models of Java-like languages (e.g., =-=[7, 8, 19, 23]-=-). In a deep embedding of a language semantics, syntax and types are represented by free datatypes. As a consequence, derived calculi inherit a heavy syntactic bias in form of side-conditions over bin... |

4 | Verification of a signature architecture with HOL-Z
- Basin, Kuruma, et al.
- 2005
(Show Context)
Citation Context ...s such as HOL itself (in Isabelle/Pure), for HOLCF (in Isabelle/HOL) allowing reasoning over Haskell-like programs [15] or, for HOL-Z [5]. These embeddings have been used for substantial applications =-=[3]-=-. The essence of a shallow embedding is to represent object-language binding and typing directly in the binding and typing machinery of the meta-language. Thus, many side-conditions are simply unneces... |

2 |
Oheimb. Java`ight is type-safe--definitely
- Nipkow, von
- 1998
(Show Context)
Citation Context ...e verification generator with respect to this calculus. 1s1 Introduction Among the tools based on deep embeddings, there is a sizable body of literature on formal models of Java-like languages (e.g., =-=[7, 8, 19, 23]-=-). In a deep embedding of a language semantics, syntax and types are represented by free datatypes. As a consequence, derived calculi inherit a heavy syntactic bias in form of side-conditions over bin... |

1 |
OMG Unified Modeling Language Specification. 2003. [21
- Paulson
- 2000
(Show Context)
Citation Context ...ning the presented definitions, the package proves that our encoding of object-structures is a faithful representation of OO (e.g., in the sense of language like Java or Smalltalk or the UML standard =-=[20]-=-). These theorems are proven for each class, e.g., during loading a specific UML model. This is similar to other datatype packages in interactive theorem provers. Further, these theorems are also a pr... |