VLDB 2026 Research / reviewers in the wild / expert
Georg Weissenbacher
dblp:15/3636
· DBLP profile ↗
52ranked-venue papers
3as first author
14since 2021 · last 2026
0000-0002-0143-632XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 33 · 2 first-author · 8 since 2021Theory of computation · 27 · 2 first-author · 8 since 2021Artificial intelligence and machine learning · 5 · 1 first-authorSystems, architecture and hardware · 5 · 2 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Consistency-Based Software Diagnosis: Accuracy, Scalability, and LimitationsabstractAbstract Consistency-based diagnosis is a formal approach to software fault localization that explains failing executions by identifying program components whose modification would restore correctness. Tools such as BugAssist and (more recently) CFaults instantiate this idea using logical encodings and bounded model checking. In our first contribution, we improve on this line of work. We present SherLoc , a consistency-based diagnosis engine for ANSI-C programs with multiple failing test cases. SherLoc introduces an explicit repair model that supports pointers and arrays, ensuring that diagnoses correspond only to semantically valid C repairs. In addition, we adapt efficient algorithms from hardware diagnosis, which avoid costly self-composition, and significantly outperform existing tools on standard benchmarks. In our second contribution, we expose fundamental limitations of formal fault localization: program optimizations and transformations can invalidate diagnoses despite semantic equivalence, representing a major hurdle to further scalability improvements; function inlining can break the functional consistency of repairs, yielding diagnoses that cannot be realized at the source level; and bounded encodings inherently miss diagnoses in the presence of loops or unbounded behavior. Our exposition clarifies the gap between the formal ideal of sound and complete diagnosis and what current techniques can realistically guarantee, and thereby helps guide future work toward more robust and principled approaches. Sarah Sallinger, Lukas Graussam, Georg Weissenbacher, Florian Zuleger, Alexey Ignatiev |
CAV (3) | 3 |
| 2025 | Symbolic execution for refuting ∀∃ hyperpropertiesabstractAbstract Many important hyperliveness properties, such as refinement and generalized non-interference, fall into the class of $$\forall \exists$$ hyperproperties, and require, for each execution trace of a system, the existence of another execution trace relating to the first one in a certain way. The alternation of quantifiers in the specification renders these hyperproperties extremely difficult to verify, or even just to test. Indeed, contrary to trace properties, where it suffices to find a single counterexample trace, refuting a $$\forall \exists$$ hyperproperty requires not only to find a trace, but also a proof that no second trace exists that satisfies the specified relation with the first trace. As a consequence, automated testing of $$\forall \exists$$ hyperproperties falls out of the scope of existing automated testing tools. In this paper, we present a fully automated approach to detect violations of $$\forall \exists$$ hyperproperties in synchronous and asynchronous infinite-state systems. Our approach extends bug-finding techniques based on symbolic execution with support for trace quantification. We provide a prototype implementation of our approach, and demonstrate its effectiveness on a set of challenging examples. Arthur Correnson, Tobias Nießen, Bernd Finkbeiner, Georg Weissenbacher |
Acta Informatica | 4 |
| 2024 | Verifying Global Two-Safety Properties in Neural Networks with ConfidenceabstractAbstract We present the first automated verification technique for confidence-based 2-safety properties, such as global robustness and global fairness, in deep neural networks (DNNs). Our approach combines self-composition to leverage existing reachability analysis techniques and a novel abstraction of the softmax function, which is amenable to automated verification. We characterize and prove the soundness of our static analysis technique. Furthermore, we implement it on top of Marabou, a safety analysis tool for neural networks, conducting a performance evaluation on several publicly available benchmarks for DNN verification. Anagha Athavale, Ezio Bartocci, Maria Christakis, Matteo Maffei, Dejan Nickovic, Georg Weissenbacher |
CAV (2) | 6 |
| 2024 | Statistical Profiling of Micro-Architectural Traces and Machine Learning for Spectre Detection: A Systematic EvaluationabstractSpectre attacks exploit features of modern processors to leak sensitive data through speculative execution and shared resources (such as caches). A popular approach to detect such attacks deploys Machine Learning (ML) to identify suspicious micro-architectural patterns. These techniques, however, are often rather ad-hoc in terms of the selection of micro-architectural features as well as ML techniques and frequently lack a description of the underlying training- and test-data. To address these shortcomings, we systematically evaluate a large range of (combinations of) micro-architectural features recorded in up to 40 Hardware Performance Counters (HPCs), as well as multiple ML algorithms on a comprehensive set of scenarios and datasets. Using statistical methods, we rank the HPCs used to generate our dataset, which helps us determine the minimum number of features required for detecting Spectre attacks with high accuracy and minimal overhead. Furthermore, we identify the best-performing ML classifiers, and provide a comprehensive description of our data collection, running scenarios, selected HPCs, and chosen classification models. Mai Al-Zu'bi, Georg Weissenbacher |
DATE | 2 |
| 2024 | Differential Property Monitoring for Backdoor Detection
Otto Brechelmacher, Dejan Nickovic, Tobias Nießen, Sarah Sallinger, Georg Weissenbacher |
ICFEM | 5 |
| 2024 | Thread-modular counter abstraction: automated safety and termination proofs of parameterized software by reduction to sequential program verificationabstractAbstract Parameterized programs are composed of an arbitrary number of concurrent, infinite-state threads. Automated safety and liveness proofs of such parameterized software are hard; state-of-the-art methods for their formal verification rely on intricate abstractions and complicated proof techniques that impede automation. In this paper, we introduce thread-modular counter abstraction (TMCA), a lean new abstraction technique to replace the existing heavy proof machinery. TMCA is a structured abstraction framework built from a novel combination of counter abstraction, thread-modular reasoning, and predicate abstraction. Its major strength lies in reducing the parameterized verification problem to the sequential setting, for which powerful proof procedures, efficient heuristics, and effective automated tools have been developed over the past decades. In this work, we first introduce the TMCA abstraction paradigm, then present a fully automated method for parameterized safety proofs, and finally discuss its application to automated termination and liveness proofs of parameterized software. Thomas Pani, Georg Weissenbacher, Florian Zuleger |
Formal Methods Syst. Des. | 2 |
| 2024 | Finding ∀∃ Hyperbugs using Symbolic ExecutionabstractMany important hyperproperties, such as refinement and generalized non-interference, fall into the class of ∀∃ hyperproperties and require, for each execution trace of a system, the existence of another trace relating to the first one in a certain way. The alternation of quantifiers renders ∀∃ hyperproperties extremely difficult to verify, or even just to test. Indeed, contrary to trace properties, where it suffices to find a single counterexample trace, refuting a ∀∃ hyperproperty requires not only to find a trace, but also a proof that no second trace satisfies the specified relation with the first trace. As a consequence, automated testing of ∀∃ hyperproperties falls out of the scope of existing automated testing tools. In this paper, we present a fully automated approach to detect violations of ∀∃ hyperproperties in software systems. Our approach extends bug-finding techniques based on symbolic execution with support for trace quantification. We provide a prototype implementation of our approach, and demonstrate its effectiveness on a set of challenging examples. Arthur Correnson, Tobias Nießen, Bernd Finkbeiner, Georg Weissenbacher |
Proc. ACM Program. Lang. | 4 |
| 2023 | A Formalization of Heisenbugs and Their Causes
Sarah Sallinger, Georg Weissenbacher, Florian Zuleger |
SEFM | 2 |
| 2021 | Model Checking AUTOSAR Components with CBMC
Timothee Durand, Katalin Fazekas, Georg Weissenbacher, Jakob Zwirchmayr |
FMCAD | 3 |
| 2021 | Bounded Model Checking of Speculative Non-InterferenceabstractSpectre, a hardware vulnerability that breaks the isolation between applications, has received ample attention in recent years. Spectre-style attacks exploit speculative execution to leak information through micro-architectural side-channels, breaking down abstractions software developers relied on for decades. As these attacks are based on fundamental optimization techniques present in most modern micro-processors, salvation seems to lie in software-based countermeasures for now. Comprehensive software mitigation, however, has proved to be an exceptionally challenging task with ample of room for failure. To support the automated analysis of mitigation attempts, we present a technique that relies on Bounded Model Checking to detect violations of non-interference in speculative executions. Since off-the-shelf software model checking tools are nescient of micro-architectural state, we base our effort on an operational semantics of speculative executions of micro-assembly code. Our semantics is parameterized with micro-architectural components (such as the cache or the branch predictor), allowing for precise models of various side-channels. We evaluate our approach on widely used benchmark instances, report the detection of a zeroday vulnerability in the Linux kernel, and demonstrate that our approach is more exhaustive than symbolic simulation (with comparable computational effort). Emmanuel Pescosta, Georg Weissenbacher, Florian Zuleger |
ICCAD | 2 |
| 2021 | Preface of the special issue on the conference on computer-aided verification 2018
Hana Chockler, Georg Weissenbacher |
Formal Methods Syst. Des. | 2 |
| 2021 | Rely-guarantee bound analysis of parameterized concurrent shared-memory programsabstractAbstract We present a thread-modular proof method for complexity and resource bound analysis of concurrent, shared-memory programs. To this end, we lift Jones’ rely-guarantee reasoning to assumptions and commitments capable of expressing bounds. The compositionality (thread-modularity) of this framework allows us to reason about parameterized programs, i.e., programs that execute arbitrarily many concurrent threads. We automate reasoning in our logic by reducing bound analysis of concurrent programs to the sequential case. As an application, we automatically infer time complexity for a family of fine-grained concurrent algorithms, lock-free data structures, to our knowledge for the first time. Thomas Pani, Georg Weissenbacher, Florian Zuleger |
Formal Methods Syst. Des. | 2 |
| 2021 | Preface of the special issue on the Conference on Formal Methods in Computer-Aided Design 2017
Daryl Stewart, Georg Weissenbacher |
Formal Methods Syst. Des. | 2 |
| 2021 | Mutation testing with hyperproperties
Andreas Fellner, Mitra Tabaei Befrouei, Georg Weissenbacher |
Softw. Syst. Model. | 3 |
| 2020 | Thread-modular Counter Abstraction for Parameterized Program SafetyabstractAutomated safety proofs of parameterized software are hard: State-of-the-art methods rely on intricate abstractions and complicated proof techniques that often impede automation.We replace this heavy machinery with a clean abstraction framework built from a novel combination of counter abstraction, thread-modular reasoning, and predicate abstraction.Our fully automated method proves parameterized safety for a wide range of classically challenging examples in a straight-forward manner. Thomas Pani, Georg Weissenbacher, Florian Zuleger |
FMCAD | 2 |
| 2020 | RAT EliminationabstractInprocessing techniques have become one of the most promising advancements in SAT solving over the last decade. Some inprocessing techniques modify a propositional formula in non model-perserving ways. These operations are very problematic when Craig inter- polants must be extracted: existing methods take resolution proofs as an input, but these inferences require stronger proof systems; state-of-the-art solvers generate DRAT proofs. We present the first method to transform DRAT proofs into resolution-like proofs by elim- inating satisfiability-preserving RAT inferences. This solves the problem of extracting interpolants from DRAT proofs. Adrian Rebola-Pardo, Georg Weissenbacher |
LPAR | 2 |
| 2020 | Multi-linear Strategy Extraction for QBF Expansion Proofs via Local Soundness
Matthias Schlaipfer, Friedrich Slivovsky, Georg Weissenbacher, Florian Zuleger |
SAT | 3 |
| 2020 | Language Inclusion for Finite Prime Event Structures
Andreas Fellner, Thorsten Tarrach, Georg Weissenbacher |
VMCAI | 3 |
| 2020 | Extracting safe thread schedules from incomplete model checking resultsabstractAbstract Model checkers frequently fail to completely verify a concurrent program, even if partial-order reduction is applied. The verification engineer is left in doubt whether the program is safe and the effort toward verifying the program is wasted. We present a technique that uses the results of such incomplete verification attempts to construct a (fair) scheduler that allows the safe execution of the partially verified concurrent program. This scheduler restricts the execution to schedules that have been proven safe (and prevents executions that were found to be erroneous). We evaluate the performance of our technique and show how it can be improved using partial-order reduction. While constraining the scheduler results in a considerable performance penalty in general, we show that in some cases our approach—somewhat surprisingly—even leads to faster executions. Patrick Metzler, Neeraj Suri, Georg Weissenbacher |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2019 | Model-Based Diagnosis with Multiple ObservationsabstractExisting automated testing frameworks require multiple observations to be jointly diagnosed with the purpose of identifying common fault locations. This is the case for example with continuous integration tools. This paper shows that existing solutions fail to compute the set of minimal diagnoses, and as a result run times can increase by orders of magnitude. The paper proposes not only solutions to correct existing algorithms, but also conditions for improving their run times. Nevertheless, the diagnosis of multiple observations raises a number of important computational challenges, which even the corrected algorithms are often unable to cope with. As a result, the paper devises a novel algorithm for diagnosing multiple observations, which is shown to enable significant performance improvements in practice. Alexey Ignatiev, António Morgado 0001, Georg Weissenbacher, João Marques-Silva 0001 |
IJCAI | 3 |
| 2019 | Mutation Testing with HyperpropertiesabstractAbstract We present a new method for model-based mutation-driven test case generation. Mutants are generated by making small syntactical modifications to the model or source code of the system under test. A test case kills a mutant if the behavior of the mutant deviates from the original system when running the test. In this work, we use hyperproperties—which allow to express relations between multiple executions—to formalize different notions ofkillingfor both deterministic as well as non-deterministic models. The resulting hyperproperties are universal in the sense that they apply to arbitrary reactive models and mutants. Moreover, an off-the-shelf model checking tool for hyperproperties can be used to generate test cases. Furthermore, we propose solutions to overcome the limitations of current model checking tools via a model transformation and a bounded SMT encoding. We evaluate our approach on a number of models expressed in two different modeling languages by generating tests using a state-of-the-art mutation testing tool. Andreas Fellner, Mitra Tabaei Befrouei, Georg Weissenbacher |
SEFM | 3 |
| 2019 | Extracting Safe Thread Schedules from Incomplete Model Checking Results
Patrick Metzler, Neeraj Suri, Georg Weissenbacher |
SPIN | 3 |
| 2019 | Model-based, Mutation-driven Test-case Generation Via Heuristic-guided Branching SearchabstractThis work introduces a heuristic-guided branching search algorithm for model-based, mutation-driven test-case generation. The algorithm is designed towards the efficient and computationally tractable exploration of discrete, non-deterministic models with huge state spaces. Asynchronous parallel processing is a key feature of the algorithm. The algorithm is inspired by the successful path planning algorithm Rapidly exploring Random Trees (RRT). We adapt RRT in several aspects towards test-case generation. Most notably, we introduce parametrized heuristics for start and successor state selection, as well as a mechanism to construct test cases from the data produced during the search. We implemented our algorithm in the existing test-case generation framework MoMuT. We present an extensive evaluation of the proposed heuristics and parameters of the algorithm, based on a diverse set of demanding models obtained in an industrial context. In total, we continuously utilized 128 CPU cores on three servers for several weeks to gather the experimental data presented. We show that branching search works well and the use of multiple heuristics is justified. With our new algorithm, we are now able to process models consisting of over 2,300 concurrent objects. To our knowledge, there is no other mutation-driven test-case generation tool that is able to process models of this magnitude. Andreas Fellner, Willibald Krenn, Rupert Schlick, Thorsten Tarrach, Georg Weissenbacher |
ACM Trans. Embed. Comput. Syst. | 5 |
| 2018 | Rely-Guarantee Reasoning for Automated Bound Analysis of Lock-Free AlgorithmsabstractWe present a thread-modular proof method for complexity and resource bound analysis of concurrent, shared-memory programs, lifting Jones' rely-guarantee reasoning to assumptions and commitments capable of expressing bounds. We automate reasoning in this logic by reducing bound analysis of concurrent programs to the sequential case. Our work is motivated by its application to lock-free data structures, fine-grained concurrent algorithms whose time complexity has to our knowledge not been inferred automatically before. Thomas Pani, Georg Weissenbacher, Florian Zuleger |
FMCAD | 2 |
| 2018 | Randomized testing of distributed systems with probabilistic guaranteesabstractSeveral recently proposed randomized testing tools for concurrent and distributed systems come with theoretical guarantees on their success. The key to these guarantees is a notion of bug depth—the minimum length of a sequence of events sufficient to expose the bug—and a characterization of d -hitting families of schedules—a set of schedules guaranteed to cover every bug of given depth d . Previous results show that in certain cases the size of a d -hitting family can be significantly smaller than the total number of possible schedules. However, these results either assume shared-memory multithreading, or that the underlying partial ordering of events is known statically and has special structure. These assumptions are not met by distributed message-passing applications. In this paper, we present a randomized scheduling algorithm for testing distributed systems. In contrast to previous approaches, our algorithm works for arbitrary partially ordered sets of events revealed online as the program is being executed. We show that for partial orders of width at most w and size at most n (both statically unknown), our algorithm is guaranteed to sample from at most w 2 n d −1 schedules, for every fixed bug depth d . Thus, our algorithm discovers a bug of depth d with probability at least 1 / ( w 2 n d −1 ). As a special case, our algorithm recovers a previous randomized testing algorithm for multithreaded programs. Our algorithm is simple to implement, but the correctness arguments depend on difficult combinatorial results about online dimension and online chain partitioning of partially ordered sets. We have implemented our algorithm in a randomized testing tool for distributed message-passing programs. We show that our algorithm can find bugs in distributed systems such as Zookeeper and Cassandra, and empirically outperforms naive random exploration while providing theoretical guarantees. Burcu Kulahcioglu Ozkan, Rupak Majumdar, Filip Niksic, Mitra Tabaei Befrouei, Georg Weissenbacher |
Proc. ACM Program. Lang. | 5 |
| 2017 | Model-based, mutation-driven test case generation via heuristic-guided branching searchabstractThis work introduces a heuristic-guided branching search algorithm for model-based, mutation-driven test case generation. The algorithm is designed towards the efficient and computationally tractable exploration of discrete, non-deterministic models with huge state spaces. Asynchronous parallel processing is a key feature of the algorithm. The algorithm is inspired by the successful path planning algorithm Rapidly exploring Random Trees (RRT). We adapt RRT in several aspects towards test case generation. Most notably, we introduce parametrized heuristics for start and successor state selection, as well as a mechanism to construct test cases from the data produced during search. Andreas Fellner, Willibald Krenn, Rupert Schlick, Thorsten Tarrach, Georg Weissenbacher |
MEMOCODE | 5 |
| 2017 | Dynamic Reductions for Model Checking Concurrent Software
Henning Günther, Alfons Laarman, Ana Sokolova, Georg Weissenbacher |
VMCAI | 4 |
| 2017 | Preface of the Special Issue in Memoriam Helmut Veith
Georg Gottlob, Thomas A. Henzinger, Georg Weissenbacher |
Formal Methods Syst. Des. | 3 |
| 2016 | Error Invariants for Concurrent Traces
Andreas Holzer, Daniel Schwartz-Narbonne, Mitra Tabaei Befrouei, Georg Weissenbacher, Thomas Wies |
FM | 4 |
| 2016 | Vienna Verification Tool: IC3 for Parallel Software - (Competition Contribution)
Henning Günther, Alfons Laarman, Georg Weissenbacher |
TACAS | 3 |
| 2016 | Abstraction and mining of traces to explain concurrency bugsabstractWe propose an automated mining-based method for explaining concurrency bugs. We use a data mining technique called sequential pattern mining to identify problematic sequences of concurrent read and write accesses to the shared memory of a multithreaded program. Our technique does not rely on any characteristics specific to one type of concurrency bug, thus providing a general framework for concurrency bug explanation. In our method, given a set of concurrent execution traces, we first mine sequences that frequently occur in failing traces and then rank them based on the number of their occurrences in passing traces. We consider the highly ranked sequences of events that occur frequently only in failing traces an explanation of the system failure, as they can reveal its causes in the execution traces. Since the scalability of sequential pattern mining is limited by the length of the traces, we present an abstraction technique which shortens the traces at the cost of introducing spurious explanations. Spurious as well as misleading explanations are then eliminated by a subsequent filtering step, helping the programmer to focus on likely causes of the failure. We validate our approach using a number of case studies, including synthetic as well as real-world bugs. Mitra Tabaei Befrouei, Chao Wang 0001, Georg Weissenbacher |
Formal Methods Syst. Des. | 3 |
| 2016 | Labelled Interpolation Systems for Hyper-Resolution, Clausal, and Local ProofsabstractCraig's interpolation theorem has numerous applications in model checking, automated reasoning, and synthesis. There is a variety of interpolation systems which derive interpolants from refutation proofs; these systems are ad-hoc and rigid in the sense that they provide exactly one interpolant for a given proof. In previous work, we introduced a parametrised interpolation system which subsumes existing interpolation methods for propositional resolution proofs and enables the systematic variation of the logical strength and the elimination of non-essential variables in interpolants. In this paper, we generalise this system to propositional hyper-resolution proofs as well as clausal proofs. The latter are generated by contemporary SAT solvers. Finally, we show that, when applied to local (or split) proofs, our extension generalises two existing interpolation systems for first-order logic and relates them in logical strength. Matthias Schlaipfer, Georg Weissenbacher |
J. Autom. Reason. | 2 |
| 2015 | Proving Safety with Trace Automata and Bounded Model Checking
Daniel Kroening, Matt Lewis, Georg Weissenbacher |
FM | 3 |
| 2015 | The FMCAD 2015 Graduate Student ForumabstractThe FMCAD Student Forum provides a platform for graduate students at any career stage to introduce their research to the wider Formal Methods community, and solicit feedback. In 2015, the event took place in Austin, Texas, as integral part of the FMCAD conference. Sixteen students were invited to give a short talk and present a poster illustrating their work. The presentations covered a broad range of topics in the field of verification, such as automated reasoning, model checking of hardware, software, as well as hybrid systems, verification of concurrent programs, and checking of security properties. Georg Weissenbacher |
FMCAD | 1 |
| 2015 | Under-approximating loops in C programs for fast counterexample detectionabstractMany software model checkers only detect counterexamples with deep loops after exploring numerous spurious and increasingly longer counterexamples. We propose a technique that aims at eliminating this weakness by constructing auxiliary paths that represent the effect of a range of loop iterations. Unlike acceleration, which captures the exact effect of arbitrarily many loop iterations, these auxiliary paths may under-approximate the behaviour of the loops. In return, the approximation is sound with respect to the bit-vector semantics of programs. Our approach supports arbitrary conditions and assignments to arrays in the loop body, but may as a result introduce quantified conditionals. To reduce the resulting performance penalty, we present two quantifier elimination techniques specially geared towards our application. Loop under-approximation can be combined with a broad range of verification techniques. We paired our techniques with lazy abstraction and bounded model checking, and evaluated the resulting tool on a number of buffer overflow benchmarks, demonstrating its ability to efficiently detect deep counterexamples in C programs that manipulate arrays. Daniel Kroening, Matt Lewis, Georg Weissenbacher |
Formal Methods Syst. Des. | 3 |
| 2015 | Boolean Satisfiability Solvers and Their Applications in Model CheckingabstractBoolean satisfiability (SAT)-the problem of determining whether there exists an assignment satisfying a given Boolean formula-is a fundamental intractable problem in computer science. SAT has many applications in electronic design automation (EDA), notably in synthesis and verification. Consequently, SAT has received much attention from the EDA community, who developed algorithms that have had a significant impact on the performance of SAT solvers. EDA researchers introduced techniques such as conflict-driven clause learning, novel branching heuristics, and efficient unit propagation. These techniques form the basis of all modern SAT solvers. Using these ideas, contemporary SAT solvers can often handle practical instances with millions of variables and constraints. The continuing advances of SAT solvers are the driving force of modern model checking tools, which are used to check the correctness of hardware designs. Contemporary automated verification techniques such as bounded model checking, proof-based abstraction, interpolation-based model checking, and IC3 have in common that they are all based on SAT solvers and their extensions. In this paper, we trace the most important contributions made to modern SAT solvers by the EDA community, and discuss applications of SAT in hardware model checking. Yakir Vizel, Georg Weissenbacher, Sharad Malik |
Proc. IEEE | 2 |
| 2014 | Counterexample to Induction-Guided Abstraction-Refinement (CTIGAR)
Johannes Birgmeier, Aaron R. Bradley, Georg Weissenbacher |
CAV | 3 |
| 2014 | Silicon fault diagnosis using sequence interpolation with backbonesabstractSilicon fault diagnosis, the process of locating faults in a chip prototype, becomes more challenging and time-consuming with increasing design complexity. Consistency-based fault diagnosis aims at identifying fault candidates for an erroneous execution trace by symbolically checking the consistency between the golden gate-level model and the faulty behavior of the prototype chip. The scalability of this technique is limited to short executions due to the underlying decision procedure. This problem has previously been addressed by restricting the analysis to a window of fixed size and moving it along the execution trace. In this setting, limited observability results in a loss of precision and potentially missed fault candidates. We present a novel interpolation-based framework which formalizes the propagation of state information across sliding windows as a satisfiability problem. Our approach provides both spatial and temporal localization for general faults and is not restricted to a specific fault model. Further, our approach can be used to provide more accurate localization for a single permanent fault model. We experimentally demonstrate the efficacy and scalability of this approach by applying it to a variety of benchmarks from multiple suites (OpenCores, ITC99 and HWMCC). Charlie Shucheng Zhu, Georg Weissenbacher, Sharad Malik |
ICCAD | 2 |
| 2014 | Abstraction and Mining of Traces to Explain Concurrency Bugs
Mitra Tabaei Befrouei, Chao Wang 0001, Georg Weissenbacher |
RV | 3 |
| 2014 | Incremental bounded software model checkingabstractConventional Bounded Software Model Checking tools generate a symbolic representation of all feasible executions of a program up to a predetermined bound. An insufficiently large bound results in missed bugs, and a subsequent increase of the bound necessitates the complete reconstruction of the instance and a restart of the underlying solver. Conversely, exceedingly large bounds result in prohibitively large decision problems, causing the verifier to run out of resources before it can provide a result. Henning Günther, Georg Weissenbacher |
SPIN | 2 |
| 2013 | Under-Approximating Loops in C Programs for Fast Counterexample Detection
Daniel Kroening, Matt Lewis, Georg Weissenbacher |
CAV | 3 |
| 2012 | Parallel Assertions for Architectures with Weak Memory Models
Daniel Schwartz-Narbonne, Georg Weissenbacher, Sharad Malik |
ATVA | 2 |
| 2012 | Interpolant Strength Revisited
Georg Weissenbacher |
SAT | 1 |
| 2012 | Wolverine: Battling Bugs with Interpolants - (Competition Contribution)
Georg Weissenbacher, Daniel Kroening, Sharad Malik |
TACAS | 1 |
| 2011 | Interpolation-Based Software Verification with Wolverine
Daniel Kroening, Georg Weissenbacher |
CAV | 2 |
| 2011 | Post-silicon fault localisation using maximum satisfiability and backbones
Charlie Shucheng Zhu, Georg Weissenbacher, Sharad Malik |
FMCAD | 2 |
| 2010 | Interpolant Strength
Vijay Victor D'Silva, Daniel Kroening, Mitra Purandare, Georg Weissenbacher |
VMCAI | 4 |
| 2010 | Verification and falsification of programs with loops using predicate abstractionabstractAbstract Predicate abstraction is a major abstraction technique for the verification of software. Data is abstracted by means of Boolean variables, which keep track of predicates over the data. In many cases, predicate abstraction suffers from the need for at least one predicate for each iteration of a loop construct in the program. We propose to extract looping counterexamples from the abstract model, and to parametrise the simulation instance in the number of loop iterations. We present a novel technique that speeds up the detection of long counterexamples as well as the verification of programs with loops. Daniel Kroening, Georg Weissenbacher |
Formal Aspects Comput. | 2 |
| 2008 | A Survey of Automated Techniques for Formal Software VerificationabstractThe quality and the correctness of software are often the greatest concern in electronic systems. Formal verification tools can provide a guarantee that a design is free of specific flaws. This paper surveys algorithms that perform automatic static analysis of software to detect programming errors or prove their absence. The three techniques considered are static analysis with abstract domains, model checking, and bounded model checking. A short tutorial on these techniques is provided, highlighting their differences when applied to practical problems. This paper also surveys tools implementing these techniques and describes their merits and shortcomings. Vijay Victor D'Silva, Daniel Kroening, Georg Weissenbacher |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 3 |
| 2007 | Lifting Propositional Interpolants to the Word-LevelabstractCraig interpolants are often used to approximate inductive invariants of transition systems. Arithmetic relationships between numeric variables require word-level interpolants, which are derived from word-level proofs of unsatisfiability. While word-level theorem provers have made significant progress in the past few years, competitive solvers for many logics are based on flattening the word-level structure to the bit-level. We propose an algorithm that lifts a resolution proof obtained from a bit-flattened formula up to the word-level, which enables the computation of word-level interpolants. Experimental results for equality logic suggest that the overhead of lifting the propositional proof is very low compared to the solving time of a state-of-the-art solver. Daniel Kroening, Georg Weissenbacher |
FMCAD | 2 |
| 2007 | Model checking concurrent linux device driversabstractThe S lam toolkit demonstrates that predicate abstraction enables automated verification of real world Windows device drivers. Our predicate abstraction-based tool DDV erify enables the automated verification of Linux device drivers and provides an accurate model of the relevant parts of the kernel. We report on benchmarks based on Linux device drivers, confirming the results that S lam established for the Windows world. Furthermore, we take predicate abstraction one step further and introduce a technique to verify concurrent software with shared memory Thomas Witkowski, Nicolas Blanc, Daniel Kroening, Georg Weissenbacher |
ASE | 4 |
| 2006 | Counterexamples with Loops for Predicate Abstraction
Daniel Kroening, Georg Weissenbacher |
CAV | 2 |