## Formal Reasoning About Efficient Data Structures: A Case Study in ACL2 (2004)

Venue: | In Logic Based Program Synthesis and Transformation, LNCS 3018 |

Citations: | 1 - 1 self |

### BibTeX

@INPROCEEDINGS{Ruiz-reina04formalreasoning,

author = {J. -l. Ruiz-reina and J. -a. Alonso and M. -j. Hidalgo and F. -j. Martín-mateos},

title = {Formal Reasoning About Efficient Data Structures: A Case Study in ACL2},

booktitle = {In Logic Based Program Synthesis and Transformation, LNCS 3018},

year = {2004},

publisher = {Springer–Verlag}

}

### OpenURL

### Abstract

Abstract. We describe in this paper the formal verification, using the ACL2 system, of a syntactic unification algorithm where terms are represented as directed acyclic graphs (dags) and these graphs are stored in a single-threaded object (stobj). The use of stobjs allows destructive operations on data (thus improving the performance of the algorithm), while maintaining the applicative semantics of ACL2. We intend to show how ACL2 provides an environment where execution of algorithms with efficient data structures and formal reasoning about them can be carried out. 1

### Citations

938 |
Term Rewriting and All That
- Baader, Nipkow
- 1999
(Show Context)
Citation Context ... v ↦→ h(h(z))}, which is a mgu of f(h(z), g(h(x), h(u))) and f(x, g(h(u), v)). 3 An ACL2 implementation The implementation described here is based on the Pascal implementation given in section 4.8 of =-=[1]-=-. The main difference is that instead of a record with pointers, we use a single-threaded object. This stobj is a structure called terms-dag with only one field: an array called dag (whose size can be... |

262 |
Computer-Aided Reasoning: An Approach
- Kaufmann, Manolios, et al.
- 2000
(Show Context)
Citation Context ...ficiency of the verified unification algorithm. Although we will not give an introduction to ACL2, we will comment the relevant questions in passing, when needed. An excellent introduction to ACL2 is =-=[5]-=-. A detailed description of the system can be found in the manual, available in [6]. We will assume the reader familiar with Common Lisp. Due to the lack of space, we will not give here details about ... |

214 | Unification theory
- Baader, Schulz
- 1998
(Show Context)
Citation Context ... some basic concepts about (syntactic) unification, a fundamental process upon which many methods of automated deduction are based. A complete description of the theory of unification can be found in =-=[2]-=-. An equation is a pair of first-order terms, denoted as t1 ≈ t2, and a system of equations is a finite set of equations. A substitution σ is a solution of t1 ≈ t2 if σ(t1) = σ(t2) and it is a solutio... |

66 | F.;Nipkow, T.: Proving Pointer Programs in Higher-Order Logic
- Mehta
- 2005
(Show Context)
Citation Context ...hese works are related to ours, the logic used is quite different and, more important, their main concern is not efficiency or the data structures used. Other related work is done by Mehta and Nipkow =-=[7]-=-, who have recently developed in Isabelle/HOL a general framework for reasoning about programs that use pointers. As a non-trivial case study, they present a proof of the correctness of the Schorr–Wai... |

23 |
Verifying the unification algorithm
- Paulson
- 1985
(Show Context)
Citation Context ...graphs). As for related works, unification algorithms have been the center of several formalizations. In particular, formal proofs of the correctness of a unification algorithm have been given in LCF =-=[8]-=-, Coq [9] and ALF [3]. Although these works are related to ours, the logic used is quite different and, more important, their main concern is not efficiency or the data structures used. Other related ... |

12 |
Développement de l’algorithme d’unification dans le calcul des constructions
- Rouyer
- 1992
(Show Context)
Citation Context ...As for related works, unification algorithms have been the center of several formalizations. In particular, formal proofs of the correctness of a unification algorithm have been given in LCF [8], Coq =-=[9]-=- and ALF [3]. Although these works are related to ours, the logic used is quite different and, more important, their main concern is not efficiency or the data structures used. Other related work is d... |

10 | Single-threaded objects in ACL2
- Boyer, Moore
(Show Context)
Citation Context ...n every moment only one copy of the object is needed. Roughly speaking, these syntactic restrictions enforce that the only references to the stobj are done via its name (terms-dag, in this case). See =-=[4, 6]-=- for further information about stobjs in ACL2 and the restrictions on its use. Each node in the graph is represented by a cell in the dag array of the stobj. Thus, a node in the graph can be identifie... |

1 |
Programming in Martin-Lf Type Theory: Unification - A non-trivial Example
- Bove
- 1999
(Show Context)
Citation Context ...ed works, unification algorithms have been the center of several formalizations. In particular, formal proofs of the correctness of a unification algorithm have been given in LCF [8], Coq [9] and ALF =-=[3]-=-. Although these works are related to ours, the logic used is quite different and, more important, their main concern is not efficiency or the data structures used. Other related work is done by Mehta... |

1 |
A theory about first–order terms
- Ruiz–Reina, Alonso, et al.
- 2002
(Show Context)
Citation Context ...ral solution of S. Thus, a unification algorithm can be designed choosing an strategy to apply the rules, starting with the pair of systems {t1 ≈ t2}; ∅, where t1 and t2 are two given input terms. In =-=[10]-=- we had defined and verified a unification algorithm based on this set of transformation rules, as part of an ACL2 library with formal proofs of the lattice-theoretic properties of first-order terms. ... |

1 |
A verified dag unification algorithm in ACL2, 2002. Available at http://www.cs.us.es/~jruiz/unificacion-dag
- Ruiz–Reina, Alonso, et al.
(Show Context)
Citation Context ...a case study in ACL2, where we verify a unification algorithm acting on term dags, implemented using ACL2 single-threaded objects. We urge the interested reader to consult the complete development in =-=[11]-=-. The main features of this case study are: • The formal verification of an executable algorithm that uses efficient data structures. • The methodology used: from a rule-based specification of the alg... |