Roderick Bloem

dblp:80/1300 · also Roderick Paul Bloem · DBLP profile ↗
← Back
96ranked-venue papers
37as first author
20since 2021 · last 2026
0000-0002-1411-5744ORCID · verified

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

Software engineering, systems software and programming languages · 61 · 22 first-author · 11 since 2021Theory of computation · 53 · 24 first-author · 8 since 2021Systems, architecture and hardware · 8 · 4 first-author · 1 since 2021Security and privacy · 6 · 2 first-author · 3 since 2021Artificial intelligence and machine learning · 4Graphics, computer vision, multimedia, augmented reality and games · 2
YearPublicationVenuePosition
2026 Parameterized Infinite-State Reactive Synthesis
abstract
We propose a method to synthesize a parameterized infinite-state system that can be instantiated for different parameter values. The specification is given in a parameterized temporal logic that allows for data variables as well as parameters that encode properties of the environment. Our synthesis method runs in a counterexample guided loopconsisting of four steps: (1) we synthesize concrete systems for some small parameter instantiations using existing techniques. (2) We generalize the concrete systems into a parameterized program. (3) We create a proof candidate consisting of an invariant and a ranking function. (4) We check the proof candidate for consistency with the program. If the proof succeeds, the parameterized program is valid. Otherwise, we identify a parameter value for which it fails and add a new concrete instance to step one. To generalize programs and create proof candidates, we use a combination of anti-unification and syntax-guided synthesis to express the differences between the programs as a function of the parameters. We evaluate our approach on new examples and examples from the literature that are manually parameterized.
Benedikt Maderbacher, Roderick Bloem
Proc. ACM Program. Lang.2
2025 Synthesis of Controllers for Continuous Blackbox Systems
Benedikt Maderbacher, Felix Windisch, Alberto Larrauri, Roderick Bloem
VMCAI (2)4
2024 On Threat Model Repair
Roderick Bloem, Sebastian Chlup, Dejan Nickovic, Christoph Schmittner
ISoLA (4)1
2024 Synthesis from Infinite-State Generalized Reactivity(1) Specifications
Benedikt Maderbacher, Felix Windisch, Roderick Bloem
ISoLA (4)3
2023 A Systematic Approach to Automotive Security
Masoud Ebrahimi 0002, Stefan Marksteiner, Dejan Nickovic, Roderick Bloem, David Schögler, Philipp Eisner, Samuel Sprung, Thomas Schober, Sebastian Chlup, Christoph Schmittner, Sandra König
FM4
2023 Attribute Repair for Threat Prevention
Thorsten Tarrach, Masoud Ebrahimi 0002, Sandra König, Christoph Schmittner, Roderick Bloem, Dejan Nickovic
SAFECOMP5
2023 Provable Correct and Adaptive Simplex Architecture for Bounded-Liveness Properties
Benedikt Maderbacher, Stefan Schupp, Ezio Bartocci, Roderick Bloem, Dejan Nickovic, Bettina Könighofer
SPIN4
2023 Learning Mealy machines with one timer
abstract
We present Mealy machines with a single timer (MM1Ts), a class of sufficiently expressive models to describe the real-time behavior of many realistic applications that we can learn efficiently. We show how we can obtain learning algorithms for MM1Ts via a reduction to the problem of learning Mealy machines. We describe an implementation of an MM1T learner on top of LearnLib and compare its performance with recent algorithms proposed by Aichernig et al. and An et al. on several realistic benchmarks.
Frits W. Vaandrager, Masoud Ebrahimi 0002, Roderick Bloem
Inf. Comput.3
2022 Power Contracts: Provably Complete Power Leakage Models for Processors
abstract
The protection of cryptographic software implementations against power-analysis attacks is critical for applications in embedded systems. A commonly used algorithmic countermeasure against these attacks is masking, a secret-sharing scheme that splits a sensitive computation into computations on multiple random shares. In practice, the security of masking schemes relies on several assumptions that are often violated by microarchitectural side-effects of CPUs. Many past works address this problem by studying these leakage effects and building corresponding leakage models that can then be integrated into a software verification workflow. However, these models have only been derived empirically, putting in question the otherwise rigorous security statements made with verification. We solve this problem in two steps. First, we introduce a contract layer between the (CPU) hardware and the software that allows the specification of microarchitectural side-effects on masked software in an intuitive language. Second, we present a method for proving the correspondence between contracts and CPU netlists to ensure the completeness of the specified leakage models. Then, any further security proofs only need to happen between software and contract, which brings benefits such as reduced verification runtime, improved user experience, and the possibility of working with vendor-supplied contracts of CPUs whose design is not available on netlist-level due to IP restrictions. We apply our approach to the popular RISC-V IBEX core, provide a corresponding formally verified contract, and describe how this contract could be used to verify masked software implementations.
Roderick Bloem, Barbara Gigerl, Marc Gourjon, Vedad Hadzic, Stefan Mangard, Robert Primas
CCS1
2022 Industry Paper: Surrogate Models for Testing Analog Designs under Limited Budget - a Bandgap Case Study
abstract
Testing analog integrated circuit (IC) designs is notoriously hard. Simulating tens of milliseconds from an accurate transistor level model of a complex analog design can take up to two weeks of computation. Therefore, the number of tests that can be executed during the late development stage of an analog IC can be very limited. We leverage the recent advancements in machine learning (ML) and propose two techniques, artificial neural networks (ANN) and Gaussian processes, to learn a surrogate model from an existing test suite. We then explore the surrogate model with Bayesian optimization to guide the generation of additional tests. We use an industrial bandgap case study to evaluate the two approaches and demonstrate the virtue of Bayesian optimization in efficiently generating complementary tests with constrained effort.
Roderick Bloem, Alberto Larrauri, Roland Lengfeldner, Cristinel Mateis, Dejan Nickovic, Björn Ziegler
CODES+ISSS1
2022 Reactive Synthesis Modulo Theories using Abstraction Refinement
abstract
Reactive synthesis builds a system from a specification given as a temporal logic formula. Traditionally, reactive synthesis is defined for systems with Boolean input and output variables. Recently, new theories and techniques have been proposed to extend reactive synthesis to data domains, which are required for more sophisticated programs. In particular, Temporal stream logic(TSL) (Finkbeiner et al. 2019) extends LTL with state variables, updates, and uninterpreted functions and was created for use in synthesis. We present a synthesis procedure for TSL(T), an extension of TSL with theories. Synthesis is performed using a counter-example guided synthesis loop and an LTL synthesis procedure. Our method translates TSL(T) specifications to LTL and extracts a system if synthesis is successful. Otherwise, it analyzes the counterstrategy for inconsistencies with the theory. If the counterstrategy is theory-consistent, it proves that the specification is unrealizable. Otherwise, we add temporal assumptions and Boolean predicates to the TSL(T) specification and start the next iteration of the the loop. We show that the synthesis problem for TSL (T) is undecidable. Nevertheless our method can successfully synthesize or show unrealizability of several non-Boolean examples.
Benedikt Maderbacher, Roderick Bloem
FMCAD2
2022 Automata Learning Meets Shielding
Martin Tappler, Stefan Pranger, Bettina Könighofer, Edi Muskardin, Roderick Bloem, Kim G. Larsen
ISoLA (1)5
2022 Specifiable robustness in reactive synthesis
abstract
Abstract When synthesizing a system from a given specification, there is room for automatically adding various requirements, hence improving the resulting system. One such requirement covered extensively in past literature is that of robustness. In particular, the system can fail to read the inputs correctly from the environment, and the environment can fail to satisfy our assumptions about its behavior. Nevertheless, we want the system to still satisfy the specification even under these failures, in some limited way. It has to be limited because it is typically too strong of a requirement to realize the property regardless of the inputs and the environment’s assumptions. In this work, we propose a simple and flexible framework for synthesizing robust systems, where the user defines the required robustness via a temporal robustness specification. For example, the user may specify that the environment is eventually reliable, or input misreadings cannot occur more than $$k$$ k consecutive steps and synthesize a system under this assumption. Furthermore, our framework enables us to specify a temporal recovery specification, which describes how the designer expects the system to recover after a failure of the environment assumptions. We show examples of robust systems that we synthesized with this method using our synthesis tool Party.
Roderick Bloem, Hana Chockler, Masoud Ebrahimi 0002, Ofer Strichman
Formal Methods Syst. Des.1
2021 Proving SIFA Protection of Masked Redundant Circuits
Vedad Hadzic, Robert Primas, Roderick Bloem
ATVA3
2021 TEMPEST - Synthesis Tool for Reactive Systems and Shields in Probabilistic Environments
Stefan Pranger, Bettina Könighofer, Lukas Posch, Roderick Bloem
ATVA4
2021 COCOALMA: A Versatile Masking Verifier
abstract
Masking techniques are an effective countermeasure against power side-channel attacks.Unfortunately, correctly masking a hardware circuit is difficult, and mistakes may lead to functionally correct circuits with insufficient protection.We present COCOALMA, a tool that formally verifies the side-channel resistance of stateful hardware circuits.Although COCOALMA was initially used to verify programs running on CPUs, we extended it to verify the security of several industrial masked hardware implementations.We give an overview of the tool's structure, implementation details, optimizations that make it faster and more scalable than its predecessor REBECCA, and changes that enable verifying the probing security of any stateful hardware circuit.Finally, we evaluate COCOALMA with masked implementations of the PRINCE and AES ciphers.
Vedad Hadzic, Roderick Bloem
FMCAD2
2021 Learning Mealy Machines with One Timer
Frits W. Vaandrager, Roderick Bloem, Masoud Ebrahimi 0002
LATA2
2021 Coco: Co-Design and Co-Verification of Masked Software Implementations on CPUs
Barbara Gigerl, Vedad Hadzic, Robert Primas, Stefan Mangard, Roderick Bloem
USENIX Security Symposium5
2021 Two SAT solvers for solving quantified Boolean formulas with an arbitrary number of quantifier alternations
abstract
Abstract In recent years, expansion-based techniques have been shown to be very powerful in theory and practice for solving quantified Boolean formulas (QBF), the extension of propositional formulas with existential and universal quantifiers over Boolean variables. Such approaches partially expand one type of variable (either existential or universal) for obtaining a propositional abstraction of the QBF. If this formula is false, the truth value of the QBF is decided, otherwise further refinement steps are necessary. Classically, expansion-based solvers process the given formula quantifier-block wise and use one SAT solver per quantifier block. In this paper, we present a novel algorithm for expansion-based QBF solving that deals with the whole quantifier prefix at once. Hence recursive applications of the expansion principle are avoided and only two incremental SAT solvers are required. While our algorithm is naturally based on the $$\forall $$ ∀ Exp+Res calculus that is the formal foundation of expansion-based solving, it is conceptually simpler than present recursive approaches. Experiments indicate that the performance of our simple approach is comparable with the state of the art of QBF solving, especially in combination with other solving techniques.
Roderick Bloem, Nicolas Braud-Santoni, Vedad Hadzic, Uwe Egly, Florian Lonsing, Martina Seidl
Formal Methods Syst. Des.1
2021 Vacuity in synthesis
abstract
Abstract In reactive synthesis, one begins with a temporal specification $$\varphi $$ φ , and automatically synthesizes a system $$M$$ M such that $$M\models \varphi $$ M ⊧ φ . As many systems can satisfy a given specification, it is natural to seek ways to force the synthesis tool to synthesize systems that are of a higher quality, in some well-defined sense. In this article we focus on a well-known measure of the way in which a system satisfies its specification, namely vacuity. Our conjecture is that if the synthesized system M satisfies $$\varphi $$ φ non-vacuously, then M is likely to be closer to the user’s intent, because it satisfies $$\varphi $$ φ in a more “meaningful” way. Narrowing the gap between the formal specification and the designer’s intent in this way, automatically, is the topic of this article. Specifically, we propose a bounded synthesis method for achieving this goal. The notion of vacuity as defined in the context of model checking, however, is not necessarily refined enough for the purpose of synthesis. Hence, even when the synthesized system is technically non-vacuous, there are yet more interesting (equivalently, less vacuous) systems, and we would like to be able to synthesize them. To that end, we cope with the problem of synthesizing a system that is as non-vacuous as possible, given that the set of interesting behaviours with respect to a given specification induce a partial order on transition systems. On the theoretical side we show examples of specifications for which there is a single maximal element in the partial order (i.e., the most interesting system), a set of equivalent maximal elements, or a number of incomparable maximal elements. We also show examples of specifications that induce infinite chains of increasingly interesting systems. These results have implications on how non-vacuous the synthesized system can be. We implemented the new procedure in our synthesis tool PARTY. For this purpose we added to it the capability to synthesize a system based on a property which is a conjunction of universal and existential LTL formulas.
Roderick Bloem, Hana Chockler, Masoud Ebrahimi 0002, Ofer Strichman
Formal Methods Syst. Des.1
2020 Safe Reinforcement Learning Using Probabilistic Shields (Invited Paper)
abstract
Agentic AI systems mark a shift from passive, prompt-driven models to autonomous actors that perceive, plan, and execute actions within enterprise infrastructures. This autonomy introduces risks that exceed conventional bias and safety concerns: agents may manipulate reward structures, obscure trade-offs, and – by automating routine and peripheral tasks – erode tacit knowledge and hinder the development of human expertise. Drawing on Critical Theory and labor sociology, this article conceptualizes two structural pathologies of agency: the HAL-9000 problem of unchecked instrumental reason and the Benevolent Mother problem of competence-undermining care. It argues that existing governance frameworks regulate around the system while agentic AI operates within it, producing an autonomy-oversight mismatch. To address this, the article proposes a socio-technical constitutional framework of twelve lexically ordered directives embedded directly into the agent’s decision logic. This framework aims to preserve human autonomy, sustain capability formation, and maintain organizational integrity beyond traditional compliance regimes. Building on a prior conceptual essay that introduced the idea of an “AI constitution” for enterprises using the HAL 9000 metaphor as a narrative device (Würdemann, 2025), this article provides a more systematic theoretical framing, formalizes the notion of a constitutional layer for agentic AI, and develops a structured set of directives for enterprise practice and future research.
Nils Jansen 0001, Bettina Könighofer, Sebastian Junges, Alexandru Constantin Serban, Roderick Bloem
CONCUR5
2020 Shield Synthesis for Reinforcement Learning
Bettina Könighofer, Florian Lorber, Nils Jansen 0001, Roderick Bloem
ISoLA (1)4
2020 Placement of Runtime Checks to Counteract Fault Injections
Benedikt Maderbacher, Anja F. Karl, Roderick Bloem
RV3
2020 Preface for the SYNT
Roderick Bloem, Paulo Tabuada
Acta Informatica1
2019 Efficient Information-Flow Verification Under Speculative Execution
Roderick Bloem, Swen Jacobs, Yakir Vizel
ATVA1
2019 Run-Time Optimization for Learned Controllers Through Quantitative Games
abstract
A controller is a device that interacts with a plant. At each time point, it reads the plant’s state and issues commands with the goal that the plant operates optimally. Constructing optimal controllers is a fundamental and challenging problem. Machine learning techniques have recently been successfully applied to train controllers, yet they have limitations. Learned controllers are monolithic and hard to reason about. In particular, it is difficult to add features without retraining, to guarantee any level of performance, and to achieve acceptable performance when encountering untrained scenarios. These limitations can be addressed by deploying quantitative run-time shields that serve as a proxy for the controller. At each time point, the shield reads the command issued by the controller and may choose to alter it before passing it on to the plant. We show how optimal shields that interfere as little as possible while guaranteeing a desired level of controller performance, can be generated systematically and automatically using reactive synthesis. First, we abstract the plant by building a stochastic model. Second, we consider the learned controller to be a black box. Third, we measure controller performance and shield interference by two quantitative run-time measures that are formally defined using weighted automata. Then, the problem of constructing a shield that guarantees maximal performance with minimal interference is the problem of finding an optimal strategy in a stochastic 2-player game “controller versus shield” played on the abstract state space of the plant with a quantitative objective obtained from combining the performance and interference measures. We illustrate the effectiveness of our approach by automatically constructing lightweight shields for learned traffic-light controllers in various road networks. The shields we generate avoid liveness bugs, improve controller performance in untrained and changing traffic situations, and add features to learned controllers, such as giving priority to emergency vehicles .
Guy Avni, Roderick Bloem, Krishnendu Chatterjee, Thomas A. Henzinger, Bettina Könighofer, Stefan Pranger
CAV (1)2
2019 Synthesizing Reactive Systems Using Robustness and Recovery Specifications
abstract
Past literature on synthesis identified the need to synthesize systems that are robust to failures of the system in reading the inputs from the environment, and also to failures of the environment itself to satisfy our assumptions about its behavior. In this work, we propose a simple and flexible framework for synthesizing robust systems, where the user defines the required robustness via a temporal robustness specification. For example, the user may specify that the environment is eventually reliable, or input misreadings cannot occur more than k consecutive steps, and synthesize a system under this assumption. Furthermore, our framework enables us to specify, also, a temporal recovery specification, i.e., describing the way the system is expected to recover after a failure of the environment assumptions. We show examples of robust systems that we have synthesized with this method by our synthesis tool PARTY.
Roderick Bloem, Hana Chockler, Masoud Ebrahimi 0002, Ofer Strichman
FMCAD1
2019 Learning a Behavior Model of Hybrid Systems Through Combining Model-Based Testing and Machine Learning
Bernhard K. Aichernig, Roderick Bloem, Masoud Ebrahimi 0002, Martin Horn, Franz Pernkopf, Wolfgang Roth, Astrid Rupp, Martin Tappler, Markus Tranninger
ICTSS2
2019 Small Faults Grow Up - Verification of Error Masking Robustness in Arithmetically Encoded Programs
Anja F. Karl, Robert Schilling, Roderick Bloem, Stefan Mangard
VMCAI3
2019 Synthesizing adaptive test strategies from temporal logic specifications
abstract
Abstract Constructing good test cases is difficult and time-consuming, especially if the system under test is still under development and its exact behavior is not yet fixed. We propose a new approach to compute test strategies for reactive systems from a given temporal logic specification using formal methods. The computed strategies are guaranteed to reveal certain simple faults ineveryrealization of the specification and foreverybehavior of the uncontrollable part of the system’s environment. The proposed approach supports different assumptions on occurrences of faults (ranging from a single transient fault to a persistent fault) and by default aims at unveiling the weakest one. We argue that such tests are also sensitive for more complex bugs. Since the specification may not define the system behavior completely, we use reactive synthesis algorithms with partial information. The computed strategies areadaptive test strategiesthat react to behavior at runtime. We work out the underlying theory of adaptive test strategy synthesis and present experiments for a safety-critical component of a real-world satellite system. We demonstrate that our approach can be applied to industrial specifications and that the synthesized test strategies are capable of detecting bugs that are hard to detect with random testing.
Roderick Bloem, Görschwin Fey, Fabian Greif, Robert Könighofer, Ingo Pill, Heinz Riener, Franz Röck
Formal Methods Syst. Des.1
2018 Safe Reinforcement Learning via Shielding
abstract
Reinforcement learning algorithms discover policies that maximize reward, but do not necessarily guarantee safety during learning or execution phases. We introduce a new approach to learn optimal policies while enforcing properties expressed in temporal logic. To this end, given the temporal logic specification that is to be obeyed by the learning system, we propose to synthesize a reactive system called a shield. The shield monitors the actions from the learner and corrects them only if the chosen action causes a violation of the specification. We discuss which requirements a shield must meet to preserve the convergence guarantees of the learner. Finally, we demonstrate the versatility of our approach on several challenging reinforcement learning scenarios.
Mohammed Alshiekh, Roderick Bloem, Rüdiger Ehlers, Bettina Könighofer, Scott Niekum, Ufuk Topcu
AAAI2
2018 Bounded Synthesis of Register Transducers
Ayrat Khalimov 0001, Benedikt Maderbacher, Roderick Bloem
ATVA3
2018 A Counting Semantics for Monitoring LTL Specifications over Finite Traces
abstract
We consider the problem of monitoring a Linear Time Logic (LTL) specification that is defined on infinite paths, over finite traces. For example, we may need to draw a verdict on whether the system satisfies or violates the property “p holds infinitely often.” The problem is that there is always a continuation of a finite trace that satisfies the property and a different continuation that violates it. We propose a two-step approach to address this problem. First, we introduce a counting semantics that computes the number of steps to witness the satisfaction or violation of a formula for each position in the trace. Second, we use this information to make a prediction on inconclusive suffixes. In particular, we consider a good suffix to be one that is shorter than the longest witness for a satisfaction, and a bad suffix to be shorter than or equal to the longest witness for a violation. Based on this assumption, we provide a verdict assessing whether a continuation of the execution on the same system will presumably satisfy or violate the property.
Ezio Bartocci, Roderick Bloem, Dejan Nickovic, Franz Röck
CAV (1)2
2018 Formal Verification of Masked Hardware Implementations in the Presence of Glitches
Roderick Bloem, Hannes Groß, Rinat Iusupov, Bettina Könighofer, Stefan Mangard, Johannes Winter
EUROCRYPT (2)1
2018 Automata Learning for Symbolic Execution
abstract
Black-box components conceal parts of software execution paths, which makes systematic testing, e. g., via symbolic execution, difficult. In this paper, we use automata learning to facilitate symbolic execution in the presence of black-box components. We substitute black-boxes in a software system with learned automata that model them, enabling us to symbolically execute program paths that run through black-boxes. We show that applying the approach on real-world software systems incorporating black-boxes increases code coverage when compared to standard techniques.
Bernhard K. Aichernig, Roderick Bloem, Masoud Ebrahimi 0002, Martin Tappler, Johannes Winter
FMCAD2
2018 Expansion-Based QBF Solving Without Recursion
abstract
In recent years, expansion-based techniques have been shown to be very powerful in theory and practice for solving quantified Boolean formulas (QBF), the extension of propositional formulas with existential and universal quantifiers over Boolean variables. Such approaches partially expand one type of variable (either existential or universal) and pass the obtained formula to a SAT solver for deciding the QBF. State-of-the-art expansion-based solvers process the given formula quantifier-block wise and recursively apply expansion until a solution is found. In this paper, we present a novel algorithm for expansion-based QBF solving that deals with the whole quantifier prefix at once. Hence recursive applications of the expansion principle are avoided. Experiments indicate that the performance of our simple approach is comparable with the state of the art of QBF solving, especially in combination with other solving techniques.
Roderick Bloem, Nicolas Braud-Santoni, Vedad Hadzic, Uwe Egly, Florian Lonsing, Martina Seidl
FMCAD1
2017 Towards a Secure SCRUM Process for Agile Web Application Development
abstract
Agile development such as Scrum and Extreme Programming deliver software in short iterations for quick response to rapid business requirement and market changes. However, established secure software development methodologies are mostly based on linear models such as waterfall and V-model, making them unsuitable for direct application in an agile environment. This paper presents a proposal for integrating security activities into Scrum process for developing secure Web applications. We identify gaps in existing approaches to secure agile development and analyze established security engineering activities. We then adapt these activities and orchestrate them into Scrum development process to achieve both security and agility. Our proposal is evaluated by a Scrum team developing commercial JAVA EE applications in an opinion survey.
Patrik Maier, Zhendong Ma, Roderick Bloem
ARES3
2017 Bounded Synthesis for Streett, Rabin, and \text CTL^*
Ayrat Khalimov 0001, Roderick Bloem
CAV (2)2
2017 Model-Based Testing IoT Communication via Active Automata Learning
abstract
This paper presents a learning-based approach to detecting failures in reactive systems. The technique is based on inferring models of multiple implementations of a common specification which are pair-wise cross-checked for equivalence. Any counterexample to equivalence is flagged as suspicious and has to be analysed manually. Hence, it is possible to find possible failures in a semi-automatic way without prior modelling. We show that the approach is effective by means of a case study. For this case study, we carried out experiments in which we learned models of five implementations of MQTT brokers/servers, a protocol used in the Internet of Things. Examining these models, we found several violations of the MQTT specification. All but one of the considered implementations showed faulty behaviour. In the analysis, we discuss effectiveness and also issues we faced.
Martin Tappler, Bernhard K. Aichernig, Roderick Bloem
ICST3
2017 Synthesis of Distributed Algorithms with Parameterized Threshold Guards
abstract
Fault-tolerant distributed algorithms are notoriously hard to get right. In this paper we introduce an automated method that helps in that process: the designer provides specifications (the problem to be solved) and a sketch of a distributed algorithm that keeps arithmetic details unspecified. Our tool then automatically fills the missing parts. Fault-tolerant distributed algorithms are typically parameterized, that is, they are designed to work for any number n of processes and any number t of faults, provided some resilience condition holds; e.g., n > 3t. In this paper we automatically synthesize distributed algorithms that work for all parameter values that satisfy the resilience condition. We focus on threshold- guarded distributed algorithms, where actions are taken only if a sufficiently large number of messages is received, e.g., more than t or n/2. Both expressions can be derived by choosing the right values for the coefficients a, b, and c, in the sketch of a threshold a·n+b·t+c. Our method takes as input a sketch of an asynchronous threshold-based fault-tolerant distributed algorithm — where the guards are missing exact coefficients—and then iteratively picks the values for the coefficients. Our approach combines recent progress in parameterized model checking of distributed algo- rithms with counterexample-guided synthesis. Besides theoretical results on termination of the synthesis procedure, we experimentally evaluate our method and show that it can synthesize sev- eral distributed algorithms from the literature, e.g., Byzantine reliable broadcast and Byzantine one-step consensus. In addition, for several new variations of safety and liveness specifications, our tool generates new distributed algorithms.
Marijana Lazic, Igor Konnov 0001, Josef Widder, Roderick Bloem
OPODIS4
2017 Synthesizing Non-Vacuous Systems
Roderick Bloem, Hana Chockler, Masoud Ebrahimi 0002, Ofer Strichman
VMCAI1
2017 Shield synthesis
abstract
Shield synthesis is an approach to enforce safety properties at runtime. A shield monitors the system and corrects any erroneous output values instantaneously. The shield deviates from the given outputs as little as it can and recovers to hand back control to the system as soon as possible. In the first part of this paper, we consider shield synthesis for reactive hardware systems. First, we define a general framework for solving the shield synthesis problem. Second, we discuss two concrete shield synthesis methods that automatically construct shields from a set of safety properties: (1) k-stabilizing shields, which guarantee recovery in a finite time. (2) Admissible shields, which attempt to work with the system to recover as soon as possible. Next, we discuss an extension of k-stabilizing and admissible shields, where erroneous output values of the reactive system are corrected while liveness properties of the system are preserved. Finally, we give experimental results for both synthesis methods. In the second part of the paper, we consider shielding a human operator instead of shielding a reactive system: the outputs to be corrected are not initiated by a system but by a human operator who works with an autonomous system. The challenge here lies in giving simple and intuitive explanations to the human for any interferences of the shield. We present results involving mission planning for unmanned aerial vehicles.
Bettina Könighofer, Mohammed Alshiekh, Roderick Bloem, Laura R. Humphrey, Robert Könighofer, Ufuk Topcu, Chao Wang 0001
Formal Methods Syst. Des.3
2017 The first reactive synthesis competition (SYNTCOMP 2014)
Swen Jacobs, Roderick Bloem, Romain Brenguier, Rüdiger Ehlers, Timotheus Hell, Robert Könighofer, Guillermo A. Pérez, Jean-François Raskin, Leonid Ryzhyk, Ocan Sankur, Martina Seidl, Leander Tentrup
Int. J. Softw. Tools Technol. Transf.2
2016 Synthesis of Self-Stabilising and Byzantine-Resilient Distributed Systems
Roderick Bloem, Nicolas Braud-Santoni, Swen Jacobs
CAV (1)1
2016 Designing reliable cyber-physical systems overview associated to the special session at FDL'16
abstract
CPS, that consist of a cyber part – a computing system – and a physical part – the system in the physical environment – as well as the respective interfaces between those parts, are omnipresent in our daily lives. The application in the physical environment drives the overall requirements that must be respected when designing the computing system. Here, reliability is a core aspect where some of the most pressing design challenges are: monitoring failures throughout the computing system, determining the impact of failures on the application constraints, and ensuring correctness of the computing system with respect to application-driven requirements rooted in the physical environment. This paper provides an overview of techniques discussed in the special session to tackle these challenges throughout the stack of layers of the computing system while tightly coupling the design methodology to the physical requirements.
Gadi Aleksandrowicz, Eli Arbel, Roderick Bloem, Timon D. ter Braak, Sergei Devadze, Görschwin Fey, Maksim Jenihhin, Artur Jutman, Hans G. Kerkhoff, Robert Könighofer, Jan Malburg, Shiri Moran, Jaan Raik, Gerard K. Rauwerda, Heinz Riener, Franz Röck, Konstantin Shibin, Kim Sunesen, Jinbo Wan
FDL3
2016 Synthesizing adaptive test strategies from temporal logic specifications
abstract
Constructing good test cases is difficult and time-consuming, especially if the system under test is still under development and its exact behavior is not yet fixed. We propose a new approach to compute test cases for reactive systems from a given temporal logic specification. The tests are guaranteed to reveal certain simple bugs (like occasional bit-flips) in every realization of the specification and for every behavior of the uncontrollable part of the system's environment. We aim at unveiling faults for the lowest of four fault occurrence frequencies possible (ranging from a single occurrence to persistence). Based on well-established hypotheses from fault-based testing, we argue that such tests are also sensitive for more complex bugs. Since the specification may not define the system behavior completely, we use reactive synthesis algorithms (with partial information) to compute adaptive test strategies that react to behavior at runtime. We work out the underlying theory and present first experiments demonstrating that our approach can be applied to industrial specifications and that the resulting strategies are capable of detecting bugs that are hard to detect with random testing.
Roderick Bloem, Robert Könighofer, Ingo Pill, Franz Röck
FMCAD1
2015 Cooperative Reactive Synthesis
Roderick Bloem, Rüdiger Ehlers, Robert Könighofer
ATVA1
2015 Reactive Synthesis
abstract
Summary form only given. Synthesis is the question of how to construct a correct system from a specification. In recent years, synthesis has made major steps from a theoretists dream towards a practical design tool. While synthesis from a language like LTL has very high complexity, synthesis can be quite practical when we are willing to compromise on the specification formalism. Similarly, we can take a pragmatic approach to synthesize small distributed systems, a problem that is in general undecidable.
Roderick Bloem
FMCAD1
2015 Synthesizing cooperative reactive mission plans
abstract
By performing synthesis from formal high-level mission specifications, we can obtain robot controllers that are guaranteed to operate correctly under the specified environment conditions. Such conditions must be stated in the specification whenever there is no way in which the robot's task can be fulfilled without them holding, and they relate the possible behaviors of the environment with the behavior of the robot. Contemporary synthesis algorithms however frequently construct implementations that try to trivially satisfy their specifications by actively working towards the violation of the assumptions, which is undesirable behavior.
Rüdiger Ehlers, Robert Könighofer, Roderick Bloem
IROS3
2015 Assume-Guarantee Synthesis for Concurrent Reactive Programs with Partial Information
Roderick Bloem, Krishnendu Chatterjee, Swen Jacobs, Robert Könighofer
TACAS1
2015 Shield Synthesis: - Runtime Enforcement for Reactive Systems
Roderick Bloem, Bettina Könighofer, Robert Könighofer, Chao Wang 0001
TACAS1
2014 SAT-based methods for circuit synthesis
abstract
Reactive synthesis supports designers by automatically constructing correct hardware from declarative specifications. Synthesis algorithms usually compute a strategy, and then construct a circuit that implements it. In this work, we study SAT- and QBF-based methods for the second step, i.e., computing circuits from strategies. This includes methods based on QBF-certification, interpolation, and computational learning. We present optimizations, efficient implementations, and experimental results for synthesis from safety specifications, where we outperform BDDs both regarding execution time and circuit size.
Roderick Bloem, Uwe Egly, Patrick Klampfl, Robert Könighofer, Florian Lonsing
FMCAD1
2014 Synthesis of synchronization using uninterpreted functions
abstract
Correctness of a program with respect to concurrency is often hard to achieve, but easy to specify: the concurrent program should produce the same results as a sequential reference version. We show how to automatically insert small atomic sections into a program to ensure correctness with respect to this implicit specification. Using techniques from bounded software model checking, we transform the program into an SMT formula that becomes unsatisfiable when we add correct atomic sections. By using uninterpreted functions to abstract data-related computational details, we make our approach applicable to programs with very complex computations, e.g., cryptographic algorithms. Our method starts with an empty set of atomic sections, and, based on counterexamples obtained from the SMT solver, refines the program by adding new atomic sections until correctness is achieved. We compare two different such refinement methods and provide experimental results, including Linux kernel modules where we successfully fix race conditions.
Roderick Bloem, Georg Hofferek, Bettina Könighofer, Robert Könighofer, Simon Außerlechner, Raphael Spork
FMCAD1
2014 SAT-Based Synthesis Methods for Safety Specs
Roderick Bloem, Robert Könighofer, Martina Seidl
VMCAI1
2014 Synthesizing robust systems
Roderick Bloem, Krishnendu Chatterjee, Karin Greimel, Thomas A. Henzinger, Georg Hofferek, Barbara Jobstmann, Bettina Könighofer, Robert Könighofer
Acta Informatica1
2013 PARTY Parameterized Synthesis of Token Rings
Ayrat Khalimov 0001, Swen Jacobs, Roderick Bloem
CAV3
2013 Synthesizing multiple boolean functions using interpolation on a single proof
Georg Hofferek, Bettina Könighofer, Jie-Hong Roland Jiang, Roderick Bloem
FMCAD5
2013 Towards Efficient Parameterized Synthesis
Ayrat Khalimov 0001, Swen Jacobs, Roderick Bloem
VMCAI3
2013 Debugging formal specifications: a practical approach using model-based diagnosis and counterstrategies
Robert Könighofer, Georg Hofferek, Roderick Bloem
Int. J. Softw. Tools Technol. Transf.3
2012 Parameterized Synthesis
Swen Jacobs, Roderick Bloem
TACAS2
2012 Secure Embedded Platform with Advanced Process Isolation and Anonymity Capabilities
Marc-Michael Bergfeld, Holger Bock, Roderick Bloem, Jan Blonk, Gregory Conti, Kurt Dietrich, Matthias Junk, Florian Schreiner 0002, Stephan Spitz, Johannes Winter
TrustBus3
2012 Synthesis of Reactive(1) designs
Roderick Bloem, Barbara Jobstmann, Nir Piterman, Amir Pnueli, Yaniv Sa'ar
J. Comput. Syst. Sci.1
2012 Finding and fixing faults
Barbara Jobstmann, Stefan Staber, Andreas Griesmayer, Roderick Bloem
J. Comput. Syst. Sci.4
2011 Automated error localization and correction for imperative programs
Robert Könighofer, Roderick Bloem
FMCAD2
2011 Controller synthesis for pipelined circuits using uninterpreted functions
abstract
We present a novel abstraction-based approach to controller synthesis based on the use of a logic with uninter-preted functions, arrays, equality, and limited quantification. Extending the Burch-Dill paradigm for the verification of pipelined processors, we show how to use this logic to synthesize the Boolean control of a pipelined circuit, using a sequential version as the specification. Thus, we tackle the main difficulty in constructing concurrent systems, that of constructing a control that prevents conflicts due to concurrency. At the same time, we avoid the complexity of the datapath, taking advantage of the fact that it must mirror the operations in the sequential variant. We start with the controller's specification, an equivalence criterion written in a fragment of second-order logic, stating that for all possible inputs/states, there exist Boolean control values such that the outcome is correct. We show how to decide such formulas by a reduction to propositional logic. From this formula, we can then extract the controller. We show preliminary results for a simple pipelined system.
Georg Hofferek, Roderick Bloem
MEMOCODE2
2010 Robustness in the Presence of Liveness
Roderick Bloem, Krishnendu Chatterjee, Karin Greimel, Thomas A. Henzinger, Barbara Jobstmann
CAV1
2010 RATSY - A New Requirements Analysis Tool with Synthesis
Roderick Bloem, Alessandro Cimatti, Karin Greimel, Georg Hofferek, Robert Könighofer, Marco Roveri, Viktor Schuppan, Richard Seeber
CAV1
2010 Fault localization using a model checker
abstract
Abstract If a program does not fulfill its specification, a model checker can deliver a counterexample. However, although such a counterexample shows how the specification can be violated, it typically comprises large parts of the program and gives little information about which of the visited statements is responsible for the error. In this article, we show that model checkers can also be used to perform model‐based diagnosis and thus fault localization. The approach leads to significantly more precise diagnoses than the state‐of‐the‐art and typically rules out 90–99% of the code as possible fault locations. The approach is general and can be applied to any system that is amenable to model checking (with respect to language and complexity). To demonstrate the applicability and high precision of our approach, we present implementations for C programs using two different model checking tools and show experimental results from the TCAS case study and an integration with the DDVerify framework to debug Linux device drivers. Copyright © 2009 John Wiley & Sons, Ltd.
Andreas Griesmayer, Stefan Staber, Roderick Bloem
Softw. Test. Verification Reliab.3
2010 Guest Editorial
abstract
The four papers in this special section are extended versions of papers presented at the 2009 ACM-IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE).
Roderick Bloem, Patrick Schaumont
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
2009 Better Quality in Synthesis through Quantitative Objectives
Roderick Bloem, Krishnendu Chatterjee, Thomas A. Henzinger, Barbara Jobstmann
CAV1
2009 Synthesizing robust systems
abstract
Many specifications include assumptions on the environment. If the environment satisfies the assumptions then a correct system reacts as intended. However, when the environment deviates from its expected behavior, a correct system can behave arbitrarily. We want to synthesize robust systems that degrade gracefully, i.e., a small number of environment failures should induce a small number of system failures. We define ratio games and show that an optimal robust system corresponds to the winning strategy of a ratio game, where the system minimizes the ratio of system errors to environment errors. We show that ratio games can be solved in pseudopolynomial time.
Roderick Bloem, Karin Greimel, Thomas A. Henzinger, Barbara Jobstmann
FMCAD1
2009 Debugging formal specifications using simple counterstrategies
abstract
Deriving a formal specification from an informal design intent is an error-prone process. The resulting specification may be incomplete, unrealizable, or in conflict with the design intent. We propose a debugging method for incorrect specifications that does not need an implementation. We show that we can explain conflicts with the design intent by explaining unrealizability. Our approach for explaining unrealizability is based on counterstrategies. Since counterstrategies may be large, we propose several ways to simplify them. First, we simplify the specification itself by removing both requirements and variables that do not contribute to the problem. Second, we heuristically search for a countertrace, i.e., a single input trace that suffices to demonstrate unrealizability. Finally, we present the countertrace or the counterstrategy to the user in extensive form as a graph and implicitly as an interactive game. We present experimental results for specifications given as GR(1) formulas.
Robert Könighofer, Georg Hofferek, Roderick Bloem
FMCAD3
2008 Using unsatisfiable cores to debug multiple design errors
abstract
Due to the increasing complexity of today's circuits a high degree of automation in the design process is mandatory. The detection of faults and design errors is supported quite well using simulation or formal verification. But locating the fault site is typically a time consuming manual task. Techniques to automate debugging and diagnosis have been proposed. Approaches based on Boolean Satisfiability (SAT) have been demonstrated to be very effective. In this work debugging on the gate level is considered. Unsatisfiable cores contained in a SAT instance for debugging are used (1) to determine all suspects, and (2) to speed-up the debugging process. In comparison to standard SAT-based debugging, the experimental results show a significant speed-up for debugging multiple faults.
André Sülflow, Görschwin Fey, Roderick Bloem, Rolf Drechsler
ACM Great Lakes Symposium on VLSI3
2008 Open Implication
Karin Greimel, Roderick Bloem, Barbara Jobstmann, Moshe Y. Vardi
ICALP (2)2
2008 Automatic Fault Localization for Property Checking
abstract
We present an efficient fully automatic approach to fault localization for safety properties stated in linear temporal logic. We view the failure as a contradiction between the specification and the actual behavior and look for components that explain this discrepancy. We find these components by solving the satisfiability of a propositional Boolean formula. We show how to construct this formula and how to extend it so that we find exactly those components that can be used to repair the circuit for a given set of counterexamples. Furthermore, we discuss how to efficiently solve the formula by using the proper decision heuristics and simulation-based preprocessing. We demonstrate the quality and efficiency of our approach by experimental results.
Görschwin Fey, Stefan Staber, Roderick Bloem, Rolf Drechsler
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.3
2007 RAT: A Tool for the Formal Analysis of Requirements
Roderick Bloem, Roberto Cavada, Ingo Pill, Marco Roveri, Andrei Tchaltsev
CAV1
2007 Anzu: A Tool for Property Synthesis
Barbara Jobstmann, Stefan J. Galler, Martin Weiglhofer, Roderick Bloem
CAV4
2007 Interactive presentation: Automatic hardware synthesis from specifications: a case study
Roderick Bloem, Stefan J. Galler, Barbara Jobstmann, Nir Piterman, Amir Pnueli, Martin Weiglhofer
DATE1
2007 Fault Localization and Correction with QBF
Stefan Staber, Roderick Bloem
SAT2
2006 Repair of Boolean Programs with an Application to C
Andreas Griesmayer, Roderick Bloem, Byron Cook
CAV2
2006 Formal analysis of hardware requirements
abstract
Formal languages are increasingly used to describe the functional requirements (specifications) of circuits. These requirements are used as a means to communicate design intent and as basis for verification. In both settings it is of utmost importance that the specifications are of high quality. However, formal requirements are seldom the object of validation, even though they can be hard to understand and interactions between them can be subtle. In this paper we present techniques and guidelines to explore and assure the quality of a formal specification. We define a technique to interactively explore the semantics of a specification by simulating its behavior for user-defined scenarios. Further-more, we define techniques to automatically check specifications against a set of user-provided assertions, which must be satisfied, and a set of possibilities, which must not be conradicted. The proposed techniques support the user in the iterative development and refinement of high-quality specifications.
Ingo Pill, Simone Semprini, Roberto Cavada, Marco Roveri, Roderick Bloem, Alessandro Cimatti
DAC5
2006 Optimizations for LTL Synthesis
abstract
We present an approach to automatic synthesis of specifications given in linear time logic. The approach is based on a translation through universal co-Buchi tree automata and alternating weak tree automata (O. Kupferman and M. Vardi, 2005). By careful optimization of all intermediate automata, we achieve a major improvement in performance. We present several optimization techniques for alternating tree automata, including a game-based approximation to language emptiness and a simulation-based optimization. Furthermore, we use an incremental algorithm to compute the emptiness of nondeterministic Buchi tree automata. All our optimizations are computed in time polynomial in the size of the automaton on which they are computed. We have applied our implementation to several examples and show a significant improvement over the straightforward implementation. Although our examples are still small, this work constitutes the first implementation of a synthesis algorithm for full LTL. We believe that the optimizations discussed here form an important step towards making LTL synthesis practical
Barbara Jobstmann, Roderick Bloem
FMCAD2
2006 Symbolic Implementation of Alternating Automata
Roderick Bloem, Alessandro Cimatti, Ingo Pill, Marco Roveri, Simone Semprini
CIAA1
2006 An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps
Roderick Bloem, Harold N. Gabow, Fabio Somenzi
Formal Methods Syst. Des.1
2006 Compositional SCC Analysis for Language Emptiness
Chao Wang 0001, Roderick Bloem, Gary D. Hachtel, Kavita Ravi, Fabio Somenzi
Formal Methods Syst. Des.2
2005 Program Repair as a Game
Barbara Jobstmann, Andreas Griesmayer, Roderick Bloem
CAV3
2005 Formal Verification of Control Software: A Case Study
Andreas Griesmayer, Roderick Bloem, Martin Hautzendorfer, Franz Wotawa
IEA/AIE2
2002 Fair Simulation Minimization
Sankar Gurumurthy, Roderick Bloem, Fabio Somenzi
CAV2
2002 Analysis of Symbolic SCC Hull Algorithms
Fabio Somenzi, Kavita Ravi, Roderick Bloem
FMCAD3
2001 Divide and Compose: SCC Refinement for Language Emptiness
Chao Wang 0001, Roderick Bloem, Gary D. Hachtel, Kavita Ravi, Fabio Somenzi
CONCUR2
2000 Efficient Büchi Automata from LTL Formulae
Fabio Somenzi, Roderick Bloem
CAV2
2000 Symbolic guided search for CTL model checking
abstract
CTL model checking of complex systems often suffers from the state-explosion problem. We propose using Symbolic Guided Search to avoid difficult-to-represent sections of the state space and prevent state explosion from occurring.
Roderick Bloem, Kavita Ravi, Fabio Somenzi
DAC1
2000 An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps
Roderick Bloem, Harold N. Gabow, Fabio Somenzi
FMCAD1
2000 A Comparative Study of Symbolic Algorithms for the Computation of Fair Cycles
Kavita Ravi, Roderick Bloem, Fabio Somenzi
FMCAD2
2000 A Comparison of Tree Transductions Defined by Monadic Second Order Logic and by Attribute Grammars
Roderick Bloem, Joost Engelfriet
J. Comput. Syst. Sci.1
1999 Efficient Decision Procedures for Model Checking of Linear Time Logic Properties
Roderick Bloem, Kavita Ravi, Fabio Somenzi
CAV1