5,188 research outputs found
Adding modular predicates to first-order fragments
We investigate the decidability of the definability problem for fragments of
first order logic over finite words enriched with modular predicates. Our
approach aims toward the most generic statements that we could achieve, which
successfully covers the quantifier alternation hierarchy of first order logic
and some of its fragments. We obtain that deciding this problem for each level
of the alternation hierarchy of both first order logic and its two-variable
fragment when equipped with all regular numerical predicates is not harder than
deciding it for the corresponding level equipped with only the linear order and
the successor. For two-variable fragments we also treat the case of the
signature containing only the order and modular predicates.Relying on some
recent results, this proves the decidability for each level of the alternation
hierarchy of the two-variable first order fragmentwhile in the case of the
first order logic the question remains open for levels greater than two.The
main ingredients of the proofs are syntactic transformations of first order
formulas as well as the algebraic framework of finite categories
Incremental and Modular Context-sensitive Analysis
Context-sensitive global analysis of large code bases can be expensive, which
can make its use impractical during software development. However, there are
many situations in which modifications are small and isolated within a few
components, and it is desirable to reuse as much as possible previous analysis
results. This has been achieved to date through incremental global analysis
fixpoint algorithms that achieve cost reductions at fine levels of granularity,
such as changes in program lines. However, these fine-grained techniques are
not directly applicable to modular programs, nor are they designed to take
advantage of modular structures. This paper describes, implements, and
evaluates an algorithm that performs efficient context-sensitive analysis
incrementally on modular partitions of programs. The experimental results show
that the proposed modular algorithm shows significant improvements, in both
time and memory consumption, when compared to existing non-modular, fine-grain
incremental analysis techniques. Furthermore, thanks to the proposed
inter-modular propagation of analysis information, our algorithm also
outperforms traditional modular analysis even when analyzing from scratch.Comment: 56 pages, 27 figures. To be published in Theory and Practice of Logic
Programming. v3 corresponds to the extended version of the ICLP2018 Technical
Communication. v4 is the revised version submitted to Theory and Practice of
Logic Programming. v5 (this one) is the final author version to be published
in TPL
A new module system for prolog
It is now widely accepted that separating programs into modules has proven very useful in program development and maintenance. While many Prolog implementations include useful module systems, we feel that these systems can be improved in a number of ways, such as, for example, being more amenable to effective global analysis and allowing sepárate compilation or sensible creation of standalone executables. We discuss a number of issues related to the design of such an improved module system for Prolog. Based on this, we present the choices made in the Ciao module system, which has been designed to meet a number of objectives: allowing sepárate compilation, extensibility in features and in syntax, amenability to modular global analysis, etc
TOR: modular search with hookable disjunction
Horn Clause Programs have a natural exhaustive depth-first procedural
semantics. However, for many programs this semantics is
ineffective. In order to compute useful solutions, one needs the
ability to modify the search method that explores the alternative
execution branches.
Tor, a well-defined hook into Prolog disjunction, provides this ability.
It is light-weight thanks to its library approach and efficient
because it is based on program transformation.
Tor is general enough to mimic search-modifying
predicates like ECLiPSe's search/6. Moreover, Tor supports
modular composition of search methods and other hooks.
The Tor library is already
provided and used as an add-on to SWI-Prolog.publisher: Elsevier
articletitle: Tor: Modular search with hookable disjunction
journaltitle: Science of Computer Programming
articlelink: http://dx.doi.org/10.1016/j.scico.2013.05.008
content_type: article
copyright: Copyright © 2013 Elsevier B.V. All rights reserved.status: publishe
Monadic Second-Order Logic with Arbitrary Monadic Predicates
We study Monadic Second-Order Logic (MSO) over finite words, extended with
(non-uniform arbitrary) monadic predicates. We show that it defines a class of
languages that has algebraic, automata-theoretic and machine-independent
characterizations. We consider the regularity question: given a language in
this class, when is it regular? To answer this, we show a substitution property
and the existence of a syntactical predicate.
We give three applications. The first two are to give very simple proofs that
the Straubing Conjecture holds for all fragments of MSO with monadic
predicates, and that the Crane Beach Conjecture holds for MSO with monadic
predicates. The third is to show that it is decidable whether a language
defined by an MSO formula with morphic predicates is regular.Comment: Conference version: MFCS'14, Mathematical Foundations of Computer
Science Journal version: ToCL'17, Transactions on Computational Logi
- …