Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Daniel Kroening is active.

Publication


Featured researches published by Daniel Kroening.


tools and algorithms for construction and analysis of systems | 2004

A Tool for Checking ANSI-C Programs

Edmund M. Clarke; Daniel Kroening; Flavio Lerda

We present a tool for the formal verification of ANSI-C programs using Bounded Model Checking (BMC). The emphasis is on usability: the tool supports almost all ANSI-C language features, including pointer constructs, dynamic memory allocation, recursion, and the float and double data types. From the perspective of the user, the verification is highly automated: the only input required is the BMC bound. The tool is integrated into a graphical user interface. This is essential for presenting long counterexample traces: the tool allows stepping through the trace in the same way a debugger allows stepping through a program.


design automation conference | 2003

Behavioral consistency of C and Verilog programs using bounded model checking

Edmund M. Clarke; Daniel Kroening; Karen Yorav

We present an algorithm that checks behavioral consistency between an ANSI-C program and a circuit given in Verilog using Bounded Model Checking. Both the circuit and the program are unwound and translated into a formula that represents behavioral consistency. The formula is then checked using a SAT solver. We are able to translate C programs that include side effects, pointers, dynamic memory allocation, and loops with conditions that cannot be evaluated statically. We describe experimental results on various reactive circuits and programs, including a small processor given in Verilog and its Instruction Set Architecture given in ANSI-C.


IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems | 2008

A Survey of Automated Techniques for Formal Software Verification

Vijay D'Silva; Daniel Kroening; Georg Weissenbacher

The quality and the correctness of software are often the greatest concern in electronic systems. Formal verification tools can provide a guarantee that a design is free of specific flaws. This paper surveys algorithms that perform automatic static analysis of software to detect programming errors or prove their absence. The three techniques considered are static analysis with abstract domains, model checking, and bounded model checking. A short tutorial on these techniques is provided, highlighting their differences when applied to practical problems. This paper also surveys tools implementing these techniques and describes their merits and shortcomings.


formal methods | 2004

Predicate Abstraction of ANSI-C Programs Using SAT

Edmund M. Clarke; Daniel Kroening; Natasha Sharygina; Karen Yorav

Predicate abstraction is a major method for verification of software. However, the generation of the abstract Boolean program from the set of predicates and the original program suffers from an exponential number of theorem prover calls as well as from soundness issues. This paper presents a novel technique that uses an efficient SAT solver for generating the abstract transition relations of ANSI-C programs. The SAT-based approach computes a more precise and safe abstraction compared to existing predicate abstraction techniques.


tools and algorithms for construction and analysis of systems | 2005

SATABS: SAT-Based predicate abstraction for ANSI-C

Edmund M. Clarke; Daniel Kroening; Natasha Sharygina; Karen Yorav

This paper presents a model checking tool, SatAbs, that implements a predicate abstraction refinement loop. Existing software verification tools such as Slam, Blast, or Magic use decision procedures for abstraction and simulation that are limited to integers. SatAbs overcomes these limitations by using a SAT-solver. This allows the model checker to handle the semantics of the ANSI-C standard accurately. This includes a sound treatment of bit-vector overflow, and of the ANSI-C pointer arithmetic constructs.


International Journal on Software Tools for Technology Transfer | 2006

Error explanation with distance metrics

Alex Groce; Sagar Chaki; Daniel Kroening; Ofer Strichman

In the event that a system does not satisfy a specification, a model checker will typically automatically produce a counterexample trace that shows a particular instance of the undesirable behavior. Unfortunately, the important steps that follow the discovery of a counterexample are generally not automated. The user must first decide if the counterexample shows genuinely erroneous behavior or is an artifact of improper specification or abstraction. In the event that the error is real, there remains the difficult task of understanding the error well enough to isolate and modify the faulty aspects of the system. This paper describes a (semi-)automated approach for assisting users in understanding and isolating errors in ANSI C programs. The approach, derived from Lewis’ counterfactual approach to causality, is based on distance metrics for program executions. Experimental results show that the power of the model checking engine can be used to provide assistance in understanding errors and to isolate faulty portions of the source code.


international conference on formal methods and models for co design | 2005

Formal verification of SystemC by automatic hardware/software partitioning

Daniel Kroening; Natasha Sharygina

Variants of general-purpose programming languages, like SystemC, are increasingly used to specify system designs that have both hardware and software parts. The system-level languages allow a flexible partitioning in the design of the hardware and software. Moreover, many properties depend on the combination of hardware and software and cannot be verified on either part alone. Existing tools either apply non-formal approaches or handle only the low-level parts of the language. This papers presents a new technique that handles both hardware and software parts of a system description. This is done by automatically partitioning the uniform system description into synchronous (hardware) and asynchronous (software) parts. This technique has been implemented and applied to system level descriptions of several industrial examples. The hardware/software partitioning improves the performance of the verification compared to the monolithic approach.


tools and algorithms for construction and analysis of systems | 2007

Deciding bit-vector arithmetic with abstraction

Randal E. Bryant; Daniel Kroening; Joël Ouaknine; Sanjit A. Seshia; Ofer Strichman; Bryan A. Brady

We present a new decision procedure for finite-precision bitvector arithmetic with arbitrary bit-vector operations. Our procedure alternates between generating under- and over-approximations of the original bit-vector formula. An under-approximation is obtained by a translation to propositional logic in which some bit-vector variables are encoded with fewer Boolean variables than their width. If the under-approximation is unsatisfiable, we use the unsatisfiable core to derive an over-approximation based on the subset of predicates that participated in the proof of unsatisfiability. If this over-approximation is satisfiable, the satisfying assignment guides the refinement of the previous under-approximation by increasing, for some bit-vector variables, the number of Boolean variables that encode them. We present experimental results that suggest that this abstraction-based approach can be considerably more efficient than directly invoking the SAT solver on the original formula as well as other competing decision procedures.


verification model checking and abstract interpretation | 2004

Completeness and Complexity of Bounded Model Checking

Edmund M. Clarke; Daniel Kroening; Joël Ouaknine; Ofer Strichman

For every finite model M and an LTL property ϕ, there exists a number \(\mathcal{CT}\) (the Completeness Threshold) such that if there is no counterexample to ϕ in M of length \(\mathcal{CT}\) or less, then M⊧ϕ. Finding this number, if it is sufficiently small, offers a practical method for making Bounded Model Checking complete. We describe how to compute an over-approximation to \(\mathcal{CT}\) for a general LTL property using Buchi automata, following the Vardi-Wolper LTL model checking framework. Based on the value of \(\mathcal{CT}\), we prove that the complexity of standard SAT-based BMC is doubly exponential, and that consequently there is a complexity gap of an exponent between this procedure and standard LTL model checking. We discuss ways to bridge this gap.


verification model checking and abstract interpretation | 2010

Interpolant strength

Vijay D’Silva; Daniel Kroening; Mitra Purandare; Georg Weissenbacher

Interpolant-based model checking is an approximate method for computing invariants of transition systems. The performance of the model checker is contingent on the approximation computed, which in turn depends on the logical strength of the interpolants. A good approximation is coarse enough to enable rapid convergence but strong enough to be contained within the weakest inductive invariant. We present a system for constructing propositional interpolants of different strength from a resolution refutation. This system subsumes existing methods and allows interpolation systems to be ordered by the logical strength of the obtained interpolants. Interpolants of different strength can also be obtained by transforming a resolution proof. We analyse an existing proof transformation, generalise it, and characterise the interpolants obtained.

Collaboration


Dive into the Daniel Kroening's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Edmund M. Clarke

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Thomas Wahl

Northeastern University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Ofer Strichman

Technion – Israel Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Georg Weissenbacher

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Michael Tautschnig

Queen Mary University of London

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge