DocumentCode
1590220
Title
The Specification, Verification, and Implementation of a High-Assurance Data Structure: An ACL2 Approach
Author
Hardin, David S.
fYear
2013
Firstpage
5059
Lastpage
5067
Abstract
We present a complete specification and formal verification of a high-assurance data structure, namely an array-based set (or alternatively, a multiset), of arbitrary size, using the ACL2 theorem prover. This particular data structure is a sanitized version of one that was used in a high-assurance development at Rockwell Collins. We additionally demonstrate how this high-assurance specification can be readily translated to an implementation in a traditional, imperative programming language. The specification is accomplished via the ACL2 single-threaded object (stobj) formulation, as the stobj yields the most straightforward translation to traditional programming language implementations, as well as high-performance, scalable executable specifications within the ACL2 system itself. Use of the stobj is known to present certain difficulties in proof development, but we describe a simple means to access the underlying representation of the stobj, which makes reasoning much more straightforward. We discuss characteristics of ACL2 that aided the proofs, as well as ones that presented challenges. We also compare the ACL2 proof results with other verification efforts previously attempted on this data structure using model checking and symbolic execution.
Keywords
Arrays; Computational modeling; Computer languages; Data models; Indexes; Sparks; ACL2; Data Structures; Formal Verification; High Assurance; Theorem Proving;
fLanguage
English
Publisher
ieee
Conference_Titel
System Sciences (HICSS), 2013 46th Hawaii International Conference on
Conference_Location
Wailea, HI, USA
ISSN
1530-1605
Print_ISBN
978-1-4673-5933-7
Electronic_ISBN
1530-1605
Type
conf
DOI
10.1109/HICSS.2013.541
Filename
6480456
Link To Document