Results 1 
9 of
9
Reasoning about Aliasing
 In The Fourth Australasian Refinement Workshop
, 1996
"... Objectoriented systems are typically structured as complex networks of interacting mutable objects. To reason about such systems, simple and efficient techniques for coping with aliasing are needed. This paper identifies several key criteria for evaluating techniques for reasoning about aliasing ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
Objectoriented systems are typically structured as complex networks of interacting mutable objects. To reason about such systems, simple and efficient techniques for coping with aliasing are needed. This paper identifies several key criteria for evaluating techniques for reasoning about aliasing, then proposes a technique which satisfies these criteria. The proposed technique is a simple extension of the traditional local store technique for modelling pointers. The increasing popularity of the objectoriented style of programming has resulted in a renewed interest in reasoning about aliasing. Aliasing is common in objectoriented systems, because they are typically structured as complex networks of interacting mutable objects. Simple and efficient techniques for coping with aliasing are a prerequisite to reasoning effectively about the behaviour of such systems. Techniques for reasoning about aliasing within data structures and aliasing between program variables were thorough...
The Underlying Logic of Hoare Logic
 IN CURRENT TRENDS IN THEORETICAL COMPUTER SCIENCE
, 1997
"... Formulas of Hoare logic are asserted programs # # # where # is a program and #, # are assertions. The language of programs varies; in the survey [Apt 1980], one finds the language of while programs and various extensions of it. But the assertions are traditionally expressed in firstorder logic ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Formulas of Hoare logic are asserted programs # # # where # is a program and #, # are assertions. The language of programs varies; in the survey [Apt 1980], one finds the language of while programs and various extensions of it. But the assertions are traditionally expressed in firstorder logic (or extensions of it). In that sense, firstorder logic is the underlying logic of Hoare logic. We question the tradition and demonstrate, on the simple example of while programs, that alternative assertion logics have some advantages. For some natural assertion logics, the expressivity hypothesis in Cook's completeness theorem is automatically satisfied.
A Mechanized Hoare Logic of State Transitions
, 1993
"... this paper selfcontained, a simplified version of the theory is outlined in 1.7. The general idea of mechanising Hoare logics by generating verification conditions and then feeding them to a theorem prover is standard [3, 5, 13]. The particular approach used here was originally developed for nonti ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
this paper selfcontained, a simplified version of the theory is outlined in 1.7. The general idea of mechanising Hoare logics by generating verification conditions and then feeding them to a theorem prover is standard [3, 5, 13]. The particular approach used here was originally developed for nontimed Hoare logics [4]. Verification conditions are described in 1.6. The main contribution of this paper is to make the use of STAs for reasoning about dataprocessing algorithms much easier by defining a Hoare logic on top of them. 1.3 Timed Hoare specifications
Hoare Logic in the Abstract
"... Abstract. We present an abstraction of Hoare logic to traced symmetric monoidal categories, a very general framework for the theory of systems. We first identify a particular class of functors – which we call ‘verification functors ’ – between traced symmetric monoidal categories and subcategories ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. We present an abstraction of Hoare logic to traced symmetric monoidal categories, a very general framework for the theory of systems. We first identify a particular class of functors – which we call ‘verification functors ’ – between traced symmetric monoidal categories and subcategories of Preord (the category of preordered sets and monotone mappings). We then give an abstract definition of Hoare triples, parametrised by a verification functor, and prove a single soundness and completeness theorem for such triples. In the particular case of the traced symmetric monoidal category of while programs we get back Hoare’s original rules. We discuss how our framework handles extensions of the Hoare logic for while programs, e.g. the extension with pointer manipulations via separation logic. Finally, we give an example of how our theory can be used in the development of new Hoare logics: we present a new sound and complete set of Hoarelogiclike rules for the verification of linear dynamical systems, modelled via stream circuits. 1
Process Algebra and Hoare's Logic
"... A Hoarelike logic is introduced for deriving `partial correctness assertions' of the form fffg p ffig, where ff; fi are unary predicates over some state space S and p is an expression over a recursive, nonuniform language containing global nondeterminism (+) and sequential composition (\Delta). T ..."
Abstract
 Add to MetaCart
A Hoarelike logic is introduced for deriving `partial correctness assertions' of the form fffg p ffig, where ff; fi are unary predicates over some state space S and p is an expression over a recursive, nonuniform language containing global nondeterminism (+) and sequential composition (\Delta). This logic is (relatively) complete if only guarded recursion is considered. Key Words & Phrases: process algebra, sideeffects, Hoare's logic, partial correctness assertions. 1985 Mathematical Subject Classification: 68Q55, 68Q60. 1980 Mathematical Subject Classification: 68B10, 68F20. 1982 CR Categories: D.3.1, F.3.1, F.3.2. Note: The author received full support from the European Communities under ESPRIT project no. 432, An Integrated Formal Approach to Industrial Software Development (METEOR). 1 Introduction We present an application of Hoare's logic, an axiomatic method for proving programs correct, in the field of process algebra. For a survey of Hoare's logic, see [1]. Process algeb...
Additional Key Words and Phrases: Stream circuits
"... This paper presents an abstraction of Hoare logic to traced symmetric monoidal categories, a very general framework for the theory of systems. Our abstraction is based on a traced monoidal functor from an arbitrary traced monoidal category into the category of preorders and monotone relations. We g ..."
Abstract
 Add to MetaCart
This paper presents an abstraction of Hoare logic to traced symmetric monoidal categories, a very general framework for the theory of systems. Our abstraction is based on a traced monoidal functor from an arbitrary traced monoidal category into the category of preorders and monotone relations. We give several examples of how our theory generalises usual Hoare logics (partial correctness of while programs, partial correctness of pointer programs), and provide some case studies on how it can be used to develop new Hoare logics (runtime analysis of while programs and stream circuits).
0429894. REGION LOGIC: LOCAL REASONING FOR JAVA PROGRAMS AND ITS AUTOMATION
, 2011
"... Shared mutable objects are a cornerstone of the objectoriented paradigm. The ability to share mutable data eliminates unnecessary cloning and gives rise to efficient data structures. Yet, formal reasoning about partial correctness of objectoriented programs is notoriously difficult due to the very ..."
Abstract
 Add to MetaCart
Shared mutable objects are a cornerstone of the objectoriented paradigm. The ability to share mutable data eliminates unnecessary cloning and gives rise to efficient data structures. Yet, formal reasoning about partial correctness of objectoriented programs is notoriously difficult due to the very same features, viz., sharing and mutable objects. The core problem is aliasing, and one of the contributions of this thesis is a program logic designed to control aliasing through explicit use of effects and disjointedness assertions. We propose a straightforward adaptation of Hoare logic to reason about (sequential) Java programs. The logic employs regions (sets of references) in a novel way, by using them in ghost state, effects and assertions. The aptly named—region logic—embodies “local reasoning ” as witnessed by separation logic, without resorting to nonstandard semantics or higherorder constructs. Region logic is formalized (and proven sound) with respect to a core subset of Java. Several illustrative examples including subject/observer and composite design patterns are specified and proven partially correct. The assertion language of region