Proving the correctness of heuristically optimized code
Communications of the ACM
Symbolic execution and program testing
Communications of the ACM
Programming Languages: Boolean matrix methods for the detection of simple precedence grammars
Communications of the ACM
Reasoning about recursively defined data structures
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Symbolic Logic and Mechanical Theorem Proving
Symbolic Logic and Mechanical Theorem Proving
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Compiler Construction for Digital Computers
Compiler Construction for Digital Computers
The current state of proving programs correct
ACM '72 Proceedings of the ACM annual conference - Volume 1
Programming languages and their compilers: Preliminary notes
Programming languages and their compilers: Preliminary notes
Hi-index | 14.98 |
An algorithm is presented for proving equivalence and inequivalence of instances of formulas involving constant terms. It is based on the construction of an equality data base in the form of a grammar. The algorithm differes from other approaches to the problem by being an on-line algorithm. Equality between two formulas can be proved in time proportional to the number of constant and function symbols appearing within them. An algorithm is also given for updating the equality data base. It has a worse case running time which is proportional to the square of the number of different formulas previously encountered.