43 research outputs found
Quantifier-Free Interpolation of a Theory of Arrays
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
SIGLEAvailable from TIB Hannover: RO 7629(88-10) / FIZ - Fachinformationszzentrum Karlsruhe / TIB - Technische InformationsbibliothekDEGerman
On the complexity of Bounded Second-Order Unification and Stratified Context Unification
Minimal Generalizations under OI-Implication
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
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
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
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.