Logic Programming with Focusing Proofs in Linear Logic

The deep symmetry of linear logic [18] makes it suitable for providing abstract models of computation, free from implementation details which are, by nature, oriented and nonsymmetrical. I propose here one such model, in the area of logic programming, where the basic computational principle is Computation = Proof search Proofs considered here are those of the Gentzen style sequent calculus for linear logic. However, proofs in this system may be redundant, in that two proofs can be syntactically different although identical up to some irrelevant reordering or simplification of the applications of the inference rules. This leads to an untractable proof search where the search procedure is forced to make costly choices which turn out to be irrelevant. To overcome this problem, a subclass of proofs, called the 'focusing' proofs, which is both complete (any derivable formula in linear logic has a focusing proof) and tractable (many irrelevant choices in the search are eliminated when aimed at focusing proofs) is identified. The main constraint underlying the specification of focusing proofs has been to preserve the symmetry of linear logic, which is its most salient feature. In particular, dual connectives have dual properties with respect to focusing proofs. Then, a programming language, called LinLog, consisting of a fragment of linear logic, in which focusing proofs have a more compact form, is presented. Linlog deals with formulae which have a syntax similar to that of the definite clauses and goals of Horn logic, but the crucial difference here is that it allows clauses with multiple atoms in the head, connected by the 'par' (multiplicative disjunction). It is then shown that the syntactic restriction induced by LinLog is not performed at the cost of any expressive power: a mapping from full linear logic to LinLog, preserving focusing proofs, and analogous to the normalization to clausal form for classical logic, is presented.

[1]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[2]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

[3]  Gillier,et al.  Logic for Computer Science , 1986 .

[4]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[5]  Carl Hewitt,et al.  Actors: A Conceptual Foundation for Concurrent Object-Oriented Programming , 1987, Research Directions in Object-Oriented Programming.

[6]  Daniel Le Métayer,et al.  A parallel machine for multiset transformation and its programming style , 1988, Future Gener. Comput. Syst..

[7]  John S. Conery,et al.  Logical Objects , 1988, ICLP/SLP.

[8]  Satoshi Matsuoka,et al.  Using tuple space communication in distributed object-oriented languages , 1988, OOPSLA 1988.

[9]  Luís Monteiro,et al.  Contextual Logic Programming , 1989, ICLP.

[10]  Yves Lafont,et al.  Interaction nets , 1989, POPL '90.

[11]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[12]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[13]  Tom Conlon Programming in PARLOG , 1989, International series in logic programming.

[14]  Jean-Marc Andreoli,et al.  Logic Programming with Sequent Systems, A Linear Logic Approach , 1989, ELP.

[15]  José Meseguer,et al.  From Petri Nets to Linear Logic , 1989, Category Theory and Computer Science.

[16]  J. Girard,et al.  Proofs and types , 1989 .

[17]  Jean-Marc Andreoli Proposition pour une synthese des paradigmes de la programmation logique et de la programmation par objets , 1990 .

[18]  Jean-Marc Andreoli,et al.  LO and behold! Concurrent structured processes , 1990, OOPSLA/ECOOP '90.

[19]  José Meseguer,et al.  Rewriting as a unified model of concurrency , 1990, OOPSLA/ECOOP '90.

[20]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[21]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

[22]  Jean-Marc Andreoli,et al.  Communication as fair distribution of knowledge , 1991, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[23]  Dale Miller,et al.  Logic programming in a fragment of intuitionistic linear logic , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[24]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[25]  Samson Abramsky,et al.  Computational Interpretations of Linear Logic , 1993, Theor. Comput. Sci..

[26]  Jean-Yves Girard,et al.  On the Unity of Logic , 1993, Ann. Pure Appl. Log..