Working Towards the Verified Software Process
Main Author: | |
---|---|
Language: | English |
Published: |
The Ohio State University / OhioLINK
2010
|
Subjects: | |
Online Access: | http://rave.ohiolink.edu/etdc/view?acc_num=osu1293463269 |
id |
ndltd-OhioLink-oai-etd.ohiolink.edu-osu1293463269 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-OhioLink-oai-etd.ohiolink.edu-osu12934632692021-08-03T06:01:15Z Working Towards the Verified Software Process Adcock, Bruce M. Computer Science Software engineering software verification automated theorem prover lazy copying Resolve debugging <p>Numerous pieces of the software verification puzzle need to fit together in order to achieve that vision. First, there must be a programming language that gives some hope of specifying and implementing verifiable code ("assertive code"). Second, there needs to be a correct procedure for generating verification conditions (VCs) from this assertive code. Third, there must be one or more automated theorem provers to process the VCs and determine their validity or invalidity. Finally, it is essential that there is an interface for programmers to write their code and verify or debug it without forcing them to understand how particular automated theorem provers work. This dissertation covers the latter two of these topics using the Resolve language and verification framework.</p><p>A common failing of most automated verification techniques is the inability to be truly automatic in all circumstances. Experience with proof assistants shows that they need to be "nudged" in the correct direction by an intervening human, in all but the simplest cases. Otherwise, the option is to use tools not geared to handle the rich mathematics used in the Resolve programming language. By using specialized decision procedures that take into account the known structure of the generated VCs, we strive to accomplish one of two possibilities for each VC: first, we hope to prove it outright; otherwise, we hope to simplify the VC to such an extent that another prover is able to handle it. We detail work on SplitDecision, a tool that simplifies VCs for Resolve. We further explain work that has helped to ensure SplitDecision is among the fastest and least memory intensive automated provers available, by introducing "lazy copying" to Resolve/C++ (in which SplitDecision is written), with specific work to maintain the value semantics integral to Resolve's design.</p><p>Sometimes (perhaps this is even the modal case) at least one VC is not proved because it is not valid. It is clear that the ways we present errors and debug code must be rethought in a verified software paradigm. This area of research has received little attention to date, so we lay out criteria for how to approach debugging, along with potential methods of doing so.</p> 2010 English text The Ohio State University / OhioLINK http://rave.ohiolink.edu/etdc/view?acc_num=osu1293463269 http://rave.ohiolink.edu/etdc/view?acc_num=osu1293463269 unrestricted This thesis or dissertation is protected by copyright: all rights reserved. It may not be copied or redistributed beyond the terms of applicable copyright laws. |
collection |
NDLTD |
language |
English |
sources |
NDLTD |
topic |
Computer Science Software engineering software verification automated theorem prover lazy copying Resolve debugging |
spellingShingle |
Computer Science Software engineering software verification automated theorem prover lazy copying Resolve debugging Adcock, Bruce M. Working Towards the Verified Software Process |
author |
Adcock, Bruce M. |
author_facet |
Adcock, Bruce M. |
author_sort |
Adcock, Bruce M. |
title |
Working Towards the Verified Software Process |
title_short |
Working Towards the Verified Software Process |
title_full |
Working Towards the Verified Software Process |
title_fullStr |
Working Towards the Verified Software Process |
title_full_unstemmed |
Working Towards the Verified Software Process |
title_sort |
working towards the verified software process |
publisher |
The Ohio State University / OhioLINK |
publishDate |
2010 |
url |
http://rave.ohiolink.edu/etdc/view?acc_num=osu1293463269 |
work_keys_str_mv |
AT adcockbrucem workingtowardstheverifiedsoftwareprocess |
_version_ |
1719429526602121216 |