VLDB 2026 Research / reviewers in the wild / expert
Matthias Heizmann
dblp:52/7224
· DBLP profile ↗
41ranked-venue papers
15as first author
13since 2021 · last 2026
0000-0003-4252-3558ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 39 · 15 first-author · 12 since 2021Theory of computation · 5 · 2 first-author · 1 since 2021Systems, architecture and hardware · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Ultimate TestGen: Combining Parallel Trace Abstraction and Symbolic Path Execution (Competition Contribution)
Max Barth, Daniel Dietsch, Matthias Heizmann, Marie-Christine Jakobs |
FASE | 3 |
| 2026 | Ultimate Paralizer: Parallel Trace Abstraction (Competition Contribution)
Max Barth, Daniel Dietsch, Matthias Heizmann, Marie-Christine Jakobs |
TACAS (2) | 3 |
| 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) | 6 |
| 2026 | A lazy and modular approach to int-blastingabstractAbstract Bit-vector operations are ubiquitous in programming languages and formal verification, but their complex semantics pose challenges for SMT solvers. Although bit-blasting—translating bit-vectors to Boolean variables—is widely used, it struggles with arithmetic bit-vector operations on large bit-widths (e.g., 64-bit or 256-bit variables) due to exponential blowup. Int-blasting, which maps bit-vectors to integer arithmetic, offers a scalable alternative for arithmetic bit-vector operations, but introduces many modulo operations of which some are redundant. This article presents a modular three-step translation from bit-vector formulas to integer formulas, designed to keep the amount of modulo operations low, while preserving correctness. In the first step, we translate bit-vector operations to integer operations. Thereby, we introduce the two functions $$\texttt {bv2nat}$$ and $$\texttt {nat2bv}_k$$ as explicit operators in the SMT-LIB theory of bit-vectors. Each integer operation is wrapped by $$\texttt {bv2nat}$$ and $$\texttt {nat2bv}_k$$ . Hence, the sort of all bit-vector terms is preserved. Therefore, the first translation step is an equivalence transformation. In the second step, we simplify the formula by replacing the composition $$\texttt {bv2nat} \circ \texttt {nat2bv}_k$$ with a modulo operation. These modulo operations are added lazily, i.e., if the modulo does not change the result of the operation, it is omitted. In our experiments this reduced the average amount of modulo operations by 51%. In the third step, we introduce lemmas to precisely capture the meaning of $$\texttt {bv2nat}$$ and $$\texttt {nat2bv}_k$$ . We prove that these lemmas suffice to solve bit-vector formulas. Furthermore, we illustrate that these lemmas are also sufficient for bit-vector formulas with quantifiers, arrays and uninterpreted functions. We implement our translation in SMTInterpol and evaluate it on 19570 SMT-LIB benchmarks. Results show that our lazy int-blasting solves 15% more tasks than an eager int-blasting, with 35% faster average runtime and 12% lower memory usage. Max Barth, Matthias Heizmann, Jochen Hoenicke |
Acta Informatica | 2 |
| 2025 | Correctness Witnesses for Concurrent Programs: Bridging the Semantic Divide with Ghosts
Julian Erhard, Manuel Bentele, Matthias Heizmann, Dominik Klumpp, Simmo Saan, Frank Schüssele, Michael Schwarz 0007, Helmut Seidl, Sarah Tilscher, Vesal Vojdani |
VMCAI (1) | 3 |
| 2024 | Ultimate TestGen: Test-Case Generation with Automata-based Software Model Checking (Competition Contribution)abstractAbstract 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 |
FASE | 3 |
| 2024 | Ultimate Automizer and the Abstraction of Bitwise Operations - (Competition Contribution)abstractAbstract 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) | 4 |
| 2024 | Petrification: Software Model Checking for Programs with Dynamic Thread Management
Matthias Heizmann, Dominik Klumpp, Lars Nitzke, Frank Schüssele |
VMCAI (2) | 1 |
| 2023 | Ultimate Taipan and Race Detection in Ultimate - (Competition Contribution)abstractAbstract 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) | 2 |
| 2023 | Ultimate Automizer and the CommuHash Normal Form - (Competition Contribution)abstractAbstract 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) | 1 |
| 2022 | Ultimate GemCutter and the Axes of Generalization - (Competition Contribution)abstractAbstract 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) | 3 |
| 2022 | Verification WitnessesabstractOver 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. | 4 |
| 2021 | Verification of Concurrent Programs Using Petri Net Unfoldings
Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Mehdi Naouar, Andreas Podelski, Claus Schätzle |
VMCAI | 2 |
| 2020 | The IBM z15 High Frequency Mainframe Branch Predictor Industrial ProductabstractThe design of the modern, enterprise-class IBM z15 branch predictor is described. Implemented as a multilevel look-ahead structure, the branch predictor is capable of predicting branch direction and target addresses, augmented with multiple auxiliary direction, target, and power predictors. Predictions are made asynchronously, and later integrated into the processor pipeline. The design is optimized for the unique workloads executed on these enterprise-class systems, including compute intensive and both large instruction and data footprint workloads. This paper highlights the major operations and functions of the IBM z15 branch predictor, including its pipeline, prediction structures and verification methodology. Explanations as to how the design matured to its current state are also provided. Narasimha Adiga, James Bonanno, Adam Collura, Matthias Heizmann, Brian R. Prasky, Anthony Saporito |
ISCA | 4 |
| 2020 | Ultimate Taipan with Symbolic Interpretation and Fluid Abstractions - (Competition Contribution)abstractAbstract 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) | 2 |
| 2019 | Semantic Fault Localization and Suspiciousness RankingabstractStatic program analyzers are increasingly effective in checking correctness properties of programs and reporting any errors found, often in the form of error traces. However, developers still spend a significant amount of time on debugging. This involves processing long error traces in an effort to localize a bug to a relatively small part of the program and to identify its cause. In this paper, we present a technique for automated fault localization that, given a program and an error trace, efficiently narrows down the cause of the error to a few statements. These statements are then ranked in terms of their suspiciousness. Our technique relies only on the semantics of the given program and does not require any test cases or user guidance. In experiments on a set of C benchmarks, we show that our technique is effective in quickly isolating the cause of error while out-performing other state-of-the-art fault-localization techniques. Maria Christakis, Matthias Heizmann, Muhammad Numair Mansur, Christian Schilling 0001, Valentin Wüstholz |
TACAS (1) | 2 |
| 2018 | Advanced automata-based algorithms for program termination checkingabstractIn 2014, Heizmann et al. proposed a novel framework for program termination analysis. The analysis starts with a termination proof of a sample path. The path is generalized to a Büchi automaton (BA) whose language (by construction) represents a set of terminating paths. All these paths can be safely removed from the program. The removal of paths is done using automata difference, implemented via BA complementation and intersection. The analysis constructs in this way a set of BAs that jointly "cover" the behavior of the program, thus proving its termination. An implementation of the approach in Ultimate Automizer won the 1st place in the Termination category of SV-COMP 2017. Yu-Fang Chen 0001, Matthias Heizmann, Ondrej Lengál, Yong Li 0031, Ming-Hsien Tsai 0001, Andrea Turrini, Lijun Zhang 0001 |
PLDI | 2 |
| 2018 | Incremental Verification Using Trace Abstraction
Bat-Chen Rothenberg, Daniel Dietsch, Matthias Heizmann |
SAS | 3 |
| 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) | 3 |
| 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) | 1 |
| 2018 | Geometric Nontermination Arguments
Jan Leike, Matthias Heizmann |
TACAS (2) | 2 |
| 2017 | Craig vs. Newton in software model checkingabstractEver 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 FSE | 2 |
| 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) | 3 |
| 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) | 1 |
| 2017 | Minimization of Visibly Pushdown Automata Using Partial Max-SAT
Matthias Heizmann, Christian Schilling 0001, Daniel Tischner |
TACAS (1) | 1 |
| 2016 | Correctness witnesses: exchanging verification results between verifiersabstractStandard 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 FSE | 4 |
| 2016 | Complementing Semi-deterministic Büchi Automata
Frantisek Blahoudek, Matthias Heizmann, Sven Schewe, Jan Strejcek, Ming-Hsien Tsai 0001 |
TACAS | 2 |
| 2016 | Ultimate Automizer with Two-track Proofs - (Competition Contribution)
Matthias Heizmann, Daniel Dietsch, Marius Greitschus, Jan Leike, Betim Musa, Claus Schätzle, Andreas Podelski |
TACAS | 1 |
| 2015 | Fairness Modulo Theory: A New Approach to LTL Software Model Checking
Daniel Dietsch, Matthias Heizmann, Vincent Langenfeld, Andreas Podelski |
CAV (1) | 2 |
| 2015 | Automated Program Verification
Azadeh Farzan, Matthias Heizmann, Jochen Hoenicke, Zachary Kincaid, Andreas Podelski |
LATA | 2 |
| 2015 | Witness validation and stepwise testification across software verifiersabstractIt 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 FSE | 4 |
| 2015 | Ultimate Automizer with Array Interpolation - (Competition Contribution)abstractUltimate 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 |
TACAS | 1 |
| 2014 | Termination Analysis by Learning Terminating Programs
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski |
CAV | 1 |
| 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 |
TACAS | 1 |
| 2014 | Ranking Templates for Linear Loops
Jan Leike, Matthias Heizmann |
TACAS | 2 |
| 2013 | Linear Ranking for Linear Lasso Programs
Matthias Heizmann, Jochen Hoenicke, Jan Leike, Andreas Podelski |
ATVA | 1 |
| 2013 | Software Model Checking for People Who Love Automata
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski |
CAV | 1 |
| 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 |
TACAS | 1 |
| 2010 | Nested interpolantsabstractIn this paper, we explore the potential of the theory of nested words for partial correctness proofs of recursive programs. Our conceptual contribution is a simple framework that allows us to shine a new light on classical concepts such as Floyd/Hoare proofs and predicate abstraction in the context of recursive programs. Our technical contribution is an interpolant-based software model checking method for recursive programs. The method avoids the costly construction of the abstract transformer by constructing a nested word automaton from an inductive sequence of `nested interpolants' (i.e., interpolants for a nested word which represents an infeasible error trace). Matthias Heizmann, Jochen Hoenicke, Andreas Podelski |
POPL | 1 |
| 2010 | Size-Change Termination and Transition Invariants
Matthias Heizmann, Neil D. Jones, Andreas Podelski |
SAS | 1 |
| 2009 | Refinement of Trace Abstraction
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski |
SAS | 1 |