In [Mis94], Misra introduced the powerlist data structure, which is well suited to express recursive, data-parallel algorithms. Moreover, Misra and other researchers have shown how powerlists can be used to prove the correctness of several algorithms. This success has encouraged some researchers to pursue automated proofs of theorems about powerlists[Kap96,KS94,KS95]. In this paper, we show how ACL2 can be used to verify theorems about powerlists. We depart from previous approaches in two significant ways. First, the powerlists we use are not the regular structures defined by Misra; that is, we do not require powerlists to be balanced trees. As we will see, this complicates some of the proofs, but on the other hand it allows us to state theorems that are otherwise beyond the language of powerlists. Second, we wish to prove the correctness of powerlist algorithms as much as possible within the logic of powerlists. Previous approaches have relied on intermediate lemmas which are unproven (indeed unstated) within the powerlist logic. However, we believe these lemmas must be formalized if the final theorems are to be used as a foundation for subsequent work, e.g., in the verification of system libraries. In our experience, some of these unproven lemmas presented the biggest obstacle to finding an automated proof.
[1]
J. Strother Moore,et al.
An Industrial Strength Theorem Prover for a Logic Based on Common Lisp
,
1997,
IEEE Trans. Software Eng..
[2]
Robert S. Boyer,et al.
Computational Logic
,
1990,
ESPRIT Basic Research Series.
[3]
Jayadev Misra,et al.
Powerlist: a structure for parallel recursion
,
1994,
TOPL.
[4]
Jacob Kornerup.
Odd-Even Sort in Powerlists
,
1997,
Inf. Process. Lett..
[5]
Robert S. Boyer,et al.
A computational logic handbook
,
1979,
Perspectives in computing.
[6]
J. S. MooreTechnical,et al.
Design Goals for Acl2
,
1994
.
[7]
Robert Veroff,et al.
Automated Reasoning and Its Applications: Essays in Honor of Larry Wos
,
1997
.
[8]
Jacob Kornerup,et al.
Parlists - A Generalization of Powerlists
,
1997,
Euro-Par.
[9]
Deepak Kapur,et al.
Constructors can be Partial too
,
1997
.
[10]
Bishop Brock,et al.
ACL2 Theorems About Commercial Microprocessors
,
1996,
FMCAD.
[11]
Deepak Kapur,et al.
Automated Reasoning About Parallel Algorithms Using Powerlists
,
1995,
AMAST.