Fast Decision Procedures Based on Congruence Closure
Journal of the ACM (JACM)
Variations on the Common Subexpression Problem
Journal of the ACM (JACM)
Deciding Combinations of Theories
Journal of the ACM (JACM)
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Canonization for disjoint unions of theories
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
Fast congruence closure and extensions
Information and Computation
Nelson-Oppen, shostak and the extended canonizer: a family picture with a newborn
ICTAC'04 Proceedings of the First international conference on Theoretical Aspects of Computing
Combining Coq and Gappa for Certifying Floating-Point Programs
Calculemus '09/MKM '09 Proceedings of the 16th Symposium, 8th International Conference. Held as Part of CICM '09 on Intelligent Computer Mathematics
Computer-aided security proofs for the working cryptographer
CRYPTO'11 Proceedings of the 31st annual conference on Advances in cryptology
Multi-Prover verification of floating-point programs
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Discharging proof obligations from atelier b using multiple automated provers
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
Cubicle: a parallel SMT-based model checker for parameterized systems: tool paper
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Wave Equation Numerical Resolution: A Comprehensive Mechanized Proof of a C Program
Journal of Automated Reasoning
Hi-index | 0.00 |
We present a generic congruence closure algorithm for deciding ground formulas in the combination of the theory of equality with uninterpreted symbols and an arbitrary built-in solvable theory X. Our algorithm CC(X) is reminiscent of Shostak combination: it maintains a union-find data-structure modulo X from which maximal information about implied equalities can be directly used for congruence closure. CC(X) diverges from Shostak's approach by the use of semantic values for class representatives instead of canonized terms. Using semantic values truly reflects the actual implementation of the decision procedure for X. It also enforces to entirely rebuild the algorithm since global canonization, which is at the heart of Shostak combination, is no longer feasible with semantic values. CC(X) has been implemented in Ocaml and is at the core of Ergo, a new automated theorem prover dedicated to program verification.