USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow

Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software. This thesis presents USIMPL, a component of the Orca project for formal verification that builds on Fosters...

Full description

Bibliographic Details
Main Author: Bockenek, Joshua A.
Other Authors: Electrical and Computer Engineering, Ravindran, Binoy, Lammich, Peter, Broadwater, Robert P.
Format: Thesis
Language:English
Published: Virginia Tech 2017
Subjects:
Online Access:http://hdl.handle.net/10919/81710
Description
Summary:Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software. This thesis presents USIMPL, a component of the Orca project for formal verification that builds on Fosters Isabelle/UTP with features of Schirmers Simpl in order to achieve a modular, scalable framework for deductive proofs of program correctness utilizing Hoare logic and Hoare-style algebraic laws of programming. Master of Science Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software (OSes, compilers, and similar programs that have a high level of complexity but work on a lower level than typical user applications such as text editors, image viewers, and the like). This thesis presents USIMPL, a component of the Orca project for formal verification that builds on an existing framework for computer-aided, deductive mathematical proofs (Fosters Isabelle/UTP) with features inspired by a simple but featureful language used for verification (Schirmers Simpl) in order to achieve a modular, scalable framework for proofs of program correctness utilizing the rule-based mathematical representation of program behavior known as Hoare logic and Hoare-style algebraic laws of programming, which provide a formal methodology for transforming programs to equivalent formulations.