3,208 research outputs found

    PKind: A parallel k-induction based model checker

    Full text link
    PKind is a novel parallel k-induction-based model checker of invariant properties for finite- or infinite-state Lustre programs. Its architecture, which is strictly message-based, is designed to minimize synchronization delays and easily accommodate the incorporation of incremental invariant generators to enhance basic k-induction. We describe PKind's functionality and main features, and present experimental evidence that PKind significantly speeds up the verification of safety properties and, due to incremental invariant generation, also considerably increases the number of provable ones.Comment: In Proceedings PDMC 2011, arXiv:1111.006

    Multi-Core Unit Propagation in Functional Languages

    Get PDF
    Answer Set Programming is a declarative modeling paradigm enabling specialists in diverse disciplines to describe and solve complicated problems. Growth in high performance computing is driving ever smarter and more scalable parallel answer set solvers. To improve on today\u27s cutting-edge, researchers need to develop increasingly intelligent methods for analysis of a solver\u27s runtime information. Reflecting on the solver\u27s search state typically pauses its progress until the analysis is complete. This work introduces methods from the domain of parallel functional programming and immutable type theory to construct a representation of the search state that is both amenable to introspection and efficiently scalable across multiple processor cores

    Hardware/Software Co-verification Using Path-based Symbolic Execution

    Get PDF
    Conventional tools for formal hardware/software co-verification use bounded model checking techniques to construct a single monolithic propositional formula. Formulas generated in this way are extremely complex and contain a great deal of irrelevant logic, hence are difficult to solve even by the state-of-the-art Satisfiability (SAT) solvers. In a typical hardware/software co-design the firmware only exercises a fraction of the hardware state-space, and we can use this observation to generate simpler and more concise formulas. In this paper, we present a novel verification algorithm for hardware/software co-designs that identify partitions of the firmware and the hardware logic pertaining to the feasible execution paths by means of path-based symbolic simulation with custom path-pruning, propertyguided slicing and incremental SAT solving. We have implemented this approach in our tool COVERIF. We have experimentally compared COVERIF with HW-CBMC, a monolithic BMC based co-verification tool, and observed an average speed-up of 5× over HW-CBMC for proving safety properties as well as detecting critical co-design bugs in an open-source Universal Asynchronous Receiver Transmitter design and a large SoC design
    corecore