Introduction to algorithms
A Computing Procedure for Quantification Theory
Journal of the ACM (JACM)
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Fast Decision Procedures Based on Congruence Closure
Journal of the ACM (JACM)
Variations on the Common Subexpression Problem
Journal of the ACM (JACM)
An algorithm for reasoning about equality
Communications of the ACM
A machine program for theorem-proving
Communications of the ACM
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
Shostak's Congruence Closure as Completion
RTA '97 Proceedings of the 8th International Conference on Rewriting Techniques and Applications
Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Automatic verification of Pipelined Microprocessor Control
CAV '94 Proceedings of the 6th International Conference on Computer Aided Verification
SAT-Based Procedures for Temporal Reasoning
ECP '99 Proceedings of the 5th European Conference on Planning: Recent Advances in AI Planning
A SAT Based Approach for Solving Formulas over Boolean and Linear Mathematical Propositions
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Abstract Congruence Closure and Specializations
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
SMT-COMP: satisfiability modulo theories competition
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
The algebra of equality proofs
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Model-based Theory Combination
Electronic Notes in Theoretical Computer Science (ENTCS)
CC(X): Semantic Combination of Congruence Closure with Solvable Theories
Electronic Notes in Theoretical Computer Science (ENTCS)
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
New results on rewrite-based satisfiability procedures
ACM Transactions on Computational Logic (TOCL)
A Quantifier Elimination Algorithm for Linear Real Arithmetic
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Encoding Queues in Satisfiability Modulo Theories Based Bounded Model Checking
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
On locally minimal Nullstellensatz proofs
Proceedings of the 7th International Workshop on Satisfiability Modulo Theories
Structuring the verification of heap-manipulating programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Challenges in satisfiability modulo theories
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
Efficient interpolant generation in satisfiability modulo theories
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
On theorem proving for program checking: historical perspective and recent developments
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Efficient generation of craig interpolants in satisfiability modulo theories
ACM Transactions on Computational Logic (TOCL)
Electronic Notes in Theoretical Computer Science (ENTCS)
Detecting specification errors in declarative languages with constraints
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Combining proofs and programs in a dependently typed language
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Congruence closure algorithms for deduction in ground equational theories are ubiquitous in many (semi-)decision procedures used for verification and automated deduction. In many of these applications one needs an incremental algorithm that is moreover capable of recovering, among the thousands of input equations, the small subset that explains the equivalence of a given pair of terms. In this paper we present an algorithm satisfying all these requirements. First, building on ideas from abstract congruence closure algorithms, we present a very simple and clean incremental congruence closure algorithm and show that it runs in the best known time O(n logn). After that, we introduce a proof-producing union-find data structure that is then used for extending our congruence closure algorithm, without increasing the overall O(n logn) time, in order to produce a k-step explanation for a given equation in almost optimal time (quasi-linear in k). Finally, we show that the previous algorithms can be smoothly extended, while still obtaining the same asymptotic time bounds, in order to support the interpreted functions symbols successor and predecessor, which have been shown to be very useful in applications such as microprocessor verification.