To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
This chapter explores how logic programs can exploit linear logic. It provides several examples of specifying computations using linear logic, such as computing on collections of natural numbers and organizing simple theorem provers. It also illustrates how conventional program tasks, such as reversing a list or generating all permutations of a list, can be achieved in novel ways using linear logic programs. The chapter also demonstrates an alternative approach to specifying sequent calculus proof systems as logic programs. Bibliographic notes offer further references to the specification of logic programs.
This chapter focuses on using logic programming to formalize the operational semantics of programming languages. It illustrates this with examples such as the call-by-value lambda calculus and the pi-calculus. The chapter discusses how to encode transition systems in sequent calculus and abstract machines as binary logic programs. It explores using linear logic to add side-effects to evaluation and specify concurrency primitives. Bibliographic notes direct the reader to relevant literature on formal semantics and logic-based approaches to language specification.
Possibilistic logic programs (poss-programs) under stable models are a major variant of answer set programming. While its semantics (possibilistic stable models) and properties have been well investigated, the problem of inductive reasoning has not been investigated yet. This paper presents an approach to extracting poss-programs from a background program and examples (parts of intended possibilistic stable models). To this end, the notion of induction tasks is first formally defined, its properties are investigated and two algorithms ilpsm and ilpsmmin for computing induction solutions are presented. An implementation of ilpsmmin is also provided and experimental results show that when inputs are ordinary logic programs, the prototype outperforms a major inductive learning system for normal logic programs from stable models on the datasets that are randomly generated.
This chapter introduces two abstract logic programming languages, one based on first-order Horn clauses (fohc) and another on first-order hereditary Harrop formulas (fohh). It shows how these can be understood within the framework of uniform proofs in intuitionistic logic. The chapter discusses the limitations of these languages. It also explores the concept of focused proofs as a way to structure proof search. The chapter proves the completeness of focused proofs for a fragment of intuitionistic logic. Bibliographic notes provide references to related work in logic programming theory.
This chapter focuses on specifying computations using multisets within a logic programming framework. It illustrates this by encoding numerals, letters, and words as multisets. The chapter provides examples of encoding computational models such as finite automata and pushdown automata using linear logic and multisets. It also touches upon the properties of these encodings. Bibliographic notes point to related work on multiset rewriting and its applications.