Firstorder equational logic consists of quantifierfree terms of ordinary firstorder logic, with. Equational logic article about equational logic by the. Balances between a clear and authoritative treatment of the theory and a practical, problemsolving approach to its applications. The narrowing mechanism has a number of important applications including automated proofs of termination, execution of functionallogic programming languages, partial evaluation, verification of cryptographic protocols, symbolic model checking, and equational unification. Eugenia occhiuto dipartimento di informatica, universitdi pisa, corso italia 40, 56100 pisa, italy communicated by g. Its default operational semantics is order sorted narrowing, but particular cases can be computed by efficient built in algorithms over suitable data structures, with their functions and relations, including equality, disequality, and the usual orderings for numbers and lists.
Our goal here is to investigate the relations between the equational style of dependentlytyped functional programming as found in agda to the prooftheoretical description of intuitionistic logic given in the sequent calculus. A logic programming language for computational nucleic acid devices. Flogic extends logic programming with objects and the frame syntax. We searched our database and could not find a definition other than equational logic. An introduction to logic programming through prolog. It has both a modeltheoretic semantics and a procedural one. Education software downloads ladder logic simulator by triangle research international, inc and many more programs are available for instant and free download. Important applications include metalanguage, in which the system is used to create executable environments for different logics. We refer to the programming paradigm arising from programming with such equations as equational programming.
Although modularisation is basic to modern computing, it has been little studied for logicbased programming. Correspondence between operational behavior and intended semantics is guaranteed by a property of coherence, which can be checked by examination of critical pairs and linearity conditions. Obj3 is based on order sorted equational logic, and has been successfully used for research and teaching in software design and specification, rapid prototyping, theorem proving, user interface design, and hardware verification, among other things. Lazy evaluation in logic programming ieee conference. In logic program ming, the central concept is the proof of a restricted form of theorem from a theory. Equational logic as a programming language the mit press. Equational logic programming, actions, and change computer. This lecture exclusively treats equational logic instead of the usual firstorder logic. Equational reasoning for probabilistic programming part i. 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. Maude, sris highperformance declarative software language and system, is among the fastest equational rewriting systems in its class. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain.
An equational approach to logic programming springerlink. This page is about the meanings of the acronymabbreviationshorthand elp in the computing field in general and in the software terminology in particular. Latest results include a compiler that executes exactly the logical consequences of an equational program, with runtime speed comparable to compiled franz lisp. Equational logic as a programming languagecovers the entire spectrum of theoretical and applied work involved in eight years of designing and. Foundations of equational logic programming lecture notes in computer science hlldobler, steffen on.
Categorybased modularisation for equational logic programming. In 1975 i started a small project to explore the consequences of implementing equational programs with no semantic compromises. Juan jose morenonavarro and mario rodriguezartalejot p we investigate the experimental programming language babel, designed to achieve integration of functional programming as embodied in hope, stand ard ml, or miranda and logic. It was the first language to fully implement parameterized programming.
Theoretical computer science 107 1993 209252 209 elsevier fundamental study cexpressions. 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. 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. By equational logic im going to assume you mean equations and perhaps algebra in general. In addition to equations and rules, we introduce equational rules that are oriented while having an equational interpretation. We present a general methodology of proving the decidability of equational theory of programming language concepts in the framework of secondorder algebraic theories. The terms of equational logic are built up from variables and constants using function symbols or operations. Smith 2 1 computer laboratory, university of cambridge, cambridge cb2 3qg, england. Handbook of logic in artificial intelligence and logic. Equational logic programming how is equational logic programming abbreviated. Ucge hamel,1991 is an equational logic programming system inspired by odonnellssystem odonnell, 1985 and was designed to allow the integration of logic systems into imperative style programming environments. We treat modularisation for equational logic programming using the institution of categorybased equational logic in three different ways. Alternatively, just download any eclipse indigojuno and install the software.
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. Major logic programming language families include prolog, answer set programming asp and datalog. Equational logic as a programming language september 1985. Although modularisation is basic to modern computing, it has been little studied for logic based programming. The bottom up part is the completion among the heads of clauses, and the top down part is the goal solving. Logic programming is a programming paradigm which is largely based on formal logic. Abstract reduction systems basic definitions thm churchrosser iff confluent. Lecture notes in computer science lecture notes in artificial intelligence, vol 353. This extra generality imbues the program itself with logical significance, much like classical logic programming. Eqlog is a programming and specification language which combines constraint logic programming with equational programming.
In the compilational approach we obtain an efficient prolog program by translating the equations to a set of horn clauses not involving equality and discarding. Transaction logic is an extension of logic programming with a logical theory of statemodifying updates. Foundations of equational logic programming lecture notes. The emphasis in proofs is on substitution of equals for equals, instead of modus ponens.
Equational logic article about equational logic by the free. Queries to such a program can be answered using slderesolution, where the equational theory. Inductive functional programming, which uses functional programming languages such as lisp or haskell, and most especially inductive logic programming, which uses logic programming languages such as prolog and other logical representations such as description logics, have been more prominent, but other programming language paradigms have also been used, such as constraint programming or probabilistic programming. Rwprolog is an attempt to combine classical and equational logic programming in a flexible way, allowing the user to choose amongst logical, functional, and. Evolutionary search in inductive equational logic programming. In proceedings of 14th international symposium on functional and logic programming.
Download ladder logic programming software for free windows. 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. There may be many popular meanings for elp with the most popular definition being that of equational logic programming. Inductive machine learning suggests an alternative approach to the algebraic specification of software systems. Home browse by title books equational logic as a programming language. Termrewriting implementation of equational logic programming. Education software downloads ladder logic simulator by triangle research international, inc and many more programs are.
Equational propositional logic e is a product of researchers in the field of the formal development of algorithms. Oct 28, 2016 by equational logic im going to assume you mean equations and perhaps algebra in general. Inductive programming ip is a special area of automatic programming, covering research from artificial intelligence and programming, which addresses learning of typically declarative logic or functional and often recursive programs from incomplete specifications, such as inputoutput examples or constraints. Correspondence between operational behavior and intended semantics is. 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. Its main advantage over previous methods is its considerable efficiency, from both the theoretical and implementation points of view. Equational rules for rewriting logic theoretical computer. Foundations of equational logic programming lecture notes in. Unlike lisp and prolog, however, the equational programming language strictly follows the rules of equational logic, providing powerful programming techniques not available in conventional languages. The equational logic programming paradigm unifies logic programming based on horn clause logic and equational i. Rwprolog is an attempt to combine classical and equational logic programming in a flexible way, allowing the user to choose amongst logical, functional, and object oriented programming styles. With the click of a button, you can build complex control algorithms, diagnose problems and run realtime or simulated operational data to evaluate the performance of a control sequence. I think you really do need to know the basics of how algebra works in order to be an effective programmer in any field i could imagine.
Foundations of equational logic programming lecture notes in computer science. Pdf equational logic programming, actions, and change. Equational logic programming, proceedings of fourth symposium on logic programming, 1987. A method for bringing the concept of lazy evaluation to logic programming in a rigorous yet efficient manner is presented. Introduction to equational logic cornell university. It is also included in the european masters program in computational logic advanced modules inference in classical and nonclassical logic. Elp is an acronym that can contain many meanings which are listed below. We see interesting applications of inductive equational logic programming in the area of software testing 10 where the equational ground identities can be consid. Juan jose morenonavarro and mario rodriguezartalejot p we investigate the experimental programming language babel, designed to achieve integration of functional programming as embodied in hope, stand ard ml, or miranda and logic programming as embodied in prolog in a simple. Pdf equational logic programming actions, and change. It combines the topics termrewriting and lambdacalculus with a logical view. An inductive programming approach to algebraic specification.
In the algebraic setting test cases are ground equations that represent specific. Separate chapters cover the intuitive logical semantics of the language, the powerful programming techniques supported by it and their connections. Download ladder logic programming software for free. Involved were people like roland carl backhouse, edsger w. Logtalk extends the prolog programming language with support for objects, protocols, and other oop concepts. The axioms are similar to those use by dijkstra and scholten in their monograph predicate calculus and program semantics springer verlag, 1990. Variables in such equations are logical variables, which obtain their values as a result of solving equations. Equational logic programming, actions, and change g. Oriented equational logic programming 25 system is its combination of top down and bottom up reasoning. The model theory of this logic was developed into universal algebra by birkhoff et al. It supports most standardcompliant prolog systems as backend compilers. Inductive programming ip is a special area of automatic programming, covering research from artificial intelligence and programming, which addresses learning of typically declarative logic or functional and often recursive programs from incomplete specifications, such as inputoutput examples or constraints depending on the programming language used, there are several kinds of inductive. Proof by a concrete prologlike interpretation of the typing rules as backward.
How to prove decidability of equational theories with. It was later made into a branch of category theory by lawvere algebraic theories. Equational logic as a programming language guide books. We show soundness of the equational approach with respect to traditional prolog computation and with respect to answer set programming. Latest results include a compiler that executes exactly the logical consequences of an equational program, with. The bottom up part is the completion among the heads of.
Introduces topics such as concurrency and equational and constraint logic programming. Important applications include metalanguage, in which the system is used to create executable environments for different logics, theorem. The work is based on a resource oriented approach to reasoning about. A logic programming language for computational nucleic. Citeseerx document details isaac councill, lee giles, pradeep teregowda. Wim feijen is responsible for important details of the proof format. Firstorder equational logic consists of quantifierfree terms of ordinary firstorder logic, with equality as the only predicate symbol. A new implementation technique for applicative languages, software practice and. Equational logic programming how is equational logic.
497 407 1257 529 367 1263 314 932 350 442 155 514 952 35 1269 1347 1442 767 515 113 1480 568 148 632 548 227 1171 605 397 1130 65 1214 231 1039 573 1176 878 470