Results 1  10
of
30
Logic Programming in a Fragment of Intuitionistic Linear Logic
, 1994
"... 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 Γ ..."
Abstract

Cited by 340 (44 self)
 Add to MetaCart
(Show Context)
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 Γ ∪{D}. Thus during the bottomup search for a cutfree proof contexts, represented as the lefthand side of intuitionistic sequents, grow as stacks. While such an intuitionistic notion of context provides for elegant specifications of many computations, contexts can be made more expressive and flexible 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 goaldirected 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 G1 ⊗ G2, fromthe context ∆, the latter must be split into disjoint contexts ∆1 and ∆2 for which G1 follows from ∆1 and G2 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.
Primitive Recursion for HigherOrder Abstract Syntax
 Theoretical Computer Science
, 1997
"... ..."
(Show Context)
The πcalculus as a theory in linear logic: Preliminary results
 3rd Workshop on Extensions to Logic Programming, LNCS 660
, 1993
"... The agent expressions of the πcalculus can be translated into a theory of linear logic in such a way that the reflective and transitive closure of πcalculus (unlabeled) reduction is identified with “entailedby”. Under this translation, parallel composition is mapped to the multiplicative disjunct ..."
Abstract

Cited by 113 (18 self)
 Add to MetaCart
The agent expressions of the πcalculus can be translated into a theory of linear logic in such a way that the reflective and transitive closure of πcalculus (unlabeled) reduction is identified with “entailedby”. Under this translation, parallel composition is mapped to the multiplicative disjunct (“par”) and restriction is mapped to universal quantification. Prefixing, nondeterministic choice (+), replication (!), and the match guard are all represented using nonlogical constants, which are specified using a simple form of axiom, called here a process clause. These process clauses resemble Horn clauses except that they may have multiple conclusions; that is, their heads may be the par of atomic formulas. Such multiple conclusion clauses are used to axiomatize communications among agents. Given this translation, it is nature to ask to what extent proof theory can be used to understand the metatheory of the πcalculus. We present some preliminary results along this line for π0, the “propositional ” fragment of the πcalculus, which lacks restriction and value passing (π0 is a subset of CCS). Using ideas from prooftheory, we introduce coagents and show that they can specify some testing equivalences for π0. If negationasfailuretoprove is permitted as a coagent combinator, then testing equivalence based on coagents yields observational equivalence for π0. This latter result follows from observing that coagents directly represent formulas in the HennessyMilner modal logic. 1
MODULARITY IN LOGIC PROGRAMMING
 J. LOGIC PROGRAMMING 1993:12:1199
, 1993
"... The research on modular logic programming has evolved along two different directions during the past decade. Various papers have focused primarily on the problems of programminginthelarge. They have proposed module systems equipped with compositional operators for building programs as combination ..."
Abstract

Cited by 86 (4 self)
 Add to MetaCart
The research on modular logic programming has evolved along two different directions during the past decade. Various papers have focused primarily on the problems of programminginthelarge. They have proposed module systems equipped with compositional operators for building programs as combinations of separate and independent components. Other proposals have instead concentrated on the problem of programminginthesmall in an attempt to enrich logic programming with abstraction and scoping mechanisms available in other programming paradigms. The issues that arise in the two approaches are substantially different. The compositional operators of the former allow one to structure programs without any need to extend the theory of Horn clauses. The scoping and abstraction mechanisms of the latter are modeled in terms of the logical connectives of extended logic languages.
Mode and Termination Checking for HigherOrder Logic Programs
 In Hanne Riis Nielson, editor, Proceedings of the European Symposium on Programming
, 1996
"... . We consider how mode (such as input and output) and termination properties of typed higherorder constraint logic programming languages may be declared and checked effectively. The systems that we present have been validated through an implementation and numerous case studies. 1 Introduction Jus ..."
Abstract

Cited by 42 (12 self)
 Add to MetaCart
(Show Context)
. We consider how mode (such as input and output) and termination properties of typed higherorder constraint logic programming languages may be declared and checked effectively. The systems that we present have been validated through an implementation and numerous case studies. 1 Introduction Just like other paradigms logic programming benefits tremendously from types. Perhaps most importantly, types allow the early detection of errors when a program is checked against a type specification. With some notable exceptions most type systems proposed for logic programming languages to date (see [18]) are concerned with the declarative semantics of programs, for example, in terms of manysorted, ordersorted, or higherorder logic. Operational properties of logic programs which are vital for their correctness can thus neither be expressed nor checked and errors will remain undetected. In this paper we consider how the declaration and checking of mode (such as input and output) and termina...
HigherOrder Concurrent Linear Logic Programming
 In Theory and Practice of Parallel Programming
, 1995
"... . We propose a typed, higherorder, concurrent linear logic programming called higherorder ACL, which uniformly integrates a variety of mechanisms for concurrent computation based on asynchronous message passing. Higherorder ACL is based on a proof search paradigm according to the principle, p ..."
Abstract

Cited by 32 (8 self)
 Add to MetaCart
. We propose a typed, higherorder, concurrent linear logic programming called higherorder ACL, which uniformly integrates a variety of mechanisms for concurrent computation based on asynchronous message passing. Higherorder ACL is based on a proof search paradigm according to the principle, proofs as computations, formulas as processes in linear logic. In higherorder ACL, processes as well as functions, and other values can be communicated via messages, which provides high modularity of concurrent programs. Higherorder ACL can be viewed as an asynchronous counterpart of Milner's higherorder, polyadic  calculus. Moreover, higherorder ACL is equipped with an elegant MLstyle type system that ensures (1) well typed programs can never cause type mismatch errors, and (2) there is a type inference algorithm which computes a most general typing for an untyped term. We also demonstrate a power of higherorder ACL by showing several examples of "higherorder concurrent prog...
A Logic Programming Approach to Implementing HigherOrder Term Rewriting
 Second International Workshop on Extensions to Logic Programming, volume 596 of Lecture Notes in Arti Intelligence
, 1992
"... Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higherorder term rewriting, which includes the usual notion of firstorder rewriting, can be naturally specified and implemented in a higherorder logic pr ..."
Abstract

Cited by 20 (4 self)
 Add to MetaCart
Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higherorder term rewriting, which includes the usual notion of firstorder rewriting, can be naturally specified and implemented in a higherorder logic programming language. We adopt a notion of higherorder rewrite system which uses the simply typed calculus as the language for expressing rules, with a restriction on the occurrences of free variables on the left hand sides of rules so that matching of terms with rewrite templates is decidable. The logic programming language contains an implementation of the simplytyped lambda calculus including fij conversion and higherorder unification. In addition, universal quantification in queries and the bodies of clauses is permitted. For higherorder rewriting, we show how these operations implemented at the metalevel provide elegant mechanisms for the objectlevel operations of descending thro...
Primitive recursion for higher order abstract syntax with dependent types
 In International Workshop on Intuitionistic Modal Logics and Applications (IMLA
, 1999
"... Higherorder abstract syntax is a central representation technique in logical frameworks which maps variables of the object language into variables in the metalanguage. It leads to concise encodings, but is incompatible with functions dened by primitive recursion or proofs by induction. In this pap ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
Higherorder abstract syntax is a central representation technique in logical frameworks which maps variables of the object language into variables in the metalanguage. It leads to concise encodings, but is incompatible with functions dened by primitive recursion or proofs by induction. In this paper we propose an extension of the simplytyped lambdacalculus with iteration and case constructs which preserves the adequacy of higherorder abstract syntax encodings. The wellknown paradoxes are avoided through the use of a modal operator which obeys the laws of S4. In the resulting calculus many functions over higherorder representations can be expressed elegantly. Our central technical result, namely that our calculus is conservative over the simplytyped lambdacalculus, is proved by a rather complex argument using logical relations. We view our system as an important rst step towards allowing the methodology of LF to be employed eectively in systems based on induction principles such as ALF, Coq, or Nuprl, leading to a synthesis of currently incompatible paradigms.
Hiord: A typefree higherorder logic programming langugae with predicate abstraction
 In Proceedings of ASIAN’04, Asian Computing Science Conference
, 2004
"... Abstract. A new formalism, called Hiord, for defining typefree higherorder logic programming languages with predicate abstraction is introduced. A model theory, based on partial combinatory algebras, is presented, with respect to which the formalism is shown sound. A programming language built on a ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Abstract. A new formalism, called Hiord, for defining typefree higherorder logic programming languages with predicate abstraction is introduced. A model theory, based on partial combinatory algebras, is presented, with respect to which the formalism is shown sound. A programming language built on a subset of Hiord, and its implementation are discussed. A new proposal for defining modules in this framework is considered, along with several examples. 1
A Proposal for Modules in λProlog
 WORKSHOP EXTENSIONS OF LOGIC PROGRAMMING, LNAI 798
, 1993
"... Higherorder hereditary Harrop formulas, the underlying logical foundation of λProlog [NM88], are more expressive than firstorder Horn clauses, the logical foundation of Prolog. In particular, various forms of scoping and abstraction are supported by the logic of higherorder hereditary Harrop formu ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Higherorder hereditary Harrop formulas, the underlying logical foundation of λProlog [NM88], are more expressive than firstorder Horn clauses, the logical foundation of Prolog. In particular, various forms of scoping and abstraction are supported by the logic of higherorder hereditary Harrop formulas while they are not supported by firstorder Horn clauses. Various papers have argued that the scoping and abstraction available in this richer logic can be used to provide for modular programming [Mil89b], abstract data types [Mil89a], and state encapsulation [HM90]. None of these papers, however, have dealt with the problems of programminginthelarge, that is, the essentially linguistic problems of putting together various different textual sources of code found, say, in different files on a persistent store into one logic program. In this paper, I propose a module system for λProlog and shall focus mostly on its static semantics.