Philipp Wendler

dblp:61/9609 · DBLP profile ↗
← Back
25ranked-venue papers
1as first author
5since 2021 · last 2025
0000-0002-5139-341XORCID · verified

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

Software engineering, systems software and programming languages · 22 · 1 first-author · 3 since 2021Theory of computation · 5 · 1 since 2021Artificial intelligence and machine learning · 3 · 2 since 2021Computer networks · 1
YearPublicationVenuePosition
2025 Interpolation and SAT-Based Model Checking Revisited: Adoption to Software Verification
abstract
Abstract The article Interpolation and SAT-Based Model Checking (McMillan in: Proc. CAV 2003, LNCS, Springer [56]) describes a formal-verification algorithm, which was originally devised to verify safety properties of finite-state transition systems. It derives interpolants from unsatisfiable BMC queries and collects them to construct an overapproximation of the set of reachable states. Although 20 years old, the algorithm is still state-of-the-art in hardware model checking. Unlike other formal-verification algorithms, such as "Image missing" or PDR, which have been extended to handle infinite-state systems and investigated for program analysis, McMillan’s interpolation-based model-checking algorithm from 2003 has not been used to verify programs so far. Our contribution is to close this significant, two decades old gap in knowledge by adopting the algorithm to software verification. We implemented it in the verification framework CPAchecker and evaluated the implementation against other state-of-the-art software-verification techniques on the largest publicly available benchmark suite of C safety-verification tasks. The evaluation demonstrates that McMillan’s interpolation-based model-checking algorithm from 2003 is competitive among other algorithms in terms of both the number of solved verification tasks and the run-time efficiency. Our results are important for the area of software verification, because researchers and developers now have one more approach to choose from.
Dirk Beyer 0001, Nian-Ze Lee, Philipp Wendler
J. Autom. Reason.3
2024 Software Verification with CPAchecker 3.0: Tutorial and User Guide
abstract
Abstract This tutorial provides an introduction toCPAcheckerfor users.CPAcheckeris a flexible and configurable framework for software verification and testing. The framework provides many abstract domains, such as BDDs, explicit values, intervals, memory graphs, and predicates, and many program-analysis and model-checking algorithms, such as abstract interpretation, bounded model checking,Impact, interpolation-based model checking,k-induction, PDR, predicate abstraction, and symbolic execution. This tutorial presents basic use cases forCPAcheckerin formal software verification, focusing on its main verification techniques with their strengths and weaknesses. An extended version also shows further use cases ofCPAcheckerfor test-case generation and witness-based result validation. The envisioned readers are assumed to possess a background in automatic formal verification and program analysis, but prior knowledge ofCPAcheckeris not required. This tutorial and user guide is based onCPAcheckerin version 3.0. This user guide’s latest version and other documentation are available at https://cpachecker.sosy-lab.org/doc.php .
Daniel Baier, Dirk Beyer 0001, Po-Chun Chien, Marie-Christine Jakobs, Marek Jankola, Matthias Kettl, Nian-Ze Lee, Thomas Lemberger 0002, Marian Lingsch Rosenfeld, Henrik Wachowitz, Philipp Wendler
FM (2)11
2024 CPAchecker 2.3 with Strategy Selection - (Competition Contribution)
abstract
Abstract CPAcheckeris a versatile framework for software verification, rooted in the established concept ofconfigurable program analysis. Compared to the last published system description at SV-COMP 2015, theCPAcheckersubmission to SV-COMP 2024 incorporates new analyses for reachability safety, memory safety, termination, overflows, and data races. To combine forces of the available analyses inCPAcheckerand cover the full spectrum of the diverse program characteristics and specifications in the competition, we usestrategy selectionto predict a sequential portfolio of analyses that is suitable for a given verification task. The prediction is guided by a set of carefully picked program features. The sequential portfolios are composed based on expert knowledge and consist of bit-precise analyses usingk-induction, data-flow analysis, SMT solving, Craig interpolation, lazy abstraction, and block-abstraction memoization. The synergy of various algorithms inCPAcheckerenables support for all properties and categories of C programs in SV-COMP 2024 and contributes to its success in many categories.CPAcheckeralso generates verification witnesses in the new YAML format.
Daniel Baier, Dirk Beyer 0001, Po-Chun Chien, Marek Jankola, Matthias Kettl, Nian-Ze Lee, Thomas Lemberger 0002, Marian Lingsch Rosenfeld, Martin Spiessl, Henrik Wachowitz, Philipp Wendler
TACAS (3)11
2022 Correction to: Reliable benchmarking: requirements and solutions
abstract
The article Reliable benchmarking: requirements and solutions.
Dirk Beyer 0001, Stefan Löwe, Philipp Wendler
Int. J. Softw. Tools Technol. Transf.3
2021 Correction to: A Unifying View on SMT-Based Software Verification
Dirk Beyer 0001, Matthias Dangl, Philipp Wendler
J. Autom. Reason.3
2020 CPU Energy Meter: A Tool for Energy-Aware Algorithms Engineering
abstract
Abstract Verification algorithms are among the most resource-intensive computation tasks. Saving energy is important for our living environment and to save cost in data centers. Yet, researchers compare the efficiency of algorithms still in terms of consumption of CPU time (or even wall time). Perhaps one reason for this is that measuring energy consumption of computational processes is not as convenient as measuring the consumed time and there is no sufficient tool support. To close this gap, we contribute CPU Energy Meter, a small tool that takes care of reading the energy values that Intel CPUs track inside the chip. In order to make energy measurements as easy as possible, we integrated CPU Energy Meter into BenchExec, a benchmarking tool that is already used by many researchers and competitions in the domain of formal methods. As evidence for usefulness, we explored the energy consumption of some state-of-the-art verifiers and report some interesting insights, for example, that energy consumption is not necessarily correlated with CPU time.
Dirk Beyer 0001, Philipp Wendler
TACAS (2)2
2019 Reliable benchmarking: requirements and solutions
abstract
Abstract Benchmarking is a widely used method in experimental computer science, in particular, for the comparative evaluation of tools and algorithms. As a consequence, a number of questions need to be answered in order to ensure proper benchmarking, resource measurement, and presentation of results, all of which is essential for researchers, tool developers, and users, as well as for tool competitions. We identify a set of requirements that are indispensable for reliable benchmarking and resource measurement of time and memory usage of automatic solvers, verifiers, and similar tools, and discuss limitations of existing methods and benchmarking tools. Fulfilling these requirements in a benchmarking framework can (on Linux systems) currently only be done by using the cgroup and namespace features of the kernel. We developed BenchExec , a ready-to-use, tool-independent, and open-source implementation of a benchmarking framework that fulfills all presented requirements, making reliable benchmarking and resource measurement easy. Our framework is able to work with a wide range of different tools, has proven its reliability and usefulness in the International Competition on Software Verification, and is used by several research groups worldwide to ensure reliable benchmarking. Finally, we present guidelines on how to present measurement results in a scientifically valid and comprehensible way.
Dirk Beyer 0001, Stefan Löwe, Philipp Wendler
Int. J. Softw. Tools Technol. Transf.3
2018 A Unifying View on SMT-Based Software Verification
abstract
Abstract After many years of successful development of new approaches for software verification, there is a need to consolidate the knowledge about the different abstract domains and algorithms. The goal of this paper is to provide a compact and accessible presentation of four SMT-based verification approaches in order to study them in theory and in practice. We present and compare the following different “schools of thought” of software verification: bounded model checking, k-induction, predicate abstraction, and lazy abstraction with interpolants. Those approaches are well-known and successful in software verification and have in common that they are based on SMT solving as the back-end technology. We reformulate all four approaches in the unifying theoretical framework of configurable program analysis and implement them in the verification framework CPAchecker. Based on this, we can present an evaluation that thoroughly compares the different approaches, where the core differences are expressed in configuration parameters and all other variables are kept constant (such as parser front end, SMT solver, used theory in SMT formulas). We evaluate the effectiveness and the efficiency of the approaches on a large set of verification tasks and discuss the conclusions.
Dirk Beyer 0001, Matthias Dangl, Philipp Wendler
J. Autom. Reason.3
2016 Program Analysis with Local Policy Iteration
Egor George Karpenkov, David Monniaux, Philipp Wendler
VMCAI3
2015 Boosting k-Induction with Continuously-Refined Invariants
Dirk Beyer 0001, Matthias Dangl, Philipp Wendler
CAV (1)3
2015 Sliced Path Prefixes: An Effective Method to Enable Refinement Selection
Dirk Beyer 0001, Stefan Löwe, Philipp Wendler
FORTE3
2015 Refinement Selection
Dirk Beyer 0001, Stefan Löwe, Philipp Wendler
SPIN3
2015 Benchmarking and Resource Measurement
Dirk Beyer 0001, Stefan Löwe, Philipp Wendler
SPIN3
2015 CPAchecker with Support for Recursive Programs and Floating-Point Arithmetic - (Competition Contribution)
Matthias Dangl, Stefan Löwe, Philipp Wendler
TACAS3
2014 Software Verification in the Google App-Engine Cloud
Dirk Beyer 0001, Georg Dresler, Philipp Wendler
CAV3
2014 CPAchecker with Sequential Combination of Explicit-Value Analyses and Predicate Analyses - (Competition Contribution)
Stefan Löwe, Mikhail U. Mandrykin, Philipp Wendler
TACAS3
2013 Strategies for product-line verification: case studies and experiments
abstract
Product-line technology is increasingly used in mission-critical and safety-critical applications. Hence, researchers are developing verification approaches that follow different strategies to cope with the specific properties of product lines. While the research community is discussing the mutual strengths and weaknesses of the different strategies - mostly at a conceptual level - there is a lack of evidence in terms of case studies, tool implementations, and experiments. We have collected and prepared six product lines as subject systems for experimentation. Furthermore, we have developed a model-checking tool chain for C-based and Java-based product lines, called SPLverifier, which we use to compare sample-based and family-based strategies with regard to verification performance and the ability to find defects. Based on the experimental results and an analytical model, we revisit the discussion of the strengths and weaknesses of product-line-verification strategies.
Sven Apel, Alexander von Rhein, Philipp Wendler, Armin Größlinger, Dirk Beyer 0001
ICSE3
2013 Precision reuse for efficient regression verification
abstract
Continuous testing during development is a well-established technique for software-quality assurance. Continuous model checking from revision to revision is not yet established as a standard practice, because the enormous resource consumption makes its application impractical. Model checkers compute a large number of verification facts that are necessary for verifying if a given specification holds. We have identified a category of such intermediate results that are easy to store and efficient to reuse: abstraction precisions. The precision of an abstract domain specifies the level of abstraction that the analysis works on. Precisions are thus a precious result of the verification effort and it is a waste of resources to throw them away after each verification run. In particular, precisions are reasonably small and thus easy to store; they are easy to process and have a large impact on resource consumption. We experimentally show the impact of precision reuse on industrial verification problems created from 62 Linux kernel device drivers with 1119 revisions.
Dirk Beyer 0001, Stefan Löwe, Evgeny Novikov, Andreas Stahlbauer, Philipp Wendler
ESEC/SIGSOFT FSE5
2013 Reuse of Verification Results - Conditional Model Checking, Precision Reuse, and Verification Witnesses
Dirk Beyer 0001, Philipp Wendler
SPIN2
2013 CPAchecker with Sequential Combination of Explicit-State Analysis and Predicate Analysis - (Competition Contribution)
Philipp Wendler
TACAS1
2012 Algorithms for software model checking: Predicate abstraction vs. Impact
Dirk Beyer 0001, Philipp Wendler
FMCAD2
2012 Conditional model checking: a technique to pass information between verifiers
abstract
Software model checking, as an undecidable problem, has three possible outcomes: (1) the program satisfies the specification, (2) the program does not satisfy the specification, and (3) the model checker fails. The third outcome usually manifests itself in a space-out, time-out, or one component of the verification tool giving up; in all of these failing cases, significant computation is performed by the verification tool before the failure, but no result is reported. We propose to reformulate the model-checking problem as follows, in order to have the verification tool report a summary of the performed work even in case of failure: given a program and a specification, the model checker returns a condition Ψ ---usually a state predicate--- such that the program satisfies the specification under the condition Ψ ---that is, as long as the program does not leave the states in which Ψ is satisfied. In our experiments, we investigated as one major application of conditional model checking the sequential combination of model checkers with information passing. We give the condition that one model checker produces, as input to a second conditional model checker, such that the verification problem for the second is restricted to the part of the state space that is not covered by the condition, i.e., the second model checker works on the problems that the first model checker could not solve. Our experiments demonstrate that repeated application of conditional model checkers, passing information from one model checker to the next, can significantly improve the verification results and performance, i.e., we can now verify programs that we could not verify before.
Dirk Beyer 0001, Thomas A. Henzinger, M. Erkan Keremoglu, Philipp Wendler
SIGSOFT FSE4
2012 CPAchecker with Adjustable Predicate Analysis - (Competition Contribution)
Stefan Löwe, Philipp Wendler
TACAS2
2011 Detection of feature interactions using feature-aware verification
abstract
A software product line is a set of software products that are distinguished in terms of features (i.e., end-user-visible units of behavior). Feature interactions —situations in which the combination of features leads to emergent and possibly critical behavior— are a major source of failures in software product lines. We explore how feature-aware verification can improve the automatic detection of feature interactions in software product lines. Feature-aware verification uses product-line-verification techniques and supports the specification of feature properties along with the features in separate and composable units. It integrates the technique of variability encoding to verify a product line without generating and checking a possibly exponential number of feature combinations. We developed the tool suite SPLVERIFIER for feature-aware verification, which is based on standard model-checking technology. We applied it to an e-mail system that incorporates domain knowledge of AT&T. We found that feature interactions can be detected automatically based on specifications that have only local knowledge.
Sven Apel, Hendrik Speidel, Philipp Wendler, Alexander von Rhein, Dirk Beyer 0001
ASE3
2010 Predicate abstraction with adjustable-block encoding
Dirk Beyer 0001, M. Erkan Keremoglu, Philipp Wendler
FMCAD3