A unifying approach to logic and functional programming abstract bharat jayaraman department of computer science universitji of north carolina at chapel hill chapel hill, nc 1. Separate chapters cover the intuitive logical semantics of the language, the powerful programming techniques supported by it and their connections. It was later made into a branch of category theory by lawvere algebraic theories the terms of equational logic are built up from variables and constants. Incorporating stateoftheart quantifier elimination, satisfiability, and equational logic theorem proving, the wolfram language provides a powerful framework for. Foundations of equational logic programming 353 by steffen holldobler 1989, paperback at the best online prices at ebay. The topics include language design, formal semantics, type theory, compilation techniques, program transformation, programming methods, integration of programming paradigms, constraint solving, and distributed computation. Foundations of equational logic programming lecture notes in. Introduces topics such as concurrency and equational and constraint logic programming. It introduces major new developments in a continually evolving field, including topics such as concurrency, equational logic programming and constraint logic programming. Qian z higherorder equational logic programming proceedings of the 21st acm sigplansigact symposium on principles of programming languages, 254267 antoy s, echahed r and hanus m a needed narrowing strategy proceedings of the 21st acm sigplansigact symposium on principles of programming languages, 268279. Equational logic as a programming languagecovers the entire spectrum of theoretical and applied work involved in eight years of designing and implementing the equational logic programming language. The following list is reproduced from frequently asked questions at comp. This monograph develops techniques for equational reasoning in higherorder logic.
Within this framework many known results are developed. What are the best books for improving programming logic. It introduces major new developments in a continually evolving field, including topics such as concurrency, equational. It was later made into a branch of category theory by lawvere algebraic theories. Logic is now widely recognized as one of the foundational disciplines of computing and has applications in virtually all aspects of the subject, from software engineering and hardware to programming languages and artificial intelligence. Equations play a vital role in many fields of mathematics, computer science, and artificial intelligence. The 6th international conference english paperback by levi. Within the last decade it turned out that computerised systems are the very base of advanced technology. Equational logic as a programming language the mit press. Foundations of equational logic programming ebook, 1989. In all of these languages, rules are written in the form of clauses.
Balances between a clear and authoritative treatment of the theory and a practical, problemsolving approach to its applications. Oriented equational logic programming is complete sciencedirect. Home browse by title books equational logic as a programming language. We investigate how equational rewriting, which we assume is an adequate model for functional programming, can be performed within the context of logic programming. Mathematics a statement asserting the equality of two expressions, usually written as a linear array of symbols that are separated into left and right sides and joined by an equal sign. This really outstanding classic will teach you logic with solid programming advice following dijsktras ideas, and the basic of graph theory, sets, etc. Foundations of equational logic programming lecture notes. For the rest of this introduction we will directly jump into the use of logic for modern computer science. Kripke models and the in equational logic of the secondorder lambdacalculus annals of pure and applied logic, 84, 257316, 1997 ps pdf typing untyped lambda terms, or reducibility strikes again. Major logic programming language families include prolog, answer set programming asp and datalog. This book presents the foundations of equational logic programming. In comparison with pure functional languages, functional logic languages have more expressive power due to the availability of features like function inversion, partial data structures, existential variables, and nondeterministic search.
What sets this book apart from others on logic programming is the breadth of its coverage. This aims at integrating and generalizing declarative programming models such as functional and logic programming. Annals of pure and applied logic, 91, 231270, 1998 ps pdf. This edition introduces major new developments in a continually evolving field and includes such topics as concurrency and equational and constraint logic programming.
We show the completeness of an extension of sldresolution to the equational setting. Equational logic article about equational logic by the. Foundations of equational logic programming pdf free download. Solving higherorder equations from logic to programming. The model theory of this logic was developed into universal algebra by birkhoff et al. Logic, programming and prolog 2nd edition free computer books. We argue that logic programming is still immature, compared with. Another inference method for equational horn clauses is the lazy paramodulation. Lecture notes in computer science lecture notes in artificial intelligence, vol 353. Separate chapters cover the intuitive logical semantics of the language, the powerful programming techniques supported by it and their connections to procedural techniques such as coroutines, the methods used to produce a highly flexible implementation of the language with very little manpower.
Computational logic, volume 9 1st edition elsevier. Designed as a text for upperlevel and graduatelevel students, the mathematically sophisticated approach will also. Equational definition of equational by the free dictionary. No other book use equational logic like this one for beginners.
Firstorder equational logic consists of quantifierfree terms of ordinary firstorder logic, with equality as the only predicate symbol. Thielscher intellektik,informatik,thdarmstadt,germany abstract recently three approaches for solving planning problems deductively were proposed each of which does not require to state frame axioms explicitly. An equation is a pair of terms st from a common term algebra tx. Oriented equational logic programming 25 system is its combination of top down and bottom up reasoning. This text offers a concise treatment of the theory of logic programming and a practical, problemsolving approach to its applications.
It introduces the mathematical theory of programming languages with an emphasis on higherorder functions and type systems. Equational logic as a programming language september 1985. But you can follow any of the programming books and there you will get better logic. The emphasis in proofs is on substitution of equals for equals, instead of modus ponens. This book provides a comprehensive description of the theoretical foundations, design, and implementation of an innovative logic programming language in. The model theory of this logic was developed into universal algebra by birkhoff, gratzer, and cohn. Kripke models and the inequational logic of the secondorder lambdacalculus annals of pure and applied logic, 84, 257316, 1997 ps pdf typing untyped lambda terms, or reducibility strikes again. Equational logic was developed over the years beginning in the early 1980s by researchers in the formal development of programs, who felt a need for an effective style of manipulation, of calculation. Incorporating stateoftheart quantifier elimination, satisfiability, and equational logic theorem proving, the wolfram language provides a powerful framework for investigations based on boolean algebra. Equational logic as a programming language guide books. This book presents the foundations of equational logic. It is a declarative programming paradigm in which function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program or world in functional programming.
Foundations of equational logic programming steffen holldobler. Logic for computer scientistsintroduction wikibooks, open. Part of the lecture notes in computer science book series lncs, volume 193. Logic programming is a programming paradigm which is largely based on formal logic. This paper is a contribution to the amalgamation of logic programming as embodied in prolog and functional programming as embodied in languages like sasl, krc, hope, or in dialects of lisp like lispkit lisp or scheme. This proves a conjecture of laurent fribourg and shows the compl.
Odonnell 69 1 introduction to equational logic programming 69 1. The 6th international conference english paperback online for rs. Therefore, many proposals have been made to integrate equational, functional, and logic programming. In this section an equal sign between terms means not that the two terms must be the same term but rather denotes their. Foundations of equational logic programming book, 1989. Handbook of logic in artificial intelligence and logic. Functional logic programming aims to amalgamate the most important declarative programming paradigms, namely functional programming and logic programming. In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. Semantics of programming languages exposes the basic motivations and philosophy underlying the applications of semantic techniques in computer science. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Jan 30, 2018 the following list is reproduced from frequently asked questions at comp. The wolfram language represents boolean expressions in symbolic form, so they can not only be evaluated, but also be symbolically manipulated and transformed.
Equational logic article about equational logic by the free. Manzoanalyses of inconsistency for incremental equational logic programming. Foundations of equational logic programming steffen. Logic programming with equations 275 2 if possible, resolve the leftmost goal with one of the equations.
The reader who is interested in history of logic is referred to the bibliographic section at the end of this introduction. Equational logic as a programming language foundations of. Mar 16, 2009 this text offers a concise treatment of the theory of logic programming and a practical, problemsolving approach to its applications. Pdf equational logic programming, actions, and change. Like lisp and prolog, the equational programming language is based on the concept that a programmer should give a mathematical description of the result of a. Equational logics and rewriting, claude kirchner, helene kirchner. Unfortunately, this has not yet been achieved with current logic programming systems. Equational logic as a programming language covers the entire spectrum of theoretical and applied work involved in eight years of designing and implementing the equational logic programming language. Equational logic as a programming language foundations of computing english hardcover by michael j. On the other hand logic can be used not only for the specification but also as programs itself. The integration of functions into logic programming. The act or process of equating or of being equated. Due to its expressiveness, higherorder logic is used for specification and verification of hardware, software, and mathematics.
This book discusses issues concerning functional programming, logic programming, and integration of the two. The authors have achieved a fine balance between a clear and authoritative treatment of the theory and a practical, problemsolving approach to its applications. Equational propositional logic e is a product of researchers in the field of the formal development of algorithms. After generalizing logic programming by augmenting programs with a conditional equational theory, the author defines a unifying framework for logic programming, equation solving, universal unification, and term rewriting. Like lisp and prolog, the equational programming language is based on the concept that a programmer should give. Logic for computer scientistsintroduction wikibooks. Introduction to equational logic cornell university. The use of mathematical logic for computer programming. Involved were people like roland carl backhouse, edsger w.
Buy equational logic as a programming language foundations of computing english hardcover online for rs. Logic, programming and prolog by ulf nilsson, jan maluszynski. Adopting this strategy, we integrate logic programming and equational programming as practically as any other method based on term rewriting systems does. Logic is now widely recognized as one of the foundational disciplines of computing and has applications in virtually all aspects of the subject, from software engineering and hardware to. Equational logic programming, actions, and change g. Free pdf download logic, programming and prolog 2nd. In other words, an ideal of logic programming is purely declarative programming. The bottom up part is the completion among the heads of clauses, and the top down part is the goal solving. This paper is a contribution to the amalgamation of logic programming as. This book provides a comprehensive description of the theoretical foundations, design, and implementation of an innovative logic programming language in which computations are produced directly from equational definitions.
64 851 1340 118 599 79 1358 1522 870 426 104 994 1093 1498 1071 982 259 1297 41 944 1591 786 195 299 1136 972 2 503 1121 1040 1614 1342 1326 453 767 1065 709 149 1012 481 1427 1126 1498 1322 244