688 research outputs found
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
Verification Conditions are Code
This paper presents a new theoretical result concerning Hoare Logic. It is shown here that the verification conditions which support a Hoare Logic program derivation are themselves sufficient to construct a correct implementation of the given pre-, post- condition specification. This property is mainly of theoretical interest, though it is possible that it may have some practical use, for example if predicative programming methodology is adopted. The result is shown to hold for both the original, partial correctness, Hoare logic, and also a variant for total correctness derivations
Formal verification of AI software
The application of formal verification techniques to Artificial Intelligence (AI) software, particularly expert systems, is investigated. Constraint satisfaction and model inversion are identified as two formal specification paradigms for different classes of expert systems. A formal definition of consistency is developed, and the notion of approximate semantics is introduced. Examples are given of how these ideas can be applied in both declarative and imperative forms
A Hoare-like logic of asserted single-pass instruction sequences
We present a formal system for proving the partial correctness of a
single-pass instruction sequence as considered in program algebra by
decomposition into proofs of the partial correctness of segments of the
single-pass instruction sequence concerned. The system is similar to Hoare
logics, but takes into account that, by the presence of jump instructions,
segments of single-pass instruction sequences may have multiple entry points
and multiple exit points. It is intended to support a sound general
understanding of the issues with Hoare-like logics for low-level programming
languages.Comment: 22 pages, the preliminaries have textual overlaps with the
preliminaries in arXiv:1402.4950 [cs.LO] and earlier papers; introduction and
conclusions rewritten, explanatory remarks added; introduction partly
rewritten; 24 pages, clarifying examples adde
Investigation, Development, and Evaluation of Performance Proving for Fault-tolerant Computers
A number of methodologies for verifying systems and computer based tools that assist users in verifying their systems were developed. These tools were applied to verify in part the SIFT ultrareliable aircraft computer. Topics covered included: STP theorem prover; design verification of SIFT; high level language code verification; assembly language level verification; numerical algorithm verification; verification of flight control programs; and verification of hardware logic
Meta SOS - A Maude Based SOS Meta-Theory Framework
Meta SOS is a software framework designed to integrate the results from the
meta-theory of structural operational semantics (SOS). These results include
deriving semantic properties of language constructs just by syntactically
analyzing their rule-based definition, as well as automatically deriving sound
and ground-complete axiomatizations for languages, when considering a notion of
behavioural equivalence. This paper describes the Meta SOS framework by
blending aspects from the meta-theory of SOS, details on their implementation
in Maude, and running examples.Comment: In Proceedings EXPRESS/SOS 2013, arXiv:1307.690
Featherweight VeriFast
VeriFast is a leading research prototype tool for the sound modular
verification of safety and correctness properties of single-threaded and
multithreaded C and Java programs. It has been used as a vehicle for
exploration and validation of novel program verification techniques and for
industrial case studies; it has served well at a number of program verification
competitions; and it has been used for teaching by multiple teachers
independent of the authors. However, until now, while VeriFast's operation has
been described informally in a number of publications, and specific
verification techniques have been formalized, a clear and precise exposition of
how VeriFast works has not yet appeared. In this article we present for the
first time a formal definition and soundness proof of a core subset of the
VeriFast program verification approach. The exposition aims to be both
accessible and rigorous: the text is based on lecture notes for a graduate
course on program verification, and it is backed by an executable
machine-readable definition and machine-checked soundness proof in Coq
- ā¦