TY - JOUR
T1 - A rationale for conditional equational programming
AU - Dershowitz, Nachum
AU - Okada, Mitsuhiro
N1 - Funding Information:
* A previous version of this paper appeared as: Conditional equational programming and the theory of conditional term rewriting, in: Proc. Internat. Conj on Fifth Generation Computer SJs&?rns, Tokyo, Japan (I%%) 337-346. This research was supported in part by the National Science Foundation (United States) under Grant DCR 8513417, the Natural Science and Engineering Research Council (Canada) under Grants OGP36663, ICR92599, Fonds pour la Formation de Chercheurs et O’Aide a la Recherche (Quebec) under Grants EQ41840, NC0025, Social Sciences and 410-88-884, and the Committee on Aid to Research Activities ( en the second author was visi ris-Sud, with support fron.
PY - 1990
Y1 - 1990
N2 - Conditional equations provide a paradigm of computation that combines the clean syntax and semantics of LISP-like functional programming with Prolog-like logic programming in a uniform manner. For functional programming, equations are used as rules for left-to-right rewriting; for logic programming, the same rules are used for conditional narrowing. Together, rewriting and narrowing provide increased expressive power. We discuss some aspects of the theory of conditional rewriting, and the reasons underlying certain choices in designing a language based on them. The most important correctness property a conditional rewriting program may posses is ground confluence; this ensures that at most one value can be computed from any given (variable-free) input term. We give criteria for confluence. Reasonable conditions for ensuring the completeness of narrowing as an operational mechanism for solving goals are provided; these results are then extended to handle rewriting with existentially quantified conditions and built-in predicates. Some termination issues are also considered, including the case of rewriting with higher-order terms.
AB - Conditional equations provide a paradigm of computation that combines the clean syntax and semantics of LISP-like functional programming with Prolog-like logic programming in a uniform manner. For functional programming, equations are used as rules for left-to-right rewriting; for logic programming, the same rules are used for conditional narrowing. Together, rewriting and narrowing provide increased expressive power. We discuss some aspects of the theory of conditional rewriting, and the reasons underlying certain choices in designing a language based on them. The most important correctness property a conditional rewriting program may posses is ground confluence; this ensures that at most one value can be computed from any given (variable-free) input term. We give criteria for confluence. Reasonable conditions for ensuring the completeness of narrowing as an operational mechanism for solving goals are provided; these results are then extended to handle rewriting with existentially quantified conditions and built-in predicates. Some termination issues are also considered, including the case of rewriting with higher-order terms.
UR - http://www.scopus.com/inward/record.url?scp=0025489167&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0025489167&partnerID=8YFLogxK
U2 - 10.1016/0304-3975(90)90064-O
DO - 10.1016/0304-3975(90)90064-O
M3 - Article
AN - SCOPUS:0025489167
SN - 0304-3975
VL - 75
SP - 111
EP - 138
JO - Theoretical Computer Science
JF - Theoretical Computer Science
IS - 1-2
ER -