Richard Bubel

dblp:78/560 · DBLP profile ↗
← Back
39ranked-venue papers
6as first author
8since 2021 · last 2025
0009-0003-4847-4707ORCID · corroborated

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

Software engineering, systems software and programming languages · 30 · 4 first-author · 7 since 2021Theory of computation · 11 · 3 first-author · 2 since 2021Artificial intelligence and machine learning · 4 · 1 first-author · 1 since 2021Security and privacy · 2Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2025 The Impact of the European Product Liability Directive on Software Engineering
Doriana Cobârzan, Richard Bubel, Torsten Ullrich
ENASE2
2025 Axiomatisation of Solidity Memory and Storage
Guilherme Horta Alvares Da Silva, Wolfgang Ahrendt, Richard Bubel
SEFM3
2024 The Java Verification Tool KeY:A Tutorial
abstract
Abstract 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)2
2024 A Formal Modeling Language for Smart Contracts
Adele Veschetti, Richard Bubel, Reiner Hähnle
SEFM2
2023 Trace-based Deductive Verification
abstract
Contracts specifying a procedure’s behavior in terms of pre- and postconditions are essential for scalable software verification, but cannot express any constraints on the events occurring during execution of the procedure. This necessitates to annotate code with intermediate assertions, preventing full specification abstraction. We propose a logic over symbolic traces able to specify recursive procedures in a mod- ular manner that refers to specified programs only in terms of events. We also provide a deduction system based on symbolic execution and induction that we prove to be sound relative to a trace semantics. Our work generalizes contract-based to trace-based deductive verification by extending the notion of state-based contracts to trace-based contracts.
Richard Bubel, Dilian Gurov, Reiner Hähnle, Marco Scaletta
LPAR1
2022 Finding Semantic Bugs Fast
abstract
Abstract Finding semantic bugs in code is difficult and requires precious expert time. Lacking comprehensive formal specifications, deductive verification is not an option. We propose an incremental specification procedure: With the help of automatic verification tools, a domain expert is guided through program runs and source code locations. The expert validates a run at certain locations and creates lightweight annotations. Formal methods training is not required. We demonstrate by example that this approach is capable to quickly detect different kinds of semantic bugs. We position our approach in the middle ground between fully-fledged deductive verification and bug finding without semantic guidance.
Lukas Grätz, Reiner Hähnle, Richard Bubel
FASE3
2022 Towards a Usable and Sustainable Deductive Verification Tool
Bernhard Beckert, Richard Bubel, Reiner Hähnle, Mattias Ulbrich
ISoLA (2)2
2021 Delta-based verification of software product families
abstract
The quest for feature- and family-oriented deductive verification of software product lines resulted in several proposals. In this paper we look at delta-oriented modeling of product lines and combine two new ideas: first, we extend Hähnle & Schaefer’s delta-oriented version of Liskov’s substitution principle for behavioral subtyping to work also for overridden behavior in benign cases. For this to succeed, programs need to be in a certain normal form. The required normal form turns out to be achievable in many cases by a set of program transformations, whose correctness is ensured by the recent technique of abstract execution. This is a generalization of symbolic execution that permits reasoning about abstract code elements. It is needed, because code deltas contain partially unknown code contexts in terms of “original” calls.
Marco Scaletta, Reiner Hähnle, Dominic Steinhöfel, Richard Bubel
GPCE4
2020 Functional Verification of Smart Contracts via Strong Data Integrity
Wolfgang Ahrendt, Richard Bubel
ISoLA (3)2
2019 A Program Logic for Dependence Analysis
Richard Bubel, Reiner Hähnle, Asmae Heydari Tabar
IFM1
2019 Verifying OpenJDK's Sort Method for Generic Collections
abstract
TimSort is the main sorting algorithm provided by the Java standard library and many other programming frameworks. Our original goal was functional verification of TimSort with mechanical proofs. However, during our verification attempt we discovered a bug which causes the implementation to crash by an uncaught exception. In this paper, we identify conditions under which the bug occurs, and from this we derive a bug-free version that does not compromise performance. We formally specify the new version and verify termination and the absence of exceptions including the bug. This verification is carried out mechanically with KeY, a state-of-the-art interactive verification tool for Java. We provide a detailed description and analysis of the proofs. The complexity of the proofs required extensions and new capabilities in KeY, including symbolic state merging.
Stijn de Gouw, Frank S. de Boer, Richard Bubel, Reiner Hähnle, Jurriaan Rot, Dominic Steinhöfel
J. Autom. Reason.3
2019 The Symbolic Execution Debugger (SED): a platform for interactive symbolic execution, debugging, verification and more
Martin Hentschel 0002, Richard Bubel, Reiner Hähnle
Int. J. Softw. Tools Technol. Transf.2
2017 Inferring Secrets by Guided Experiments
Quoc Huy Do 0002, Richard Bubel, Reiner Hähnle
ICTAC2
2017 Automatic detection and demonstrator generation for information flow leaks in object-oriented programs
Quoc Huy Do 0002, Richard Bubel, Reiner Hähnle
Comput. Secur.2
2016 A General Lattice Model for Merging Symbolic Execution Branches
Dominic Steinhöfel, Reiner Hähnle, Richard Bubel
ICFEM3
2016 Can Formal Methods Improve the Efficiency of Code Reviews?
Martin Hentschel 0002, Reiner Hähnle, Richard Bubel
IFM3
2016 An empirical evaluation of two user interfaces of an interactive program verifier
abstract
Theorem provers have highly complex interfaces, but there are not many systematic studies of their usability and effectiveness. Specifically, for interactive theorem provers the ability to quickly comprehend intermediate proof situations is of pivotal importance. In this paper we present the (as far as we know) first empirical study that systematically compares the effectiveness of different user interfaces of an interactive theorem prover. We juxtapose two different user interfaces of the interactive verifier KeY: the traditional one which focuses on proof objects and a more recent one that provides a view akin to an interactive debugger. We carefully designed a controlled experiment where users were given various proof understanding tasks that had to be solved with alternating interfaces. We provide statistical evidence that the conjectured higher effectivity of the debugger-like interface is not just a hunch.
Martin Hentschel 0002, Reiner Hähnle, Richard Bubel
ASE3
2016 The interactive verification debugger: effective understanding of interactive proof attempts
abstract
The Symbolic Execution Debugger (SED) is an extension of the Eclipse debug platform for interactive symbolic execution. Like a traditional debugger, the SED can be used to locate the origin of a defect and to increase program understanding. However, as it is based on symbolic execution, all execution paths are explored simultaneously. We demonstrate an extension of the SED called Interactive Verification Debugger (IVD) for inspection and understanding of formal verification attempts. By a number of novel views, the IVD allows to quickly comprehend interactive proof situations and to debug the reasons for a proof attempt that got stuck. It is possible to perform interactive proofs completely from within the IVD. It can be experimentally demonstrated that the IVD is more effective in understanding proof attempts than a conventional prover user interface. A screencast explaining proof attempt inspection with the IVD is available at youtu.be/8e-q9Jf1h_w.
Martin Hentschel 0002, Reiner Hähnle, Richard Bubel
ASE3
2016 A formal verification framework for static analysis - As well as its instantiation to the resource analyzer COSTA and formal verification tool KeY
Elvira Albert, Richard Bubel, Samir Genaim, Reiner Hähnle, Germán Puebla, Guillermo Román-Díez
Softw. Syst. Model.2
2016 Integrating deductive verification and symbolic execution for abstract object creation in dynamic logic
Stijn de Gouw, Frank S. de Boer, Wolfgang Ahrendt, Richard Bubel
Softw. Syst. Model.4
2015 KeY-ABS: A Deductive Verification Tool for the Concurrent Modelling Language ABS
Crystal Chang Din, Richard Bubel, Reiner Hähnle
CADE2
2015 OpenJDK's Java.utils.Collection.sort() Is Broken: The Good, the Bad and the Worst Case
Stijn de Gouw, Jurriaan Rot, Frank S. de Boer, Richard Bubel, Reiner Hähnle
CAV (1)4
2015 Exploit Generation for Information Flow Leaks in Object-Oriented Programs
Quoc Huy Do 0002, Richard Bubel, Reiner Hähnle
SEC2
2015 A Dynamic Logic with Traces and Coinduction
Richard Bubel, Crystal Chang Din, Reiner Hähnle, Keiko Nakata 0001
TABLEAUX1
2015 Testing abstract behavioral specifications
Peter Y. H. Wong, Richard Bubel, Frank S. de Boer, Miguel Gómez-Zamalloa, Stijn de Gouw, Reiner Hähnle, Karl Meinke, Muddassar A. Sindhu
Int. J. Softw. Tools Technol. Transf.2
2014 An Interactive Verification Tool Meets an IDE
Martin Hentschel 0002, Stefan Käsdorf, Reiner Hähnle, Richard Bubel
IFM4
2014 Fully Abstract Operation Contracts
Richard Bubel, Reiner Hähnle, Maria Pelevina
ISoLA (2)1
2014 Runtime Assertion Checking and Theorem Proving for Concurrent and Distributed Systems
abstract
We investigate the usage of a history-based specification approach for concurrent and distributed systems. In particular, we compare two approaches on checking that those systems behave according to their specification. Concretely, we apply runtime assertion checking and static deductive verification on two small case studies to detect specification violations, respectively to ensure that the system follows its specifications. We evaluate and compare both approaches with respect to their scope and ease of application. We give recommendations on which approach is suitable for which purpose as well as the implied costs and benefits of each approach.
Crystal Chang Din, Olaf Owe, Richard Bubel
MODELSWARD3
2014 Symbolic Execution Debugger (SED)
Martin Hentschel 0002, Richard Bubel, Reiner Hähnle
RV2
2013 Reuse in Software Verification by Abstract Method Calls
Reiner Hähnle, Ina Schaefer, Richard Bubel
CADE3
2013 Program Transformation Based on Symbolic Execution and Deduction
Reiner Hähnle, Richard Bubel
SEFM3
2013 Weak Arithmetic Completeness of Object-Oriented First-Order Assertion Networks
Stijn de Gouw, Frank S. de Boer, Wolfgang Ahrendt, Richard Bubel
SOFSEM4
2012 Verified Resource Guarantees for Heap Manipulating Programs
Elvira Albert, Richard Bubel, Samir Genaim, Reiner Hähnle, Guillermo Román-Díez
FASE2
2012 PE-KeY: A Partial Evaluator for Java Programs
Richard Bubel
IFM2
2011 Verified resource guarantees using COSTA and KeY
abstract
Resource guarantees allow being certain that programs will run within the indicated amount of resources, which may refer to memory consumption, number of instructions executed, etc. This information can be very useful, especially in real-time and safety-critical applications. Nowadays, a number of automatic tools exist, often based on type systems or static analysis, which produce such resource guarantees. In spite of being based on theoretically sound techniques, the implemented tools may contain bugs which render the resource guarantees thus obtained not completely trustworthy. Performing full-blown verification of such tools is a daunting task, since they are large and complex. In this work we investigate an alternative approach whereby, instead of the tools, we formally verify the results of the tools. We have implemented this idea using COSTA, a state-of-the-art static analysis system, for producing resource guarantees and KeY, a state-of-the-art verification tool, for formally verifying the correctness of such resource guarantees. Our preliminary results show that the proposed tool cooperation can be used for automatically producing verified resource guarantees.
Elvira Albert, Richard Bubel, Samir Genaim, Reiner Hähnle, Germán Puebla, Guillermo Román-Díez
PEPM2
2011 A Formalisation of Java Strings for Program Specification and Verification
Richard Bubel, Reiner Hähnle, Ulrich Geilmann
SEFM1
2010 A visual interactive debugger based on symbolic execution
abstract
We present the concepts, usage, and prototypic implementation of a new kind of visual debugging tool based on symbolic execution of Java source code called visual symbolic state debugger. It allows to start debugging of source code at any code location without the need to write a fixture as well as to visualize all possible symbolic execution paths and all symbolic states up to a finite depth. A code-based test generation facility is integrated.
Reiner Hähnle, Marcus Baum, Richard Bubel, Marcel Rothe
ASE3
2005 The KeY tool
Wolfgang Ahrendt, Thomas Baar, Bernhard Beckert, Richard Bubel, Martin Giese, Reiner Hähnle, Wolfram Menzel, Wojciech Mostowski, Andreas Roth 0002, Steffen Schlager, Peter H. Schmitt
Softw. Syst. Model.4
2005 Integration of informal and formal development of object-oriented safety-critical software
Richard Bubel, Reiner Hähnle
Int. J. Softw. Tools Technol. Transf.1