80,349 research outputs found
Structural Resolution for Logic Programming
We introduce a Three Tier Tree Calculus (T 3C) that defines in a systematic way three tiers of tree structures underlying proof search in logic programming. We use T 3C to define a new – structural –version of resolution for logic programming
Structural resolution for abstract compilation of object-oriented languages
We propose abstract compilation for precise static type analysis of
object-oriented languages based on coinductive logic programming. Source code
is translated to a logic program, then type-checking and inference problems
amount to queries to be solved with respect to the resulting logic program. We
exploit a coinductive semantics to deal with infinite terms and proofs produced
by recursive types and methods. Thanks to the recent notion of structural
resolution for coinductive logic programming, we are able to infer very precise
type information, including a class of irrational recursive types causing
non-termination for previously considered coinductive semantics. We also show
how to transform logic programs to make them satisfy the preconditions for the
operational semantics of structural resolution, and we prove this step does not
affect the semantics of the logic program.Comment: In Proceedings CoALP-Ty'16, arXiv:1709.0419
Logical Foundations of Object-Oriented and Frame-Based Languages
We propose a novel logic, called Frame Logic (abbr., F-logic), that accounts in a clean, declarative fashion for most of the structural aspects of object-oriented and frame-based languages. These features include object identity, complex objects, inheritance, polymorphic types, methods, encapsulation, and others. In a sense, F-logic stands in the same relationship to the object-oriented paradigm as classical predicate calculus stands to relational programming. The syntax of F-logic is higher-order, which, among other things, allows the user to explore data and schema using the same declarative language. F-logic has a model-theoretic semantics and a sound and complete resolution-based proof procedure. This paper also discusses various aspects of programming in declarative object-oriented languages based on F-logic
Structural Resolution with Co-inductive Loop Detection
A way to combine co-SLD style loop detection with structural resolution was
found and is introduced in this work, to extend structural resolution with
co-induction. In particular, we present the operational semantics, called
co-inductive structural resolution, of this novel combination and prove its
soundness with respect to the greatest complete Herbrand model.Comment: In Proceedings CoALP-Ty'16, arXiv:1709.0419
Operational Semantics of Resolution and Productivity in Horn Clause Logic
This paper presents a study of operational and type-theoretic properties of
different resolution strategies in Horn clause logic. We distinguish four
different kinds of resolution: resolution by unification (SLD-resolution),
resolution by term-matching, the recently introduced structural resolution, and
partial (or lazy) resolution. We express them all uniformly as abstract
reduction systems, which allows us to undertake a thorough comparative analysis
of their properties. To match this small-step semantics, we propose to take
Howard's System H as a type-theoretic semantic counterpart. Using System H, we
interpret Horn formulas as types, and a derivation for a given formula as the
proof term inhabiting the type given by the formula. We prove soundness of
these abstract reduction systems relative to System H, and we show completeness
of SLD-resolution and structural resolution relative to System H. We identify
conditions under which structural resolution is operationally equivalent to
SLD-resolution. We show correspondence between term-matching resolution for
Horn clause programs without existential variables and term rewriting.Comment: Journal Formal Aspect of Computing, 201
Productive Corecursion in Logic Programming
Logic Programming is a Turing complete language. As a consequence, designing
algorithms that decide termination and non-termination of programs or decide
inductive/coinductive soundness of formulae is a challenging task. For example,
the existing state-of-the-art algorithms can only semi-decide coinductive
soundness of queries in logic programming for regular formulae. Another, less
famous, but equally fundamental and important undecidable property is
productivity. If a derivation is infinite and coinductively sound, we may ask
whether the computed answer it determines actually computes an infinite
formula. If it does, the infinite computation is productive. This intuition was
first expressed under the name of computations at infinity in the 80s. In
modern days of the Internet and stream processing, its importance lies in
connection to infinite data structure processing.
Recently, an algorithm was presented that semi-decides a weaker property --
of productivity of logic programs. A logic program is productive if it can give
rise to productive derivations. In this paper we strengthen these recent
results. We propose a method that semi-decides productivity of individual
derivations for regular formulae. Thus we at last give an algorithmic
counterpart to the notion of productivity of derivations in logic programming.
This is the first algorithmic solution to the problem since it was raised more
than 30 years ago. We also present an implementation of this algorithm.Comment: Paper presented at the 33nd International Conference on Logic
Programming (ICLP 2017), Melbourne, Australia, August 28 to September 1, 2017
16 pages, LaTeX, no figure
Constraint Logic Programming for Natural Language Processing
This paper proposes an evaluation of the adequacy of the constraint logic
programming paradigm for natural language processing. Theoretical aspects of
this question have been discussed in several works. We adopt here a pragmatic
point of view and our argumentation relies on concrete solutions. Using actual
contraints (in the CLP sense) is neither easy nor direct. However, CLP can
improve parsing techniques in several aspects such as concision, control,
efficiency or direct representation of linguistic formalism. This discussion is
illustrated by several examples and the presentation of an HPSG parser.Comment: 15 pages, uuencoded and compressed postscript to appear in
Proceedings of the 5th Int. Workshop on Natural Language Understanding and
Logic Programming. Lisbon, Portugal. 199
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
A Type-Theoretic Approach to Structural Resolution
Structural resolution (or S-resolution) is a newly proposed alternative to
SLD-resolution that allows a systematic separation of derivations into
term-matching and unification steps. Productive logic programs are those for
which term-matching reduction on any query must terminate. For productive
programs with coinductive meaning, finite term-rewriting reductions can be seen
as measures of observation in an infinite derivation. Ability of handling
corecursion in a productive way is an attractive computational feature of
S-resolution.
In this paper, we make first steps towards a better conceptual understanding
of operational properties of S-resolution as compared to SLD-resolution. To
this aim, we propose a type system for the analysis of both SLD-resolution and
S-resolution.
We formulate S-resolution and SLD-resolution as reduction systems, and show
their soundness relative to the type system. One of the central methods of this
paper is realizability transformation, which makes logic programs productive
and non-overlapping. We show that S-resolution and SLD-resolution are only
equivalent for programs with these two properties.Comment: LOPSTR 201
- …