Daniel Dietsch

dblp:59/9798 · DBLP profile ↗
← Back
33ranked-venue papers
8as first author
11since 2021 · last 2026
0000-0002-8947-5373ORCID · verified

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

Software engineering, systems software and programming languages · 32 · 8 first-author · 11 since 2021Theory of computation · 4 · 2 first-author
YearPublicationVenuePosition
2026 Ultimate TestGen: Combining Parallel Trace Abstraction and Symbolic Path Execution (Competition Contribution)
Max Barth, Daniel Dietsch, Matthias Heizmann, Marie-Christine Jakobs
FASE2
2026 Ultimate Paralizer: Parallel Trace Abstraction (Competition Contribution)
Max Barth, Daniel Dietsch, Matthias Heizmann, Marie-Christine Jakobs
TACAS (2)2
2026 Ultimate Automizer with a One-Dimensional Memory Model - (Competition Contribution)
Manuel Bentele, Max Barth, Marcel Ebbinghaus, Jan Körner, Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Frank Schüssele, Andreas Podelski
TACAS (2)5
2024 Ultimate TestGen: Test-Case Generation with Automata-based Software Model Checking (Competition Contribution)
abstract
Abstract We introduce Ultimate TestGen, a novel tool for automatic test-case generation. Like many other test-case generators, Ultimate TestGen builds on verification technology, i.e., it checks the (un)reachability of test goals and generates test cases from counterexamples. In contrast to existing tools, it applies trace abstraction, an automata-theoretic approach to software model checking, which is implemented in the successful verifier Ultimate Automizer. To avoid that the same test goal is reached again, Ultimate TestGen extends the automata-theoretic model checking approach with error automata.
Max Barth, Daniel Dietsch, Matthias Heizmann, Marie-Christine Jakobs
FASE2
2024 Ultimate Automizer and the Abstraction of Bitwise Operations - (Competition Contribution)
abstract
Abstract The verification ofUltimate Automizerworks on an SMT-LIB-based model of a C program. If we choose an SMT-LIB theory of (mathematical) integers, the translation is not precise, because we overapproximate bitwise operations. In this paper we present a translation for bitwise operations that improves the precision of this overapproximation.
Frank Schüssele, Manuel Bentele, Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Andreas Podelski
TACAS (3)3
2023 Ultimate Taipan and Race Detection in Ultimate - (Competition Contribution)
abstract
Abstract Ultimate Taipan integrates trace abstraction with algebraic program analysis on path programs. Taipan supports data race checking in concurrent programs through a reduction to reachability checking. Though the subsequent verification is not tuned for data race checking, the results are encouraging.
Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Frank Schüssele, Andreas Podelski
TACAS (2)1
2023 Ultimate Automizer and the CommuHash Normal Form - (Competition Contribution)
abstract
Abstract The verification approach of Ultimate Automizer utilizes SMT formulas. This paper presents techniques to keep the size of the formulas small. We focus especially on a normal form, called CommuHash normal form that was easy to implement and had a significant impact on the runtime of our tool.
Matthias Heizmann, Max Barth, Daniel Dietsch, Leonard Fichtner, Jochen Hoenicke, Dominik Klumpp, Mehdi Naouar, Tanja Schindler, Frank Schüssele, Andreas Podelski
TACAS (2)3
2022 Ultimate GemCutter and the Axes of Generalization - (Competition Contribution)
abstract
Abstract Ultimate GemCutter verifies concurrent programs using the CEGAR paradigm, by generalizing from spurious counterexample traces to larger sets of correct traces. We integrate classical CEGAR generalization with orthogonal generalization across interleavings. Thereby, we are able to prove correctness of programs otherwise out-of-reach for interpolation-based verification. The competition results show significant advantages over other concurrency approaches in the Ultimate family.
Dominik Klumpp, Daniel Dietsch, Matthias Heizmann, Frank Schüssele, Marcel Ebbinghaus, Azadeh Farzan, Andreas Podelski
TACAS (2)2
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.3
2021 Proving LTL Properties of Bitvector Programs and Decompiled Binaries
Yuandong Cyrus Liu, Chengbin Pang, Daniel Dietsch, Eric Koskinen, Ton Chanh Le, Georgios Portokalidis, Jun Xu 0024
APLAS3
2021 Verification of Concurrent Programs Using Petri Net Unfoldings
Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Mehdi Naouar, Andreas Podelski, Claus Schätzle
VMCAI1
2020 Ultimate Taipan with Symbolic Interpretation and Fluid Abstractions - (Competition Contribution)
abstract
Abstract Ultimate Taipan is a software model checker that combines trace abstraction with abstract interpretation on path programs. In this year’s version, we replaced our abstract interpretation engine and now use a combination of multiple abstraction functions, fixpoint computation, algebraic program analysis, and SMT solving. Our new approach will allow us to integrate new techniques more easily.
Daniel Dietsch, Matthias Heizmann, Alexander Nutz, Claus Schätzle, Frank Schüssele
TACAS (2)1
2019 Scalable Analysis of Real-Time Requirements
abstract
Detecting issues in real-time requirements is usually a trade-off between flexibility and cost: the effort expended depends on how expensive it is to fix a defect introduced by faulty, ambiguous or incomplete requirements. The most rigorous techniques for real-time requirement analysis depend on the formalisation of these requirements. Completely formalised real-time requirements allow the detection of issues that are hard to find through other means, like real-time inconsistency (i.e., "do the requirements lead to deadlocks and starvation of the system?") or vacuity (i.e., "are some requirements trivially satisfied"). Current analysis techniques for real-time requirements suffer from scalability issues - larger sets of such requirements are usually intractable. We present a new technique to analyse formalised real-time requirements for various properties. Our technique leverages recent advances in software model checking and automatic theorem proving by converting the analysis problem for real-time requirements to a program analysis task. We also report preliminary results from an ongoing, large scale application of our technique in the automotive domain at Bosch.
Vincent Langenfeld, Daniel Dietsch, Bernd Westphal, Jochen Hoenicke, Amalinda Post
RE2
2018 Incremental Verification Using Trace Abstraction
Bat-Chen Rothenberg, Daniel Dietsch, Matthias Heizmann
SAS2
2018 Ultimate Taipan with Dynamic Block Encoding - (Competition Contribution)
Daniel Dietsch, Marius Greitschus, Matthias Heizmann, Jochen Hoenicke, Alexander Nutz, Andreas Podelski, Christian Schilling 0001, Tanja Schindler
TACAS (2)1
2018 Ultimate Automizer and the Search for Perfect Interpolants - (Competition Contribution)
Matthias Heizmann, Yu-Fang Chen 0001, Daniel Dietsch, Marius Greitschus, Jochen Hoenicke, Yong Li 0031, Alexander Nutz, Betim Musa, Christian Schilling 0001, Tanja Schindler, Andreas Podelski
TACAS (2)3
2017 Loop Invariants from Counterexamples
Marius Greitschus, Daniel Dietsch, Andreas Podelski
SAS2
2017 Craig vs. Newton in software model checking
abstract
Ever since the seminal work on SLAM and BLAST, software model checking with counterexample-guided abstraction refinement (CEGAR) has been an active topic of research. The crucial procedure here is to analyze a sequence of program statements (the counterexample) to find building blocks for the overall proof of the program. We can distinguish two approaches (which we name Craig and Newton) to implement the procedure. The historically first approach, Newton (named after the tool from the SLAM toolkit), is based on symbolic execution. The second approach, Craig, is based on Craig interpolation. It was widely believed that Craig is substantially more effective than Newton. In fact, 12 out of the 15 CEGAR-based tools in SV-COMP are based on Craig. Advances in software model checkers based on Craig, however, can go only lockstep with advances in SMT solvers with Craig interpolation. It may be time to revisit Newton and ask whether Newton can be as effective as Craig. We have implemented a total of 11 variants of Craig and Newton in two different state-of-the-art software model checking tools and present the outcome of our experimental comparison.
Daniel Dietsch, Matthias Heizmann, Betim Musa, Alexander Nutz, Andreas Podelski
ESEC/SIGSOFT FSE1
2017 Ultimate Taipan: Trace Abstraction and Abstract Interpretation - (Competition Contribution)
Marius Greitschus, Daniel Dietsch, Matthias Heizmann, Alexander Nutz, Claus Schätzle, Christian Schilling 0001, Frank Schüssele, Andreas Podelski
TACAS (2)2
2017 Ultimate Automizer with an On-Demand Construction of Floyd-Hoare Automata - (Competition Contribution)
Matthias Heizmann, Daniel Dietsch, Marius Greitschus, Alexander Nutz, Betim Musa, Claus Schätzle, Christian Schilling 0001, Frank Schüssele, Andreas Podelski
TACAS (2)3
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 FSE3
2016 Ultimate Automizer with Two-track Proofs - (Competition Contribution)
Matthias Heizmann, Daniel Dietsch, Marius Greitschus, Jan Leike, Betim Musa, Claus Schätzle, Andreas Podelski
TACAS2
2016 Ready for testing: ensuring conformance to industrial standards through formal verification
abstract
Abstract The design of distributed, safety-critical real-time systems is challenging due to their high complexity, the potentially large number of components, and complicated requirements and environment assumptions that stem from international standards. We present a case study that shows that despite those challenges, the automated formal verification of such systems is not only possible, but practicable even in the context of small to medium-sized enterprises. We considered a wireless fire alarm system, regulated by the EN 54 standard. We performed formal requirements engineering, modeling and verification and uncovered severe design flaws that would have prevented its certification. For an improved design, we provided dependable verification results which in particular ensure that certification tests for a relevant regulation standard will be passed. In general we observe that if system tests are specified by generalized test procedures, then verifying that a system will pass any test following those test procedures is a cost-efficient approach to improve the product quality based on formal methods. Based on our experience, we propose an approach useful to integrate the application of formal methods to product development in SME.
Sergio Feo-Arenis, Bernd Westphal, Daniel Dietsch, Marco Muñiz, Ahmad Siyar Andisha, Andreas Podelski
Formal Aspects Comput.3
2015 Fairness Modulo Theory: A New Approach to LTL Software Model Checking
Daniel Dietsch, Matthias Heizmann, Vincent Langenfeld, Andreas Podelski
CAV (1)1
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 FSE3
2015 Ultimate Automizer with Array Interpolation - (Competition Contribution)
abstract
Ultimate Automizer is a software verification tool that is able to analyze reachability of an error label, memory safety, and termination of C programs. For all three tasks, our tool follows an automatabased approach where interpolation is used to compute proofs for traces. The interpolants are generated via a new scheme that requires only the post operator, unsatisfiable cores and live variable analysis. This new scheme enables our tool to use the SMT theory of arrays in combination with interpolation.
Matthias Heizmann, Daniel Dietsch, Jan Leike, Betim Musa, Andreas Podelski
TACAS2
2015 ULTIMATE KOJAK with Memory Safety Checks - (Competition Contribution)
Alexander Nutz, Daniel Dietsch, Mostafa Mahmoud Mohamed, Andreas Podelski
TACAS2
2014 The Wireless Fire Alarm System: Ensuring Conformance to Industrial Standards through Formal Verification
Sergio Feo-Arenis, Bernd Westphal, Daniel Dietsch, Marco Muñiz, Ahmad Siyar Andisha
FM3
2014 Ultimate Kojak - (Competition Contribution)
Evren Ermis, Alexander Nutz, Daniel Dietsch, Jochen Hoenicke, Andreas Podelski
TACAS3
2014 Ultimate Automizer with Unsatisfiable Cores - (Competition Contribution)
Matthias Heizmann, Jürgen Christ, Daniel Dietsch, Jochen Hoenicke, Markus Lindenmann, Betim Musa, Christian Schilling 0001, Stefan Wissert, Andreas Podelski
TACAS3
2013 Ultimate Automizer with SMTInterpol - (Competition Contribution)
Matthias Heizmann, Jürgen Christ, Daniel Dietsch, Evren Ermis, Jochen Hoenicke, Markus Lindenmann, Alexander Nutz, Christian Schilling 0001, Andreas Podelski
TACAS3
2011 System Verification through Program Verification
Daniel Dietsch, Bernd Westphal, Andreas Podelski
FM1
2011 Disambiguation of industrial standards through formalization and graphical languages
abstract
Natural language safety requirements in industrial standards pose risks for ambiguities which need to be resolved by the system manufacturer in concertation with the certificate authority. This is especially challenging for small and medium-sized enterprises (SME). In this paper we report on our experiences with applying traditional requirements engineering techniques, formal methods, and visual narratives in an exploratory case-study in an SME.
Daniel Dietsch, Sergio Feo-Arenis, Bernd Westphal, Andreas Podelski
RE1