2006-05-03
Validation Techniques for Object-oriented Proof Outlines
Publication
Publication
This thesis presents a proof outline logic for a simple object-oriented programming language. The language has all object-oriented features of popular programming languages like Java and C#. In particular, it supports inheritance, field shadowing, aliasing, dynamic object creation, subtype polymorphism, and dynamic binding. The logic consists of techniques that validate proof outlines of programs written in this language. An important part of the logic is a novel adaptation rule for reasoning about method calls. The logic is both sound and (relatively) complete. A separate chapter in this thesis describes how the proof outline logic can be transformed into a modular logic that is suitable for open programs. This modular logic is based on behavioral subtyping. It uses a novel specification match to determine valid behavioral subtypes. Other contributions in this chapter are an object-oriented completeness notion for modular program logics and an analysis of several advanced specification constructs. Another chapter studies a class of invariants that are falsifiable by object creation. It introduces creation guards to obtain a modular methodology that protects these invariants. The last chapter of this thesis describes a tool that implements the proof outline logic. It automatically computes the remaining proof obligations by means of the validation techniques presented in this thesis. Moreover, it uses a theorem prover to check these proof obligations
Additional Metadata | |
---|---|
, , | |
, | |
J.-J.C. Meyer (John-Jules) | |
Universiteit Utrecht | |
Pierik, C. (2006, May 3). Validation Techniques for Object-oriented Proof Outlines. |