Coinductive Logic Programming

Traditional logic programming, with its minimal Herbrand model semantics, is useful for declaratively defining finite data structures and properties. A program in traditional logic programming defines a set of inference rules that can be used to automatically construct proofs of various logical statements. The fact that logic programming also has a goal directed, top-down operational semantics, means that these proofs can efficiently be constructed by "executing" the logical statement that is to be proved. However, since traditional logic programming's declarative semantics is given in terms of a least fixed-point, that is, since logic programming's semantics is inductive, it is impossible to directly reason about infinite objects and properties. In programming language terms, this means that the language cannot make use of infinite data structures and corecursion. The contribution of this dissertation is the extension of traditional logic programming with coinduction, by invoking the principle of duality on the declarative semantics of traditional logic programming and by developing an efficient top-down, goal-directed procedure based on the principle of coinduction, for deciding inclusion of a logical statement in the greatest fixed-point model. This gives rise to a new field of programming languages referred to by this author as "co-logic programming".

[1]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[2]  Raymond Reiter,et al.  Natural Actions, Concurrency and Continuous Time in the Situation Calculus , 1996, KR.

[3]  Michel Bidoit,et al.  A Rehabilitation of Robinson's Unification Algorithm , 1983, IFIP Congress.

[4]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[5]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[6]  Peter Aczel,et al.  An Introduction to Inductive Definitions , 1977 .

[7]  Claude Kirchner,et al.  Solving Equations in Abstract Algebras: A Rule-Based Survey of Unification , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[8]  Michael Hanus,et al.  The Integration of Functions into Logic Programming: From Theory to Practice , 1994, J. Log. Program..

[9]  Enrico Pontelli,et al.  A constraint-based approach for specification and verification of real-time systems , 1997, Proceedings Real-Time Systems Symposium.

[10]  M. Hanus,et al.  Curry: A Truly Functional Logic Language , 1995 .

[11]  Andreas Podelski,et al.  The Horn mu-calculus , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[12]  Michael Gelfond,et al.  Representing Action and Change by Logic Programs , 1993, J. Log. Program..

[13]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[14]  L. Stein,et al.  OWL Web Ontology Language - Reference , 2004 .

[15]  John W. Lloyd,et al.  A Logical Reconstruction of Prolog II , 1984, J. Log. Program..

[16]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[17]  Rajeev Alur,et al.  Timed Automata , 1999, CAV.

[18]  Andreas Podelski,et al.  Transition predicate abstraction and fair termination , 2007, TOPL.

[19]  Robin Milner,et al.  Co-Induction in Relational Semantics , 1991, Theor. Comput. Sci..

[20]  Dennis de Champeaux,et al.  About the Paterson-Wegman Linear Unification Algorithm , 1986, J. Comput. Syst. Sci..

[21]  Andrew E. Santosa,et al.  A CLP Method for Compositional and Intermittent Predicate Abstraction , 2006, VMCAI.

[22]  Michael Gelfond,et al.  An A Prolog decision support system for the Space Shuttle , 2001, Answer Set Programming.

[23]  Hudson Turner,et al.  Representing Actions in Logic Programs and Default Theories: A Situation Calculus Approach , 1997, J. Log. Program..

[24]  Raymond Reiter,et al.  Reasoning about time in the situation calculus , 1995, Annals of Mathematics and Artificial Intelligence.

[25]  Neil V. Murray Linear and almost-linear methods for the unification of first order expressions , 1979 .

[26]  Alex M. Andrew,et al.  Knowledge Representation, Reasoning and Declarative Problem Solving , 2004 .

[27]  Javier Pinto,et al.  Occurrences and Narratives as Constraints in the Branching Structure of the Situation Calculus , 1998, J. Log. Comput..

[28]  Mathieu Jaume,et al.  Logic Programming and Co-inductive Definitions , 2000, CSL.

[29]  Peter J. Stuckey,et al.  Programming with Constraints: An Introduction , 1998 .

[30]  Werner Hans,et al.  On the Interaction of Lazy Evaluation and Backtracking , 1992, PLILP.

[31]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[32]  Erik Christensen,et al.  WSDL: Web Service Description Language , 2001 .

[33]  Kilian Stoffel,et al.  knOWLer - Ontological Support for Information Retrieval Systems , 2003 .

[34]  Andrew E. Santosa,et al.  A CLP proof method for timed automata , 2004, 25th IEEE International Real-Time Systems Symposium.

[35]  Jerry R. Hobbs,et al.  DAML-S: Semantic Markup for Web Services , 2001, SWWS.

[36]  Corrado Moiso,et al.  Kernel-LEAF: A Logic plus Functional Language , 1991, J. Comput. Syst. Sci..

[37]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[38]  Bruno Courcelle,et al.  Fundamental Properties of Infinite Trees , 1983, Theor. Comput. Sci..

[39]  Viktor Schuppan,et al.  Liveness Checking as Safety Checking , 2002, FMICS.

[40]  Vladimir Lifschitz,et al.  Answer Set Planning (Abstract) , 1999, LPNMR.

[41]  Jean-Marc Talbot,et al.  On the Alternation-Free Horn Mu-calculus , 2000, LPAR.

[42]  C. R. Ramakrishnan,et al.  Efficient Model Checking Using Tabled Resolution , 1997, CAV.

[43]  George A. Miller,et al.  WordNet: A Lexical Database for English , 1995, HLT.

[44]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[45]  M. A. Nait Abdallah,et al.  On the Interpretation of Infinite Computations in Logic Programming , 1984, ICALP.

[46]  François Pottier,et al.  Type Inference in the Presence of Subtyping: from Theory to Practice , 1998 .

[47]  Juan José Moreno-Navarro,et al.  Logic Programming with Functions and Predicates: The Language BABEL , 1992, J. Log. Program..

[48]  Murray Shanahan,et al.  Narratives in the Situation Calculus , 1994, J. Log. Comput..

[49]  Alain Colmerauer,et al.  Equations and Inequations on Finite and Infinite Trees , 1984, FGCS.

[50]  L. Simon,et al.  Towards a Universal Service Description Language , 2005, International Conference on Next Generation Web Services Practices (NWeSP'05).

[51]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[52]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[53]  Murray Shanahan,et al.  Some Alternative Formulations of the Event Calculus , 2002, Computational Logic: Logic Programming and Beyond.

[54]  Stephan Merz,et al.  Model Checking , 2000 .

[55]  Gopal Gupta,et al.  Design and Implementation of AT: A Real-Time Action Description Language , 2005, LOPSTR.

[56]  Lawrence S. Moss,et al.  Vicious circles - on the mathematics of non-wellfounded phenomena , 1996, CSLI lecture notes series.

[57]  Peter J. Stuckey,et al.  Semantics of Infinite Tree Logic Programming , 1986, Theor. Comput. Sci..

[58]  Moshe Y. Vardi Verification of Concurrent Programs: The Automata-Theoretic Framework , 1991, Ann. Pure Appl. Log..

[59]  Hisao Tamaki,et al.  OLD Resolution with Tabulation , 1986, ICLP.

[60]  C. R. Ramakrishnan,et al.  Fully Local and Efficient Evaluation of Alternating Fixed Points (Extended Abstract) , 1998, TACAS.

[61]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[62]  Eric Miller,et al.  An Introduction to the Resource Description Framework , 1998, D Lib Mag..

[63]  A needed narrowing strategy , 2000, JACM.

[64]  E. Sandewall Features and fluents (vol. 1): the representation of knowledge about dynamical systems , 1995 .

[65]  Raheel Ahmad,et al.  The π-Calculus: A theory of mobile processes , 2008, Scalable Comput. Pract. Exp..

[66]  Peter Aczel,et al.  Non-well-founded sets , 1988, CSLI lecture notes series.

[67]  Gopal Gupta,et al.  Co-Logic Programming: Extending Logic Programming with Coinduction , 2007, ICALP.

[68]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[69]  Gopal Gupta,et al.  A Universal Service Description Language , 2005, IEEE International Conference on Web Services (ICWS'05).

[70]  Michael L. Scott,et al.  Programming Language Pragmatics , 1999 .

[71]  Ajay Bansal,et al.  A universal service-semantics description language , 2005, Third European Conference on Web Services (ECOWS'05).