When logic programming is based on the proof theory of intuitionistic logic, it is natural to allow implications in goals and in the bodies of clauses. Attempting to prove a goal of the form D G from the context (set of formulas) ? leads to an attempt to prove the goal G in the extended context ? fDg. Thus during the bottom-up search for a cut-free proof contexts, represented as the left-hand side of intuitionistic sequents, grow as stacks. While such an intuitionistic notion of context provides for elegant speci cations of many computations, contexts can be made more expressive and exible if they are based on linear logic. After presenting two equivalent formulations of a fragment of linear logic, we show that the fragment has a goal-directed interpretation, thereby partially justifying calling it a logic programming language. Logic programs based on the intuitionistic theory of hereditary Harrop formulas can be modularly embedded into this linear logic setting. Programming examples taken from theorem proving, natural language parsing, and data base programming are presented: each example requires a linear, rather than intuitionistic, notion of context to be modeled adequately. An interpreter for this logic programming language must address the problem of splitting contexts; that is, when attempting to prove a multiplicative conjunction (tensor), say G 1 G 2 , from the context , the latter must be split into disjoint contexts 1 and 2 for which G 1 follows from 1 and G 2 follows from 2 . Since there is an exponential number of such splits, it is important to delay the choice of a split as much as possible. A mechanism for the lazy splitting of contexts is presented based on viewing proof search as a process that takes a context, consumes part of it, and returns the rest (to be consumed elsewhere). In addition, we use collections of Kripke interpretations indexed by a commutative monoid to provide models for this logic programming language and show that logic programs admit a canonical model.
Lolli, a programming language based on a fragment of intuitionistic linear logic REF , proves goals by lazily managing the context of linear resources during backward-chaining proof search.
Logic Programming in a Fragment of Intuitionistic Linear Logic
Inf. Comput.
Mathematics Computer Science