Detecting equality of variables in programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software—Practice & Experience
Advanced compiler design and implementation
Advanced compiler design and implementation
Fast Decision Procedures Based on Congruence Closure
Journal of the ACM (JACM)
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Detecting Equalities of Variables: Combining Efficiency with Precision
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Shostak's Congruence Closure as Completion
RTA '97 Proceedings of the 8th International Conference on Rewriting Techniques and Applications
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Intersection of finitely generated congruences over term algebra
Theoretical Computer Science
Journal of Automated Reasoning
Precise interprocedural analysis through linear algebra
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic Generation of Polynomial Loop Invariants: Algebraic Foundations
ISSAC '04 Proceedings of the 2004 international symposium on Symbolic and algebraic computation
Type-based verification of sssembly language for compiler debugging
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Combining abstract interpreters
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
A polynomial-time algorithm for global value numbering
Science of Computer Programming
Logical Interpretation: Static Program Analysis Using Theorem Proving
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Combining equational reasoning
FroCoS'09 Proceedings of the 7th international conference on Frontiers of combining systems
Zap: automated theorem proving for software analysis
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Abstract interpretation with alien expressions and heap structures
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Hi-index | 0.00 |
The join of two sets of facts, E1 and E2, is defined as the set of all facts that are implied independently by both E1 and E2. Congruence closure is a widely used representation for sets of equational facts in the theory of uninterpreted function symbols (UFS). We present an optimal join algorithm for special classes of the theory of UFS using the abstract congruence closure framework. Several known join algorithms, which work on a strict subclass, can be cast as specific instantiations of our generic procedure. We demonstrate the limitations of any approach for computing joins that is based on the use of congruence closure. We also mention some interesting open problems in this area.