5 research outputs found
Formal proofs about rewriting using ACL2
We present an application of the ACL2 theorem prover to reason about rewrite systems
theory. We describe the formalization and representation aspects of our work using the firstorder,
quantifier-free logic of ACL2 and we sketch some of the main points of the proof effort.
First, we present a formalization of abstract reduction systems and then we show how this
abstraction can be instantiated to establish results about term rewriting. The main theorems
we mechanically proved are Newman’s lemma (for abstract reductions) and Knuth–Bendix
critical pair theorem (for term rewriting).Ministerio de Educación y Ciencia TIC2000-1368-CO3-0
Encapsulation for Practical Simplification Procedures
ACL2 was used to prove properties of two simplification procedures. The
procedures differ in complexity but solve the same programming problem that
arises in the context of a resolution/paramodulation theorem proving system.
Term rewriting is at the core of the two procedures, but details of the
rewriting procedure itself are irrelevant. The ACL2 encapsulate construct was
used to assert the existence of the rewriting function and to state some of its
properties. Termination, irreducibility, and soundness properties were
established for each procedure. The availability of the encapsulation mechanism
in ACL2 is considered essential to rapid and efficient verification of this
kind of algorithm.Comment: 6 page
Confluence by Decreasing Diagrams -- Formalized
This paper presents a formalization of decreasing diagrams in the theorem
prover Isabelle. It discusses mechanical proofs showing that any locally
decreasing abstract rewrite system is confluent. The valley and the conversion
version of decreasing diagrams are considered.Comment: 17 pages; valley and conversion version; RTA 201
A verified Common Lisp implementation of Buchberger's algorithm in ACL2
In this article, we present the formal verification of a Common
Lisp implementation of Buchberger's algorithm for computing
Gröbner bases of polynomial ideals. This work is carried out in
ACL2, a system which provides an integrated environment where
programming (in a pure functional subset of Common Lisp) and
formal verification of programs, with the assistance of a theorem
prover, are possible. Our implementation is written in a real
programming language and it is directly executable within the
ACL2 system or any compliant Common Lisp system. We provide
here snippets of real verified code, discuss the formalization details
in depth, and present quantitative data about the proof effort