43 research outputs found

    Quantifier-Free Interpolation of a Theory of Arrays

    Get PDF
    The use of interpolants in model checking is becoming an enabling technology to allow fast and robust verification of hardware and software. The application of encodings based on the theory of arrays, however, is limited by the impossibility of deriving quantifier- free interpolants in general. In this paper, we show that it is possible to obtain quantifier-free interpolants for a Skolemized version of the extensional theory of arrays. We prove this in two ways: (1) non-constructively, by using the model theoretic notion of amalgamation, which is known to be equivalent to admit quantifier-free interpolation for universal theories; and (2) constructively, by designing an interpolating procedure, based on solving equations between array updates. (Interestingly, rewriting techniques are used in the key steps of the solver and its proof of correctness.) To the best of our knowledge, this is the first successful attempt of computing quantifier- free interpolants for a variant of the theory of arrays with extensionality

    Computational aspects of an order-sorted logic with term declarations

    Get PDF
    SIGLEAvailable from TIB Hannover: RO 7629(88-10) / FIZ - Fachinformationszzentrum Karlsruhe / TIB - Technische InformationsbibliothekDEGerman

    Conceptual Structures in Mathematical Logic and Their Formal Representation

    No full text

    Minimal Generalizations under OI-Implication

    No full text
    The adoption of the object identity bias for weakening implication has lead to the definition of OI-implication, a generalization model for clausal spaces. In this paper, we investigate on the generalization hierarchy in the space ordered by OI-implication. The decidability of this relationship and the existence of minimal generalizations in the related search space is demonstrated. These results can be exploited for constructing refinement operators for incremental relational learning

    Flattening and implication

    No full text
    Abstract. Flattening is a method to make a definite clause functionfree. For a definite clause C, flattening replaces every occurrence of a term f(t1, ···,tn)inC with a new variable v and adds an atom pf (t1, ···,tn,v) with the associated predicate symbol pf with f to the body of C. Here, we denote the resulting function-free definite clause from C by flat(C). In this paper, we discuss the relationship between flattening and implication. For a definite program Π and a definite clause D, it is known that if flat(Π) | = flat(D) then Π | = D, where flat(Π) is the set of flat(C) for each C ∈ Π. First, we show that the converse of the above statement does not hold even if Π = {C}, that is, there exist definite clauses C and D such that C | = D but flat(C) �| = flat(D). Furthermore, we investigate the conditions of C and D satisfying that C | = D if and only if flat(C) | = flat(D). Then, we show that, if (1) C is not self-resolving and D is not tautological, (2) D is not ambivalent, or (3) C is singly recursive, then the statement holds.

    Unification modulo ACUI plus Homomorphisms/Distributivity

    No full text
    E-unification problems are central in automated deduction. In this paper, we consider theories that are extensions of the well-known ACI or ACUI, obtained by adding finitely many homomorphism symbols, or a symbol `#' that distributes over the ACUI- symbol denoted `+'. We first show that when we adjoin a set of commuting homomorphisms to ACUI, unification is undecidable. We then consider the ACUID l -unification problem, i.e., unification modulo ACUI plus left-distributivity of a given `#' w.r.t. `+', and prove its NEXPTIME-decidability. When we assume the symbol `#' to be 2-sided distributive w.r.t

    Assertion checking over combined abstraction of linear arithmetic and uninterpreted functions

    No full text
    Abstract. This paper presents results on the problem of checking equality assertions in programs whose expressions have been abstracted using combination of linear arithmetic and uninterpreted functions, and whose conditionals are treated as non-deterministic. We first show that the problem of assertion checking for this combined abstraction is coNP-hard, even for loop-free programs. This result is quite surprising since assertion checking for the individual abstractions of linear arithmetic and uninterpreted functions can be performed efficiently in polynomial time. Next, we give an assertion checking algorithm for this combined abstraction, thereby proving decidability of this problem despite the underlying lattice having infinite height. Our algorithm is based on an important connection between unification theory and program analysis. Specifically, we show that weakest preconditions can be strengthened by replacing equalities by their unifiers, without losing any precision, during backward analysis of programs.
    corecore