Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Matthias Dangl

dblp:159/1900 · DBLP profile ↗
← Back
10ranked-venue papers
1as first author
2since 2021 · last 2022
0000-0001-7333-6734ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 2 · 1 since 2021Theory of computation · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Program verification · 92% Software testing · 8%

Topics — the 4 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification
invariant generation
0.212015
Boosting k-Induction with Continuously-Refined Invariants · CAV (1) 2015
Program verification › model checking
k-induction
0.212015
Boosting k-Induction with Continuously-Refined Invariants · CAV (1) 2015
Program verification › model checking
witness validation
0.212015
Witness validation and stepwise testification across software verifiers · ESEC/SIGSOFT FSE 2015
Software testing
test generation
0.212022
Verification Witnesses · ACM Trans. Softw. Eng. Methodol. 2022

Methods — techniques the papers use, named apart from their topics

witness validation · 0.2error-witness-driven program analysis · 0.2
YearPublicationVenuePosition
2022 Verification Witnesses
abstract
Over the last years, witness-based validation of verification results has become an established practice in software verification: An independent validator re-establishes verification results of a software verifier using verification witnesses, which are stored in a standardized exchange format. In addition to validation, such exchangable information about proofs and alarms found by a verifier can be shared across verification tools, and users can apply independent third-party tools to visualize and explore witnesses to help them comprehend the causes of bugs or the reasons why a given program is correct. To achieve the goal of making verification results more accessible to engineers, it is necessary to consider witnesses as first-class exchangeable objects, stored independently from the source code and checked independently from the verifier that produced them, respecting the important principle of separation of concerns. We present the conceptual principles of verification witnesses, give a description of how to use them, provide a technical specification of the exchange format for witnesses, and perform an extensive experimental study on the application of witness-based result validation, using the validators CPAchecker , UAutomizer , CPA-witness2test , and FShell-witness2test .
Dirk Beyer 0001, Matthias Dangl, Daniel Dietsch, Matthias Heizmann, Thomas Lemberger 0002, Michael Tautschnig
ACM Trans. Softw. Eng. Methodol.2
2021 Correction to: A Unifying View on SMT-Based Software Verification
Dirk Beyer 0001, Matthias Dangl, Philipp Wendler
J. Autom. Reason.2
2020 Software Verification with PDR: An Implementation of the State of the Art
abstract
Property-directed reachability (PDR) is a SAT/SMT-based reachability algorithm that incrementally constructs inductive invariants. After it was successfully applied to hardware model checking, several adaptations to software model checking have been proposed. We contribute a replicable and thorough comparative evaluation of the state of the art: We (1) implemented a standalone PDR algorithm and, as improvement, a PDR-based auxiliary-invariant generator for k -induction, and (2) performed an experimental study on the largest publicly available benchmark set of C verification tasks, in which we explore the effectiveness and efficiency of software verification with PDR. The main contribution of our work is to establish a reproducible baseline for ongoing research in the area by providing a well-engineered reference implementation and an experimental evaluation of the existing techniques.
Dirk Beyer 0001, Matthias Dangl
TACAS (1)2
2018 Strategy Selection for Software Verification Based on Boolean Features - A Simple but Effective Approach
Dirk Beyer 0001, Matthias Dangl
ISoLA (2)2
2018 A Unifying View on SMT-Based Software Verification
abstract
Abstract After many years of successful development of new approaches for software verification, there is a need to consolidate the knowledge about the different abstract domains and algorithms. The goal of this paper is to provide a compact and accessible presentation of four SMT-based verification approaches in order to study them in theory and in practice. We present and compare the following different “schools of thought” of software verification: bounded model checking, k-induction, predicate abstraction, and lazy abstraction with interpolants. Those approaches are well-known and successful in software verification and have in common that they are based on SMT solving as the back-end technology. We reformulate all four approaches in the unifying theoretical framework of configurable program analysis and implement them in the verification framework CPAchecker. Based on this, we can present an evaluation that thoroughly compares the different approaches, where the core differences are expressed in configuration parameters and all other variables are kept constant (such as parser front end, SMT solver, used theory in SMT formulas). We evaluate the effectiveness and the efficiency of the approaches on a large set of verification tasks and discuss the conclusions.
Dirk Beyer 0001, Matthias Dangl, Philipp Wendler
J. Autom. Reason.2
2016 Verification-Aided Debugging: An Interactive Web-Service for Exploring Error Witnesses
Dirk Beyer 0001, Matthias Dangl
CAV (2)2
2016 Correctness witnesses: exchanging verification results between verifiers
abstract
Standard verification tools provide a counterexample to witness a specification violation, and, since a few years, such a witness can be validated by an independent validator using an exchangeable witness format. This way, information about the violation can be shared across verification tools and the user can use standard tools to visualize and explore witnesses. This technique is not yet established for the correctness case, where a program fulfills a specification. Even for simple programs, it is often difficult for users to comprehend why a given program is correct, and there is no way to independently check the verification result. We close this gap by complementing our earlier work on violation witnesses with correctness witnesses. While we use an extension of the established common exchange format for violation witnesses to represent correctness witnesses, the techniques for producing and validating correctness witnesses are different. The overall goal to make proofs available to engineers is probably as old as programming itself, and proof-carrying code was proposed two decades ago --- our goal is to make it practical: We consider witnesses as first-class exchangeable objects, stored independently from the source code and checked independently from the verifier that produced them, respecting the important principle of separation of concerns. At any time, the invariants from the correctness witness can be used to reconstruct a correctness proof to establish trust. We extended two state-of-the-art verifiers, CPAchecker and Ultimate Automizer, to produce and validate witnesses, and report that the approach is promising on a large set of verification tasks.
Dirk Beyer 0001, Matthias Dangl, Daniel Dietsch, Matthias Heizmann
SIGSOFT FSE2
2015 Boosting k-Induction with Continuously-Refined Invariants
Dirk Beyer 0001, Matthias Dangl, Philipp Wendler
CAV (1)2
2015 Witness validation and stepwise testification across software verifiers
abstract
It is commonly understood that a verification tool should provide a counterexample to witness a specification violation. Until recently, software verifiers dumped error witnesses in proprietary formats, which are often neither human- nor machine-readable, and an exchange of witnesses between different verifiers was impossible. To close this gap in software-verification technology, we have defined an exchange format for error witnesses that is easy to write and read by verification tools (for further processing, e.g., witness validation) and that is easy to convert into visualizations that conveniently let developers inspect an error path. To eliminate manual inspection of false alarms, we develop the notion of stepwise testification: in a first step, a verifier finds a problematic program path and, in addition to the verification result FALSE, constructs a witness for this path; in the next step, another verifier re-verifies that the witness indeed violates the specification. This process can have more than two steps, each reducing the state space around the error path, making it easier to validate the witness in a later step. An obvious application for testification is the setting where we have two verifiers: one that is efficient but imprecise and another one that is precise but expensive. We have implemented the technique of error-witness-driven program analysis in two state-of-the-art verification tools, CPAchecker and Ultimate Automizer, and show by experimental evaluation that the approach is applicable to a large set of verification tasks.
Dirk Beyer 0001, Matthias Dangl, Daniel Dietsch, Matthias Heizmann, Andreas Stahlbauer
ESEC/SIGSOFT FSE2
2015 CPAchecker with Support for Recursive Programs and Floating-Point Arithmetic - (Competition Contribution)
Matthias Dangl, Stefan Löwe, Philipp Wendler
TACAS1