Results 11  20
of
61
Weakest Precondition Reasoning for Java Programs with JML Annotations
 Journal of Logic and Algebraic Programming
, 2002
"... This paper distinguishes several different approaches to organising a Weakest Precondition (WP) calculus in a theorem prover. The implementation of two of these approaches for Java within the LOOP project is described. This involves the WPinfrastructures in the higher order logic of the theorem pro ..."
Abstract

Cited by 24 (2 self)
 Add to MetaCart
(Show Context)
This paper distinguishes several different approaches to organising a Weakest Precondition (WP) calculus in a theorem prover. The implementation of two of these approaches for Java within the LOOP project is described. This involves the WPinfrastructures in the higher order logic of the theorem prover PVS, together with some associated rules and strategies for automatically proving JML specifications for Java implementations. The soundness of all WPrules has been proven on the basis of the underlying Java semantics. These WPcalculi are integrated with the existing Hoare logic, and together form a verification toolkit in PVS: typically one uses Hoare logic rules to break a large verification task up into smaller parts that can be handled automatically by one of the WPstrategies.
Trustworthy Tools for Trustworthy Programs: A Verified Verification Condition Generator
, 1994
"... Verification Condition Generator (VCG) tools have been effective in simplifying the task of proving programs correct. However, in the past these VCG tools have in general not themselves been mechanically proven, so any proof using and depending on these VCGs might have contained errors. In our w ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
Verification Condition Generator (VCG) tools have been effective in simplifying the task of proving programs correct. However, in the past these VCG tools have in general not themselves been mechanically proven, so any proof using and depending on these VCGs might have contained errors. In our work, we define and rigorously prove correct a VCG tool within the HOL theorem proving system, for a standard whileloop language, with one new feature not usually treated: expressions with side effects. Starting from a structural operational semantics of this programming language, we prove as theorems the axioms and rules of inference of a Hoarestyle axiomatic semantics, verifying their soundness. This axiomatic semantics is then used to define and prove correct a VCG tool for this language. Finally, this verified VCG is applied to an example program to verify its correctness.
Verified JustInTime Compiler on x86
"... This paper presents a method for creating formally correct justintime (JIT) compilers. The tractability of our approach is demonstrated through, what we believe is the first, verification of a JIT compiler with respect to a realistic semantics of selfmodifying x86 machine code. Our semantics inclu ..."
Abstract

Cited by 23 (5 self)
 Add to MetaCart
(Show Context)
This paper presents a method for creating formally correct justintime (JIT) compilers. The tractability of our approach is demonstrated through, what we believe is the first, verification of a JIT compiler with respect to a realistic semantics of selfmodifying x86 machine code. Our semantics includes a model of the instruction cache. Two versions of the verified JIT compiler are presented: one generates all of the machine code at once, the other one is incremental i.e. produces code ondemand. All proofs have been performed inside the HOL4 theorem prover.
A Case Study in Class Library Verification: Java's Vector Class
, 1999
"... One of the reasons for the popularity of objectoriented programming is the possibility it offers for reuse of code. Usually, the distribution of an objectoriented programming language comes together with a collection of readytouse classes, in a class library. Typically, these classes contain gen ..."
Abstract

Cited by 23 (6 self)
 Add to MetaCart
One of the reasons for the popularity of objectoriented programming is the possibility it offers for reuse of code. Usually, the distribution of an objectoriented programming language comes together with a collection of readytouse classes, in a class library. Typically, these classes contain general purpose code, which can be used in many applications. Before using such classes, a programmer usually wants to know how they behave and when their methods throw exceptions. One way to do this, is to study the actual code, but since this is timeconsuming and requires understanding all particular ins and outs of the implementation, this is often not the most efficient way. Another approach is to study the documentation provided. As long as the documentation is clear and concise, this works well, but otherwise one still is forced to look at the actual code.
Reasoning about Java classes
 OOPSLA’98, ACM SIGPLAN Notices
, 1998
"... We present the first results of a project called LOOP, on formal methods for the objectoriented language Java. It aims at verification of program properties, with support of modern tools. We use our own frontend tool (which is still partly under construction) for translating Java classes into logi ..."
Abstract

Cited by 20 (0 self)
 Add to MetaCart
We present the first results of a project called LOOP, on formal methods for the objectoriented language Java. It aims at verification of program properties, with support of modern tools. We use our own frontend tool (which is still partly under construction) for translating Java classes into logic, and a backend theorem prover (namely PVS, developed at SRI) for reasoning. In several examples we will demonstrate how nontrivial properties of Java programs and classes can be proved following this twostep approach.
Auxiliary Variables and Recursive Procedures
 In TAPSOFT '97, volume 1214 of LNCS
, 1997
"... Much research in axiomatic semantics suffers from a lack of formality. In particular, most proposed verification calculi for imperative programs dealing with recursive procedures are known to be unsound or incomplete. Focussing on total correctness, we present a new consequence rule which yields a s ..."
Abstract

Cited by 19 (0 self)
 Add to MetaCart
(Show Context)
Much research in axiomatic semantics suffers from a lack of formality. In particular, most proposed verification calculi for imperative programs dealing with recursive procedures are known to be unsound or incomplete. Focussing on total correctness, we present a new consequence rule which yields a sound and complete Hoarestyle calculus in the presence of parameterless recursive procedures. Both, the standard consequence and an improved rule of adaptation are instances of our new rule. This work has been developed under the auspices of the computeraided proof system Lego. The rigorous treatment of auxiliary variables has been crucial for establishing our results. A comparison with VDM reinforces our view that auxiliary variables deserve to be treated seriously.
An abstract dynamic semantics for C
 Computer Laboratory, University of Cambridge
, 1997
"... This report is a presentation of a formal semantics for the C programming language. The semantics has been defined operationally in a structured semantics style and covers the bulk of the core of the language. ..."
Abstract

Cited by 19 (1 self)
 Add to MetaCart
(Show Context)
This report is a presentation of a formal semantics for the C programming language. The semantics has been defined operationally in a structured semantics style and covers the bulk of the core of the language.
A Natural Deduction Approach to Dynamic Logic
 Proceedings of TYPES'95, LNCS 1158
, 1996
"... . Natural Deduction style presentations of program logics are useful in view of the implementation of such logics in interactive proof development environments, based on type theory, such as LEGO, Coq, etc. In fact, NDstyle systems are the kind of systems which can take best advantage of the possib ..."
Abstract

Cited by 17 (7 self)
 Add to MetaCart
(Show Context)
. Natural Deduction style presentations of program logics are useful in view of the implementation of such logics in interactive proof development environments, based on type theory, such as LEGO, Coq, etc. In fact, NDstyle systems are the kind of systems which can take best advantage of the possibility of reasoning "under assumptions" o#ered by proof assistants generated by Logical Frameworks. In this paper we introduce and discuss sound and complete proof systems in Natural Deduction style for representing various "truth" consequence relations of Dynamic Logic. We discuss the design decisions which lead to adequate encodings of these logics in Coq. We derive in Dynamic Logic a set of rules representing a NDstyle system for Hoare Logic.
A Mechanized Theory of the picalculus in HOL
, 1992
"... : The ßcalculus is a process algebra for modelling concurrent systems in which the pattern of communication between processes may change over time. This paper describes the results of preliminary work on a definitional formal theory of the ßcalculus in higher order logic using the HOL theorem prov ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
: The ßcalculus is a process algebra for modelling concurrent systems in which the pattern of communication between processes may change over time. This paper describes the results of preliminary work on a definitional formal theory of the ßcalculus in higher order logic using the HOL theorem prover. The ultimate goal of this work is to provide practical mechanized support for reasoning with the ßcalculus about applications. Introduction The ßcalculus [17, 18] is a process algebra proposed by Milner, Parrow and Walker for modelling concurrent systems in which the pattern of interconnection between processes may change over time. This paper describes work on a mechanized formal theory of the ßcalculus in higher order logic using the HOL theorem prover [8]. The main aim of this work is to construct a practical and sound theoremproving tool to support reasoning about applications using the ßcalculus, as well as metatheoretic reasoning about the ßcalculus itself. Four general prin...