EDBT 2026 Demo / reviewers in the wild / expert
Mattias Ulbrich
dblp:73/9580
· DBLP profile ↗
43ranked-venue papers
1as first author
21since 2021 · last 2026
0000-0002-2350-1831ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 34 · 1 first-author · 19 since 2021Theory of computation · 13 · 7 since 2021Systems, architecture and hardware · 5Artificial intelligence and machine learning · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A Framework for the Interoperable Specification and Verification of Encapsulated Data StructuresabstractAbstract Well-designed data structures are fundamental to the construction of robust programs, particularly when their correctness can be established using formal methods. Currently, various successful deductive verification techniques exist but necessitate distinct and non-interoperable specifications and verification methods for data structure implementations. This paper presents a technique enabling cross-paradigm interoperable specification and verification of encapsulated data structures. The novel approach builds on the shared mathematical foundations of algebraic data types (ADTs) across these diverse methodologies. The technique enables the coherent integration of components that have been verified using different deductive program verification approaches within a single project, provided that a regime of encapsulation is followed, which is slightly stricter than those originally imposed by the verification techniques. We formally introduce and discuss the encapsulation principle using a simplified conceptual object-oriented language and subsequently instantiate it for the Java programming language. This integrates the approaches of KeY, VeriFast, and Universe Types, thereby enabling heterogeneous verification projects in Java that encompass Dynamic Frames, Separation Logic, and Ownership Types. We demonstrate the applicability of our approach by conducting a cooperative verification of a client with three different data structures, each of which is verified with one of the aforementioned techniques. Wolfram Pfeifer, Werner Dietl, Mattias Ulbrich |
FM (2) | 3 |
| 2026 | Slicing Models for Equiconsistency with Alloy
Marc Thieme, Shobhit Singh, Terru Stübinger, Romain Pascual, Mattias Ulbrich |
ABZ | 5 |
| 2026 | Heterogeneous Dynamic Logic: Provability Modulo Program TheoriesabstractFormally specifying, let alone verifying, properties of systems involving multiple programming languages is inherently challenging. We introduce Heterogeneous Dynamic Logic (HDL), a framework for combining reasoning principles from distinct (dynamic) program logics in a modular and compositional way. HDL mirrors the architecture of satisfiability modulo theories (SMT): Individual dynamic logics, along with their calculi, are treated as dynamic theories that can be combined to reason about heterogeneous systems whose components are verified using different program logics. HDL provides two key operations: Lifting extends an individual dynamic theory with new program constructs (e.g., the havoc operation or regular programs) and automatically augments its calculus with sound reasoning principles for the new constructs; and Combination enables cross-language reasoning in a single modality via Heterogeneous Dynamic Theories , facilitating the reuse of existing proof infrastructure. By lifting combined theories with regular programs, we obtain heterogeneous control structures that allow us to reason about intertwined cross-language behavior. We formalize dynamic theories, their lifting and combination, and prove the soundness of all proof rules in Isabelle. We also introduce a proof rule combining deductive DL-based reasoning with reasoning principles from Kleene Algebras with Tests. Furthermore, we prove relative completeness theorems for lifting and combination: Under usual assumptions, reasoning about lifted or combined theories is no harder than reasoning about the constituent dynamic theories and their common first-order structure (i.e., the data theory). We demonstrate HDL's value by verifying an automotive case study where a Java controller (formalized in Java dynamic logic) steers a plant model (formalized in differential dynamic logic). Samuel Teuber, Mattias Ulbrich, André Platzer, Bernhard Beckert |
Proc. ACM Program. Lang. | 2 |
| 2025 | Observable Semantics for Characterising Consistency Between Heterogeneous Models
Henriette Färber, Romain Pascual, Terru Stübinger, Mattias Ulbrich |
SEFM | 4 |
| 2024 | The Java Verification Tool KeY:A TutorialabstractAbstract The KeY tool is a state-of-the-art deductive program verifier for the Java language. Its verification engine is based on a sequent calculus for dynamic logic, realizing forward symbolic execution of the target program, whereby all symbolic paths through a program are explored. Method contracts make verification scalable. KeY combines auto-active and fine-grained proof interaction, which is possible both at the level of the verification target and its specification, as well as at the level of proof rules and program logic. This makes KeY well-suited for teaching program verification, but also permits proof debugging at the source code level. The latter made it possible to verify some of the most complex Java code to date. The article provides a self-contained introduction to the working principles and the practical usage of KeY for anyone with basic knowledge in logic and formal methods. Bernhard Beckert, Richard Bubel, Daniel Drodt, Reiner Hähnle, Florian Lanzinger, Wolfram Pfeifer, Mattias Ulbrich, Alexander Weigl |
FM (2) | 7 |
| 2024 | SpecifyThis Bridging Gaps Between Program Specification Paradigms: Track Introduction
Gidon Ernst, Paula Herber, Marieke Huisman, Mattias Ulbrich |
ISoLA (3) | 4 |
| 2024 | Contract-LIB: A Proposal for a Common Interchange Format for Software System Specification
Gidon Ernst, Wolfram Pfeifer, Mattias Ulbrich |
ISoLA (3) | 3 |
| 2024 | Formal Foundations of Consistency in Model-Driven Development
Romain Pascual, Bernhard Beckert, Mattias Ulbrich, Michael Kirsten, Wolfram Pfeifer |
ISoLA (3) | 3 |
| 2024 | Formally Verifying an Efficient SorterabstractAbstract In this experience report, we present the complete formal verification of a Java implementation of inplace superscalar sample sort ( "Image missing") using the KeY program verification system. As "Image missing" is one of the fastest general purpose sorting algorithms, this is an important step towards a collection of basic toolbox components that are both provably correct and highly efficient. At the same time, it is an important case study of how careful, highly efficient implementations of complicated algorithms can be formally verified directly. We provide an analysis of which features of the KeY system and its verification calculus are instrumental in enabling algorithm verification without any compromise on algorithm efficiency. Bernhard Beckert, Peter Sanders 0001, Mattias Ulbrich, Julian Wiesler, Sascha Witt |
TACAS (1) | 3 |
| 2023 | Scalable and Precise Refinement Types for Imperative Languages
Florian Lanzinger, Joshua Bachmeier, Mattias Ulbrich, Werner Dietl |
iFM | 3 |
| 2023 | Formal Specification and Verification of JDK's Identity Hash Map ImplementationabstractHash maps are a common and important data structure in efficient algorithm implementations. Despite their wide-spread use, real-world implementations are not regularly verified. In this article, we present the first case study of the IdentityHashMap class in the Java JDK. We specified its behavior using the Java Modeling Language (JML) and proved correctness for the main insertion and lookup methods with KeY, a semi-interactive theorem prover for JML-annotated Java programs. Furthermore, we report how unit testing and bounded model checking can be leveraged to find a suitable specification more quickly. We also investigated where the bottlenecks in the verification of hash maps lie for KeY by comparing required automatic proof effort for different hash map implementations and draw conclusions for the choice of hash map implementations regarding their verifiability. Martin de Boer, Stijn de Gouw, Jonas Klamroth, Christian Jung 0003, Mattias Ulbrich, Alexander Weigl |
Formal Aspects Comput. | 5 |
| 2023 | Combining rule- and SMT-based reasoning for verifying floating-point Java programs in KeYabstractAbstract Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly unintuitive to reason about due to rounding as well as the presence of the special values infinity and ‘Not a Number’ (NaN). In this article, we present the first floating-point support in a deductive verification tool for the Java programming language. Our support in the KeY verifier handles floating-point arithmetics, transcendental functions, and potentially rounding-type casts. We achieve this with a combination of delegation to external SMT solvers on the one hand, and KeY-internal, rule-based reasoning on the other hand, exploiting the complementary strengths of both worlds. We evaluate this integration on new benchmarks and show that this approach is powerful enough to prove the absence of floating-point special values—often a prerequisite for correct programs—as well as functional properties, for realistic benchmarks. Rosa Abbasi Boroujeni, Jonas Schiffl, Eva Darulova, Mattias Ulbrich, Wolfgang Ahrendt |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2022 | Generalized Test Tables: A Domain-Specific Specification Language for Automated Production Systems
Bernhard Beckert, Mattias Ulbrich, Birgit Vogel-Heuser, Alexander Weigl |
ICTAC | 2 |
| 2022 | Formal Specification and Verification of JDK's Identity Hash Map Implementation
Martin de Boer, Stijn de Gouw, Jonas Klamroth, Christian Jung 0003, Mattias Ulbrich, Alexander Weigl |
IFM | 5 |
| 2022 | SpecifyThis - Bridging Gaps Between Program Specification Paradigms
Wolfgang Ahrendt, Paula Herber, Marieke Huisman, Mattias Ulbrich |
ISoLA (1) | 4 |
| 2022 | Towards a Usable and Sustainable Deductive Verification Tool
Bernhard Beckert, Richard Bubel, Reiner Hähnle, Mattias Ulbrich |
ISoLA (2) | 4 |
| 2022 | A Refactoring for Data Minimisation Using Formal Verification
Florian Lanzinger, Mattias Ulbrich, Alexander Weigl |
ISoLA (2) | 2 |
| 2022 | Inferring Interval-Valued Floating-Point PreconditionsabstractAbstract Aggregated roundoff errors caused by floating-point arithmetic can make numerical code highly unreliable. Verified postconditions for floating-point functions can guarantee the accuracy of their results under specific preconditions on the function inputs, but how to systematically find an adequate precondition for a desired error bound has not been explored so far. We present two novel techniques for automatically synthesizing preconditions for floating-point functions that guarantee that user-provided accuracy requirements are satisfied. Our evaluation on a standard benchmark set shows that our approaches are complementary and able to find accurate preconditions in reasonable time. Jonas Krämer, Lionel Blatter, Eva Darulova, Mattias Ulbrich |
TACAS (1) | 4 |
| 2021 | Reconstructing z3 proofs in KeY: there and back againabstractOne of the main factors of the increasing power of deductive verification tools are modern SMT solvers. Unfortunately, SMT solvers usually do not produce proof artifacts that could be inspected or checked. KeY is a formal platform for the deductive verification of Java programs which produces explicit, browsable proofs. SMT solvers can be driven from within KeY, but this unfortunately breaks these proof transparency intentions. Wolfram Pfeifer, Jonas Schiffl, Mattias Ulbrich |
FTfJP@ECOOP | 3 |
| 2021 | Deductive Verification of Floating-Point Java Programs in KeYabstractAbstract Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly unintuitive to reason about due to rounding as well as the presence of the special values infinity and ‘Not a Number’ (NaN). In this paper, we present the first floating-point support in a deductive verification tool for the Java programming language. Our support in the KeY verifier handles arithmetic via floating-point decision procedures inside SMT solvers and transcendental functions via axiomatization. We evaluate this integration on new benchmarks, and show that this approach is powerful enough to prove the absence of floating-point special values—often a prerequisite for further reasoning about numerical computations—as well as certain functional properties for realistic benchmarks. Rosa Abbasi Boroujeni, Jonas Schiffl, Eva Darulova, Mattias Ulbrich, Wolfgang Ahrendt |
TACAS (2) | 4 |
| 2021 | Scalability and precision by combining expressive type systems and deductive verificationabstractType systems and modern type checkers can be used very successfully to obtain formal correctness guarantees with little specification overhead. However, type systems in practical scenarios have to trade precision for decidability and scalability. Tools for deductive verification, on the other hand, can prove general properties in more cases than a typical type checker can, but they do not scale well. We present a method to complement the scalability of expressive type systems with the precision of deductive program verification approaches. This is achieved by translating the type uses whose correctness the type checker cannot prove into assertions in a specification language, which can be dealt with by a deductive verification tool. Type uses whose correctness the type checker can prove are instead turned into assumptions to aid the verification tool in finding a proof.Our novel approach is introduced both conceptually for a simple imperative language, and practically by a concrete implementation for the Java programming language. The usefulness and power of our approach has been evaluated by discharging known false positives from a real-world program and by a small case study. Florian Lanzinger, Alexander Weigl, Mattias Ulbrich, Werner Dietl |
Proc. ACM Program. Lang. | 3 |
| 2020 | Modular Verification of JML Contracts Using Bounded Model Checking
Bernhard Beckert, Michael Kirsten, Jonas Klamroth, Mattias Ulbrich |
ISoLA (1) | 4 |
| 2020 | Modular Regression Verification for Reactive Systems
Alexander Weigl, Mattias Ulbrich, Daniel Lentzsch |
ISoLA (2) | 2 |
| 2019 | On the Preservation of the Trust by Regression Verification of PLC software for Cyber-Physical Systems of SystemsabstractModern large scale technical systems often face iterative changes on their behaviours with the requirement of validated quality which is not easy to achieve completely with traditional testing. Regression verification is a powerful tool for the formal correctness analysis of software-driven systems. By proving that a new revision of the software behaves similarly as the original version of the software, some of the trust that the old software and system had earned during the validation processes or operation histories can be inherited to the new revision. This trust inheritance by the formal analysis relies on a number of implicit assumptions which are not self-evident but easy to miss, and may lead to a false sense of safety induced by a misunderstood regression verification processes. This paper aims at pointing out hidden, implicit assumptions of regression verification in the context of cyber-physical systems by making them explicit using practical examples. The explicit trust inheritance analysis would clarify for the engineers to understand the extent of the trust that regression verification provides and consequently facilitate them to utilize this formal technique for the system validation. Suhyun Cha, Mattias Ulbrich, Alexander Weigl, Bernhard Beckert, Kathrin Land, Birgit Vogel-Heuser |
INDIN | 2 |
| 2019 | Using Relational Verification for Program Slicing
Bernhard Beckert, Thorsten Bormer, Stephan Gocht, Mihai Herda, Daniel Lentzsch, Mattias Ulbrich |
SEFM | 6 |
| 2019 | VerifyThis - Verification Competition with a Human FactorabstractVerifyThis is a series of competitions that aims to evaluate the current state of deductive tools to prove functional correctness of programs. Such proofs typically require human creativity, and hence it is not possible to measure the performance of tools independently of the skills of its user. Similarly, solutions can be judged by humans only. In this paper, we discuss the role of the human in the competition setup and explore possible future changes to the current format. Regarding the impact of VerifyThis on deductive verification research, a survey conducted among the previous participants shows that the event is a key enabler for gaining insight into other approaches, and that it fosters collaboration and exchange. Gidon Ernst, Marieke Huisman, Wojciech Mostowski, Mattias Ulbrich |
TACAS (3) | 4 |
| 2018 | Towards a Notion of Coverage for Incomplete Program-Correctness Proofs
Bernhard Beckert, Mihai Herda, Stefan Kobischke, Mattias Ulbrich |
ISoLA (2) | 4 |
| 2018 | Automating regression verification of pointer programs by predicate abstraction
Vladimir Klebanov, Philipp Rümmer, Mattias Ulbrich |
Formal Methods Syst. Des. | 3 |
| 2018 | Relational Program Reasoning Using Compiler IR - Combining Static Verification and Dynamic Analysis
Moritz Kiefer, Vladimir Klebanov, Mattias Ulbrich |
J. Autom. Reason. | 3 |
| 2017 | SemSlice: Exploiting Relational Verification for Automatic Program Slicing
Bernhard Beckert, Thorsten Bormer, Stephan Gocht, Mihai Herda, Daniel Lentzsch, Mattias Ulbrich |
IFM | 6 |
| 2017 | Generalised Test Tables: A Practical Specification Language for Reactive Systems
Bernhard Beckert, Suhyun Cha, Mattias Ulbrich, Birgit Vogel-Heuser, Alexander Weigl |
IFM | 3 |
| 2017 | Generation of monitoring functions in production automation using test specificationsabstractHigh requirements regarding quality are set for automated production systems (aPS) as malfunctions can harm humans or cause severe financial loss. These malfunctions can be caused by faults in the control software of the aPS or its inability to correctly identify and handle unintended situations and errors in the technical process or hardware behavior. To achieve more dependable control software, software testing and formal verification can be used to find faults in the software, but require to make assumptions about possible situations (inputs) occurring in the aPS during runtime and often only allow the validation of specific cases. Monitoring individual functions within the control software during runtime can help to identify unspecified situations and raise warnings of the uncertainty about the suitability of a reaction. Yet, the design of reliable monitoring functions requires extensive experience and resources. For this reason, we propose a method for generating monitoring functions from available testing and verification specifications initially used for validating a control software function. Through this, it is possible to continuously assess the behavior of individual software functions and to identify and warn about a) violations of the test specification during runtime and b) unintended situations in which correct software behavior was never tested. Thus, the approach can help to assess and improve both the control software and specification quality through observation and behavior assessment far beyond the testing phase by efficiently reusing existing test specifications for runtime monitoring. Suhyun Cha, Sebastian Ulewicz, Birgit Vogel-Heuser, Alexander Weigl, Mattias Ulbrich, Bernhard Beckert |
INDIN | 5 |
| 2017 | Generalized test tables: A powerful and intuitive specification language for reactive systemsabstractWith recent trends in manufacturing automation, such as Industry 4.0, control software in automated production systems becomes more and more complex and volatile, complicating and increasing importance of quality assurance. Test tables are a widely used and generally accepted means to intuitively specify test cases for automation software. However, each table only specifies a single software trace, whereas the actual software behavior may cover multiple similar traces not covered by the table. Within this work, we present a generalization concept for test tables allowing for bounded and unbounded repetition of steps, “don't-care” values, as well as calculations with earlier observed values. We provide a verification mechanism for checking conformance of an IEC 61131-3 PLC software with a generalized test table, making use of a state-of-the-art model checker. Our notation is inspired by widely-used paradigms found in spreadsheet applications. By an empirical study with mechanical engineering students, we show that the notation matches user expectations. A real-world example extracted from an industrial automation plant illustrates our approach. Alexander Weigl, Franziska Wiebe, Mattias Ulbrich, Sebastian Ulewicz, Suhyun Cha, Michael Kirsten, Bernhard Beckert, Birgit Vogel-Heuser |
INDIN | 3 |
| 2015 | Regression verification for Java using a secure information flow calculusabstractRegression verification and checking for illicit information flow in programs are probably the two most prominent instances of so-called relational program reasoning. Regression verification is concerned with proving that two programs behave either equally or differently in a formally specified manner; information-flow checking aims to establish that an attacker cannot distinguish executions of a program that vary in a part of the initial state designated as secret. While the theoretical connections between the two problems are well understood, there are also subtle but significant pragmatic differences. This paper reports the results of an experiment to adapt a state-of-the-art deductive information-flow verification system for Java to the problem of regression verification. Bernhard Beckert, Vladimir Klebanov, Mattias Ulbrich |
FTfJP@ECOOP | 3 |
| 2015 | Proving equivalence between control software variants for Programmable Logic ControllersabstractAutomated production systems are usually driven by Programmable Logic Controllers (PLCs). These systems are long-living and have high requirements for software quality to avoid downtimes, damaged product and harm to personnel. While commissioning multiple systems of similar type, pragmatic adjustments of the software are often necessary, which results in two or more similar variants of initially identical software. For further evolution of the software, an equivalence analysis of the software's behavior is beneficial to merge divergent development branches into a single program version. This paper presents a novel method for regression verification of PLC code, which allows one to prove that two variants of a plant's software behave identically in specified situations, despite being implemented differently. For this, a regression verification method for PLC code was designed, implemented and evaluated. The notion of program equivalence for reactive PLC code is clarified and defined. Core elements of the method are the translation of PLC code into the SMV input language for model checkers, the adaptation of the coupling invariants concept to reactive systems, and the implementation of a toolchain using a model checker. The approach was successfully evaluated using the Pick-and-Place Unit benchmark case study. Sebastian Ulewicz, Birgit Vogel-Heuser, Mattias Ulbrich, Alexander Weigl, Bernhard Beckert |
ETFA | 3 |
| 2015 | Axiomatization of Typed First-Order Logic
Peter H. Schmitt, Mattias Ulbrich |
FM | 2 |
| 2015 | Regression Verification for Programmable Logic Controller Software
Bernhard Beckert, Mattias Ulbrich, Birgit Vogel-Heuser, Alexander Weigl |
ICFEM | 2 |
| 2015 | Selected challenges of software evolution for automated production systemsabstractAutomated machines and plants are operated for some decades and undergo an everlasting evolution during this time. In this paper, we present three related open evolution challenges focusing on software evolution in the domain of automated production systems, i.e. evolution and co-evolution of (interdisciplinary) engineering models and code, quality assurance as well as variant and version management during evolution. Birgit Vogel-Heuser, Stefan Feldmann, Jens Folmer, Jan Ladiges, Alexander Fay, Sascha Lity, Matthias Tichy, Matthias Kowal, Ina Schaefer, Christopher Haubeck, Winfried Lamersdorf, Timo Kehrer, Sinem Getir, Mattias Ulbrich, Vladimir Klebanov, Bernhard Beckert |
INDIN | 14 |
| 2015 | Implementation-level verification of algorithms with KeY
Daniel Grahl, Wojciech Mostowski, Mattias Ulbrich |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2014 | Automating regression verificationabstractRegression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present a novel automatic approach for regression verification that reduces the equivalence of two related imperative integer programs to Horn constraints over uninterpreted predicates. Subsequently, state-of-the-art SMT solvers are used to solve the constraints. We have implemented the approach, and our experiments show non-trivial integer programs that can now be proved equivalent without further user input. Dennis Felsing, Sarah Grebing, Vladimir Klebanov, Philipp Rümmer, Mattias Ulbrich |
ASE | 5 |
| 2013 | Information Flow in Object-Oriented Software
Bernhard Beckert, Daniel Grahl, Vladimir Klebanov, Christoph Scheben, Peter H. Schmitt, Mattias Ulbrich |
LOPSTR | 6 |
| 2012 | A Proof Assistant for Alloy Specifications
Mattias Ulbrich, Ulrich Geilmann, Aboubakr Achraf El Ghazi, Mana Taghdiri |
TACAS | 1 |
| 2011 | The 1st Verified Software Competition: Experience Report
Vladimir Klebanov, Peter Müller 0001, Natarajan Shankar, Gary T. Leavens, Valentin Wüstholz, Eyad Alkassar, Rob Arthan, Derek Bronish, Roderick Chapman, Ernie Cohen, Mark A. Hillebrand, Bart Jacobs 0002, K. Rustan M. Leino, Rosemary Monahan, Frank Piessens, Nadia Polikarpova, Tom Ridge, Jan Smans, Stephan Tobies, Thomas Tuerk, Mattias Ulbrich, Benjamin Weiß 0001 |
FM | 21 |