6 research outputs found

    An extension of lazy abstraction with interpolation for programs with arrays

    Get PDF
    Lazy abstraction with interpolation-based refinement has been shown to be a powerful technique for verifying imperative programs. In presence of arrays, however, the method suffers from an intrinsic limitation, due to the fact that invariants needed for verification usually contain universally quantified variables, which are not present in program specifications. In this work we present an extension of the interpolation-based lazy abstraction framework in which arrays of unknown length can be handled in a natural manner. In particular, we exploit the Model Checking Modulo Theories framework to derive a backward reachability version of lazy abstraction that supports reasoning about arrays. The new approach has been implemented in a tool, called safari, which has been validated on a wide range of benchmarks. We show by means of experiments that our approach can synthesize and prove universally quantified properties over arrays in a completely automatic fashion

    Automated termination in model checking modulo theories

    No full text
    We use a declarative SMT-based approach to model-checking of infinite state systems to design a procedure for automatically estab- lishing the termination of backward reachability by using well-quasi-orderings. Besides showing that our procedure succeeds in many in-stances of problems covered by general termination results, we argue that it could predict termination also on single problems outside the scope of applicability of such general results
    corecore