@MISC{Mason94reasoningabout, author = {Ian Mason and Carolyn Talcott}, title = {Reasoning about Object Systems in VTLoE}, year = {1994} }
Bookmark
OpenURL
Abstract
VTLoE (Variable Type Logic of Effects) is a logic for reasoning about imperative functional programs inspired by the variable type systems of Feferman. The underlying programming language, mk , extends the call-by-value lambda calculus with primitives for arithmetic, pairing, branching, and reference cells (mutable data). In VTLoE one can reason about program equivalence and termination, input/output relations, program contexts, and inductively (and co-inductively) define data structures. In this paper we present a refinement of VTLoE. We then introduce a notion of object specification and establish formal principles for reasoning about object systems within VTLoE. Objects are self-contained entities with local state. The local state of an object can only be changed by action of that object in response to a message. In mk objects are represented as closures with mutable data bound to local variables. A semantic principle called simulation induction was introduced in our earlier wor...