16,177 research outputs found

    Partial Quantifier Elimination

    Full text link
    We consider the problem of Partial Quantifier Elimination (PQE). Given formula exists(X)[F(X,Y) & G(X,Y)], where F, G are in conjunctive normal form, the PQE problem is to find a formula F*(Y) such that F* & exists(X)[G] is logically equivalent to exists(X)[F & G]. We solve the PQE problem by generating and adding to F clauses over the free variables that make the clauses of F with quantified variables redundant. The traditional Quantifier Elimination problem (QE) is a special case of PQE where G is empty so all clauses of the input formula with quantified variables need to be made redundant. The importance of PQE is twofold. First, many problems are more naturally formulated in terms of PQE rather than QE. Second, in many cases PQE can be solved more efficiently than QE. We describe a PQE algorithm based on the machinery of dependency sequents and give experimental results showing the promise of PQE

    Property Checking Without Invariant Generation

    Full text link
    We introduce a procedure for proving safety properties. This procedure is based on a technique called Partial Quantifier Elimination (PQE). In contrast to complete quantifier elimination, in PQE, only a part of the formula is taken out of the scope of quantifiers. So, PQE can be dramatically more efficient than complete quantifier elimination. The appeal of our procedure is twofold. First, it can prove a property without generating an inductive invariant. Second, it employs depth-first search and so can be used to find deep bugs

    Quantifier elimination in C*-algebras

    Full text link
    The only C*-algebras that admit elimination of quantifiers in continuous logic are C,C2\mathbb{C}, \mathbb{C}^2, C(C(Cantor space)) and M2(C)M_2(\mathbb{C}). We also prove that the theory of C*-algebras does not have model companion and show that the theory of Mn(On+1)M_n(\mathcal {O_{n+1}}) is not \forall\exists-axiomatizable for any n2n\geq 2.Comment: More improvements and bug fixes. To appear in IMR

    Transfer Function Synthesis without Quantifier Elimination

    Get PDF
    Traditionally, transfer functions have been designed manually for each operation in a program, instruction by instruction. In such a setting, a transfer function describes the semantics of a single instruction, detailing how a given abstract input state is mapped to an abstract output state. The net effect of a sequence of instructions, a basic block, can then be calculated by composing the transfer functions of the constituent instructions. However, precision can be improved by applying a single transfer function that captures the semantics of the block as a whole. Since blocks are program-dependent, this approach necessitates automation. There has thus been growing interest in computing transfer functions automatically, most notably using techniques based on quantifier elimination. Although conceptually elegant, quantifier elimination inevitably induces a computational bottleneck, which limits the applicability of these methods to small blocks. This paper contributes a method for calculating transfer functions that finesses quantifier elimination altogether, and can thus be seen as a response to this problem. The practicality of the method is demonstrated by generating transfer functions for input and output states that are described by linear template constraints, which include intervals and octagons.Comment: 37 pages, extended version of ESOP 2011 pape

    Partial Quantifier Elimination By Certificate Clauses

    Full text link
    We study partial quantifier elimination (PQE) for propositional CNF formulas. In contrast to full quantifier elimination, in PQE, one can limit the set of clauses taken out of the scope of quantifiers to a small subset of target clauses. The appeal of PQE is twofold. First, PQE can be dramatically simpler than full quantifier elimination. Second, it provides a language for performing incremental computations. Many verification problems (e.g. equivalence checking and model checking) are inherently incremental and so can be solved in terms of PQE. Our approach is based on deriving clauses depending only on unquantified variables that make the target clauses redundant\mathit{redundant}. Proving redundancy of a target clause is done by construction of a ``certificate'' clause implying the former. We describe a PQE algorithm called START\mathit{START} that employs the approach above. We apply START\mathit{START} to generating properties of a design implementation that are not implied by specification. The existence of an unwanted\mathit{unwanted} property means that this implementation is buggy. Our experiments with HWMCC-13 benchmarks suggest that START\mathit{START} can be used for generating properties of real-life designs

    Lower Bounds for RAMs and Quantifier Elimination

    Full text link
    We are considering RAMs NnN_{n}, with wordlength n=2dn=2^{d}, whose arithmetic instructions are the arithmetic operations multiplication and addition modulo 2n2^{n}, the unary function min{2x,2n1} \min\lbrace 2^{x}, 2^{n}-1\rbrace, the binary functions x/y\lfloor x/y\rfloor (with x/0=0\lfloor x/0 \rfloor =0), max(x,y)\max(x,y), min(x,y)\min(x,y), and the boolean vector operations ,,¬\wedge,\vee,\neg defined on 0,10,1 sequences of length nn. It also has the other RAM instructions. The size of the memory is restricted only by the address space, that is, it is 2n2^{n} words. The RAMs has a finite instruction set, each instruction is encoded by a fixed natural number independently of nn. Therefore a program PP can run on each machine NnN_{n}, if n=2dn=2^{d} is sufficiently large. We show that there exists an ϵ>0\epsilon>0 and a program PP, such that it satisfies the following two conditions. (i) For all sufficiently large n=2dn=2^{d}, if PP running on NnN_{n} gets an input consisting of two words aa and bb, then, in constant time, it gives a 0,10,1 output Pn(a,b)P_{n}(a,b). (ii) Suppose that QQ is a program such that for each sufficiently large n=2dn=2^{d}, if QQ, running on NnN_{n}, gets a word aa of length nn as an input, then it decides whether there exists a word bb of length nn such that Pn(a,b)=0P_{n}(a,b)=0. Then, for infinitely many positive integers dd, there exists a word aa of length n=2dn=2^{d}, such that the running time of QQ on NnN_{n} at input aa is at least ϵ(logd)12(loglogd)1\epsilon (\log d)^{\frac{1}{2}} (\log \log d)^{-1}
    corecore