## Files in this item

FilesDescriptionFormat

application/pdf

MOORE-DISSERTATION-2016.pdf (508kB)
(no description provided)PDF

## Description

 Title: Coinductive program verification Author(s): Moore, Brandon Michael Director of Research: Roşu, Grigore Doctoral Committee Chair(s): Roşu, Grigore Doctoral Committee Member(s): Gunter, Elsa L.; Meseguer, José; Chlipala, Adam Department / Program: Computer Science Discipline: Computer Science Degree Granting Institution: University of Illinois at Urbana-Champaign Degree: Ph.D. Genre: Dissertation Subject(s): Program Verification Coinduction Operational Semantics Formal Methods Software Verification Abstract: We present a program-verification approach based on coinduction, which makes it feasible to verify programs given an operational semantics of a programming language, without constructing intermediates like axiomatic semantics or verification-condition generators. Specifications can be written using any state predicates. The key observations are that being able to define the correctness of a style of program specification as a greatest fixpoint means coinduction can be used to conclude that a specification holds, and that the number of cases that need to be enumerated to have a coinductively provable specification can be reduced to a feasible number by using a generalized coinduction principle (based on notions of coinduction up to'' developed for proving bisimulation) instead of the simplest statement of coinduction. We implement our approach in Coq, producing a certifying language-independent verification framework. The soundness of the system is based on a single module proving the necessary coinduction theorem, which is imported unchanged to prove programs in any language. We demonstrate the power of this approach by verifying algorithms as complicated as Schorr-Waite graph marking, and the flexibility by instantiating it for language definitions covering several paradigms, and in several styles of semantics. We also demonstrate a comfortable level of proof automation for several languages and domains, using a common overall heuristic strategy instantiated with customized subroutines. Manual assistance is also smoothly integrated where automation is not completely successful. Issue Date: 2016-12-01 Type: Text URI: http://hdl.handle.net/2142/95372 Rights Information: Copyright 2016 Brandon Michael Moore Date Available in IDEALS: 2017-03-01 Date Deposited: 2016-12
﻿