6 research outputs found
Bialgebraic Semantics for Logic Programming
Bialgebrae provide an abstract framework encompassing the semantics of
different kinds of computational models. In this paper we propose a bialgebraic
approach to the semantics of logic programming. Our methodology is to study
logic programs as reactive systems and exploit abstract techniques developed in
that setting. First we use saturation to model the operational semantics of
logic programs as coalgebrae on presheaves. Then, we make explicit the
underlying algebraic structure by using bialgebrae on presheaves. The resulting
semantics turns out to be compositional with respect to conjunction and term
substitution. Also, it encodes a parallel model of computation, whose soundness
is guaranteed by a built-in notion of synchronisation between different
threads
Coalgebraic Semantics for Probabilistic Logic Programming
Probabilistic logic programming is increasingly important in artificial
intelligence and related fields as a formalism to reason about uncertainty. It
generalises logic programming with the possibility of annotating clauses with
probabilities. This paper proposes a coalgebraic semantics on probabilistic
logic programming. Programs are modelled as coalgebras for a certain functor F,
and two semantics are given in terms of cofree coalgebras. First, the
F-coalgebra yields a semantics in terms of derivation trees. Second, by
embedding F into another type G, as cofree G-coalgebra we obtain a `possible
worlds' interpretation of programs, from which one may recover the usual
distribution semantics of probabilistic logic programming. Furthermore, we show
that a similar approach can be used to provide a coalgebraic semantics to
weighted logic programming
Coalgebraic semantics for parallel derivation strategies in logic programming
Logic programming, a class of programming languages based on first-order logic, provides simple and efficient tools for goal-oriented proof-search. Logic programming supports recursive computations, and some logic programs resemble the inductive or coinductive definitions written in functional programming languages. In this paper, we give a coalgebraic semantics to logic programming. We show that ground logic programs can be modelled by either P f P f -coalgebras or P f List-coalgebras on Set. We analyse different kinds of derivation strategies and derivation trees (proof-trees, SLD-trees, and-or parallel trees) used in logic programming, and show how they can be modelled coalgebraically.</p
Coalgebraic semantics for parallel derivation strategies in logic programming
Logic programming, a class of programming languages based on first-order logic, provides simple and efficient tools for goal-oriented proof-search. Logic programming supports recursive computations, and some logic programs resemble the inductive or coinductive definitions written in functional programming languages. In this paper, we give a coalgebraic semantics to logic programming. We show that ground logic programs can be modelled by either P f P f -coalgebras or P f List-coalgebras on Set. We analyse different kinds of derivation strategies and derivation trees (proof-trees, SLD-trees, and-or parallel trees) used in logic programming, and show how they can be modelled coalgebraically.</p