2,279 research outputs found
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations
A framework for proof certificates in finite state exploration
Model checkers use automated state exploration in order to prove various
properties such as reachability, non-reachability, and bisimulation over state
transition systems. While model checkers have proved valuable for locating
errors in computer models and specifications, they can also be used to prove
properties that might be consumed by other computational logic systems, such as
theorem provers. In such a situation, a prover must be able to trust that the
model checker is correct. Instead of attempting to prove the correctness of a
model checker, we ask that it outputs its "proof evidence" as a formally
defined document--a proof certificate--and that this document is checked by a
trusted proof checker. We describe a framework for defining and checking proof
certificates for a range of model checking problems. The core of this framework
is a (focused) proof system that is augmented with premises that involve "clerk
and expert" predicates. This framework is designed so that soundness can be
guaranteed independently of any concerns for the correctness of the clerk and
expert specifications. To illustrate the flexibility of this framework, we
define and formally check proof certificates for reachability and
non-reachability in graphs, as well as bisimulation and non-bisimulation for
labeled transition systems. Finally, we describe briefly a reference checker
that we have implemented for this framework.Comment: In Proceedings PxTP 2015, arXiv:1507.0837
Logic-Based Specification Languages for Intelligent Software Agents
The research field of Agent-Oriented Software Engineering (AOSE) aims to find
abstractions, languages, methodologies and toolkits for modeling, verifying,
validating and prototyping complex applications conceptualized as Multiagent
Systems (MASs). A very lively research sub-field studies how formal methods can
be used for AOSE. This paper presents a detailed survey of six logic-based
executable agent specification languages that have been chosen for their
potential to be integrated in our ARPEGGIO project, an open framework for
specifying and prototyping a MAS. The six languages are ConGoLog, Agent-0, the
IMPACT agent programming language, DyLog, Concurrent METATEM and Ehhf. For each
executable language, the logic foundations are described and an example of use
is shown. A comparison of the six languages and a survey of similar approaches
complete the paper, together with considerations of the advantages of using
logic-based languages in MAS modeling and prototyping.Comment: 67 pages, 1 table, 1 figure. Accepted for publication by the Journal
"Theory and Practice of Logic Programming", volume 4, Maurice Bruynooghe
Editor-in-Chie
Lecture Notes on Formal Program Development
This document was originally produced as lecture notes for the MSc and PG course ``Formal Program Development'' early in 1997. After some initial general considerations on this subject the paper focusses on the way one can use Extended ML (EML) for formal program development, which features EML contains and why, and which pitfalls one has to avoid when formally developing ML programs. Usage, features, and pitfalls are all presented through examples
A geometric constraint over k-dimensional objects and shapes subject to business rules
This report presents a global constraint that enforces rules written
in a language based on arithmetic and first-order logic to hold among a set of objects. In a first step, the rules are rewritten to Quantifier-Free Presburger Arithmetic (QFPA) formulas. Secondly, such
formulas are compiled to generators of k-dimensional forbidden sets. Such generators are a generalization of the indexicals of cc(FD). Finally, the forbidden sets generated by such indexicals are
aggregated by a sweep-based algorithm and used for filtering. The business rules allow to express a great variety of packing and placement constraints, while admitting efficient and effective filtering of the domain variables of the k-dimensional object, without the need to use spatial data structures. The constraint was used to directly encode the packing knowledge of a major car manufacturer and tested on a set of real packing problems under these rules, as well as on a packing-unpacking problem
Higher-order Linear Logic Programming of Categorial Deduction
We show how categorial deduction can be implemented in higher-order (linear)
logic programming, thereby realising parsing as deduction for the associative
and non-associative Lambek calculi. This provides a method of solution to the
parsing problem of Lambek categorial grammar applicable to a variety of its
extensions.Comment: 8 pages LaTeX, uses eaclap.sty, to appear EACL9
An Overview of Lambda-Prolog
λ-Prolog is a logic programming language that extends Prolog by incorporating notions of higher-order functions, λ-terms, higher-order unification, polymorphic types, and mechanisms for building modules and secure abstract data types. These new features are provided in a principled fashion by extending the classical first-order theory of Horn clauses to the intuitionistic higher-order theory of hereditary Harrop formulas. The justification for considering this extension a satisfactory logic programming language is provided through the proof-theoretic notion of a uniform proof. The correspondence between each extension to Prolog and the new features in the stronger logical theory is discussed. Also discussed are various aspects of an experimental implementation of λ-Prolog
Applications of Intuitionistic Logic in Answer Set Programming
We present some applications of intermediate logics in the field of Answer
Set Programming (ASP). A brief, but comprehensive introduction to the answer
set semantics, intuitionistic and other intermediate logics is given. Some
equivalence notions and their applications are discussed. Some results on
intermediate logics are shown, and applied later to prove properties of answer
sets. A characterization of answer sets for logic programs with nested
expressions is provided in terms of intuitionistic provability, generalizing a
recent result given by Pearce.
It is known that the answer set semantics for logic programs with nested
expressions may select non-minimal models. Minimal models can be very important
in some applications, therefore we studied them; in particular we obtain a
characterization, in terms of intuitionistic logic, of answer sets which are
also minimal models. We show that the logic G3 characterizes the notion of
strong equivalence between programs under the semantic induced by these models.
Finally we discuss possible applications and consequences of our results. They
clearly state interesting links between ASP and intermediate logics, which
might bring research in these two areas together.Comment: 30 pages, Under consideration for publication in Theory and Practice
of Logic Programmin
- …