ACM Transactions on Programming Languages and Systems · 1979 · 901 citations · 9 references
ComputingComputer ScienceDecision TheoryLogicTheory Of ComputationAutomated ReasoningBoolean AlgebraDeductive ReasoningLogic ProgrammingMathematical LogicPredicate LogicDecision ProceduresEquality With Uninterpreted FunctionsExpression SimplificationNormal Form RepresentationQuantifier EliminationQuantifier HandlingTheory CombinationUninterpreted Functions
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.
9
Variations on the Common Subexpression Problem
Peter J. Downey, Ravi Sethi, Robert E. Tarjan · Journal of the ACM · 1980 · 350 citations · Full text
Reasoning About Recursively Defined Data Structures
Derek C. Oppen · Journal of the ACM · 1980 · 93 citations · Full text