A method for combining decision procedures for several theories into a single decision procedure for their combination is described, and a simplifier based on this method is discussed. The simplifier finds a normal form for any expression formed from individual variables, the usual Boolean connectives, the equality predicate =, the conditional function if-then-else, the integers, the arithmetic functions and predicates +, -, and _<, the Lisp functions and predicates car, cdr, cons, and atom, the functions store and select for storing into and selecting from arrays, and uninterpreted function symbols. If the expression is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates. The simplifier is currently used in the Stanford Pascal Verifier.
ABSTRACT, The notion of the congruence closure of a relation on a graph ~s defined and several algorithms for computing it are surveyed A simple proof is given that the congruence closure algorithm provides a decision procedure for the quantifier-free theory of equality A decision procedure ts then given for the quanufier-free theory of LISP hst structure based on the congruence closure algorithm Both decision procedures determine the satisfiability of a conjunction of hterals of length n In average time O(n log n) using the fastest known congruence closure algorithm It is also shown that ff the axtomattzatton of the theory of list structure ts changed slightly, the problem of determmmg the satisfiabihty of a conjunction of hterals becomes NP-complete The decision procedures have been unplemented m the authors' simphfier for the Stanford Pascal Verifier KEY WORDS AND PHRASES' program verification, mechanical theorem proving, decision procedure, congruence closure, graph algorithms, theory of equahty, theory of recurstve data types CR CATEGORIES 5 21, 5.24, 5 25, 5.7 lntroductwnConsider the problem of verifying that one equality is a consequence of several other equalities, for example, thatf(f(a, b) All these problems reduce to the problem of constructing the "congruence closure" of a relation on a graph. In Section 2 we define th,s notion and describe a congruence closure algorithm which we implemented in 1976 for use in the theorem prover of the Stanford Pascal Verifier. Its worst-case time is O(m 2) for graphs with m edges. Downey, Seth1, and Tarjan [3] describe an algorithm with worst-case time O(m logZm), which, by using a hash table, can be made to run in average-case time O(m log m). We implemented this algorithm but did not find it faster than the simpler algorithm in our application.
Equations occur frequently in mathematics, logic and computer science. in this paper, we survey the main results concerning equations, and the methods avilable for reasoning about them and computing with them. The survey is self-contained and unified, using traditional abstract algebra.Reasoning about equations may involve deciding if an equation follows from a given set of equations (axioms), or if an equation is true in a given theory. When used in this manner, equations state properties that hold between objects. Equations may also be used as definitions; this use is well known in computer science: programs written in applicative languages, abstract interpreter definitions, and algebraic data type definitions are clearly of this nature. When these equations are regarded as oriented "rewrite rules", we may actually use them to compute.In addition to covering these topics, we discuss the problem of "solving*' equations (the "unification" problem), the problem of proving termination of sets of rewrite rules, and the decidability and complexity of word problems and of combinations of equat i onal theories. We restrict ourselves to first-order equations, and do not treat equations which define non-terminating computations or recent work on rewrite rules applied to equational congruence classes.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.