3 research outputs found

    Deciding Second-order Logics using Database Evaluation Techniques

    Get PDF
    We outline a novel technique that maps the satisfiability problems of second-order logics, in particular WSnS (weak monadic second-order logic with n successors), S1S (monadic second-order logic with one successor), and of μ-calculus, to the problem of query evaluation of Complex-value Datalog queries. In this dissertation, we propose techniques that use database evaluation and optimization techniques for automata-based decision procedures for the above logics. We show how the use of advanced implementation techniques for Deductive databases and for Logic Programs, in particular the use of tabling, yields a considerable improvement in performance over more traditional approaches. We also explore various optimizations of the proposed technique, in particular we consider variants of tabling and goal reordering. We then show that the decision problem for S1S can be mapped to the problem of query evaluation of Complex-value Datalog queries. We explore optimizations that can be applied to various types of formulas. Last, we propose analogous techniques that allow us to approach μ-calculus satisfiability problem in an incremental fashion and without the need for re-computation. In addition, we outline a top-down evaluation technique to drive our incremental procedure and propose heuristics that guide the problem partitioning to reduce the size of the problems that need to be solved

    Principles and Practice of Unification Factoring

    No full text
    Devices]: Models of Computation---automata; F.2.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems---pattern matching General Terms: Algorithms, Languages, Theory Additional Key Words and Phrases: Indexing, logic programming, trie minimization, unification 1. INTRODUCTION In logic programming languages, such as Prolog, a predicate is defined by a sequence of Horn clauses. A clause becomes applicable for resolution if its head unifies with a selected goal; and each applicable clause is invoked in textual order. Unification of a clause head with a goal involves two basic types of operations: elementary match operations and substitution operations for variables in the two A preliminary version of this article was presented at POPL '95. This work was supported in part by NSF grants CCR-9102159, CCR-9102989, CCR-9404921, CDA-9303181, CDA-9504275, INT-9314412, and ONR grant 400X116YIP01. Authors' addresses: S. Dawson, Computer Science Laboratory, SRI In..
    corecore