Andreas Podelski

dblp:p/APodelski · DBLP profile ↗
← Back
147ranked-venue papers
20as first author
19since 2021 · last 2026
0000-0003-2540-9489ORCID · verified

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

Software engineering, systems software and programming languages · 113 · 18 first-author · 16 since 2021Theory of computation · 44 · 5 first-author · 3 since 2021Artificial intelligence and machine learning · 10 · 2 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 4 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1
YearPublicationVenuePosition
2026 Provably Relevant HAL Interface Requirements for Embedded Systems
Manuel Bentele, Andreas Podelski, Axel Sikora, Bernd Westphal
REFSQ2
2026 A Practical and Complete Method for Detecting rt-Inconsistencies in Real-Time Requirements
Nico Hauff, Elisabeth Henkel, Elisabeth Fünfgeld, Vincent Langenfeld, Andreas Podelski
REFSQ5
2026 Automata-Represented Requirements in HanforPL - A Visual Approach for Requirements Engineering Practice and Formal Reasoning
Tobias Kolzer, Vincent Langenfeld, Nico Hauff, Elisabeth Henkel, Andreas Podelski
REFSQ5
2026 Ultimate Automizer with a One-Dimensional Memory Model - (Competition Contribution)
Manuel Bentele, Max Barth, Marcel Ebbinghaus, Jan Körner, Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Frank Schüssele, Andreas Podelski
TACAS (2)9
2025 Counterexample-Guided Commutativity
abstract
Abstract We consider the use of commutativity-based reduction for the algorithmic verification of concurrent programs. In existing work, the commutativity relation used for the reduction is mostly fixed statically. In this paper, we propose a demand-driven approach to compute the commutativity relation. The approach can be viewed as the direct analogue of the CEGAR approach which uses counterexamples to guide the incremental refinement of the abstraction. Instead of eliminating a counterexample by proving it infeasible and refining the abstraction, we can eliminate a counterexample by proving it redundant and expanding the commutativity relation. When we prove a counterexample redundant, we use the proof for a generalization step which allows us to eliminate not just a single counterexample, but a whole infinite set. We present a general scheme where we integrate the new approach with the CEGAR approach. We have implemented an instantiation of the general scheme. An experimental evaluation shows an increase in the number of successfully verified programs by 15% on a challenging benchmark set.
Marcel Ebbinghaus, Dominik Klumpp, Andreas Podelski
CAV (3)3
2024 Scalable Redundancy Detection for Real-Time Requirements
abstract
Describing a system in a requirements specification demands correctness and conciseness. Requirements are redundant if they are stated multiple times throughout a specification (explicitly or implicitly). In contrast to vacuity, redundancies do not inherently indicate specification defects, and are sometimes even inevitable to adequately follow safety practices. However, intended redundancies have to be managed to avoid subsequent errors. Unintended redundancies often hint to defects in the requirements specification. We present an analysis for redundancies in formal real-time requirements specifications based on automata theoretical model checking. To enable this analysis, we introduce a determinism preserving totalization and complement procedure for the timed automaton model of Phase Event Automata. We state the redundancy check for a set of real-time requirements as a program analysis task. Benchmarks show the viability of our approach to analyse requirements sets of industrial size and complexity: the analysis scales well on industrial sets, interesting redundancies both from requirements and as a formalisation artefact were found.
Elisabeth Henkel, Nico Hauff, Lena Funk, Vincent Langenfeld, Andreas Podelski
RE5
2024 Ultimate Automizer and the Abstraction of Bitwise Operations - (Competition Contribution)
abstract
Abstract The verification ofUltimate Automizerworks on an SMT-LIB-based model of a C program. If we choose an SMT-LIB theory of (mathematical) integers, the translation is not precise, because we overapproximate bitwise operations. In this paper we present a translation for bitwise operations that improves the precision of this overapproximation.
Frank Schüssele, Manuel Bentele, Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Andreas Podelski
TACAS (3)7
2024 Commutativity Simplifies Proofs of Parameterized Programs
abstract
Commutativity has proven to be a powerful tool in reasoning about concurrent programs. Recent work has shown that a commutativity-based reduction of a program may admit simpler proofs than the program itself. The framework of lexicographical program reductions was introduced to formalize a broad class of reductions which accommodate sequential (thread-local) reasoning as well as synchronous programs. Approaches based on this framework, however, were fundamentally limited to program models with a fixed/bounded number of threads. In this paper, we show that it is possible to define an effective parametric family of program reductions that can be used to find simple proofs for parameterized programs , i.e., for programs with an unbounded number of threads. We show that reductions are indeed useful for the simplification of proofs for parameterized programs, in a sense that can be made precise: A reduction of a parameterized program may admit a proof which uses fewer or less sophisticated ghost variables. The reduction may therefore be within reach of an automated verification technique, even when the original parameterized program is not. As our first technical contribution, we introduce a notion of reductions for parameterized programs such that the reduction R of a parameterized program P is again a parameterized program (the thread template of R is obtained by source-to-source transformation of the thread template of P ). Consequently, existing techniques for the verification of parameterized programs can be directly applied to R instead of P . Our second technical contribution is that we define an appropriate family of pairwise preference orders which can be effectively used as a parameter to produce different lexicographical reductions. To determine whether this theoretical foundation amounts to a usable solution in practice, we have implemented the approach, based on a recently proposed framework for parameterized program verification. The results of our preliminary experiments on a representative set of examples are encouraging.
Azadeh Farzan, Dominik Klumpp, Andreas Podelski
Proc. ACM Program. Lang.3
2024 Systematic adaptation and investigation of the understandability of a formal pattern language
abstract
Abstract Formal pattern languages are used in industry to communicate and analyse requirements, as they are said to be both machine-readable and intuitively understandable for humans. The questions arise to what extent this intuitive understanding of a pattern language is in agreement with its formal semantics and whether this understanding can be increased systematically. We present two consecutive empirical experiments to address these questions. The formal semantics serves as an objective judge on the intuitive understanding. Our experiments confirm the practical usefulness of HanforPL insofar the intuition matches the formal semantics in most practically relevant cases. They also reveal a number of edge cases where even a prior exposure to formal logic is not a guarantee for correct understanding. We present and validate systematic adjustments to the patterns, leading to several large increases in understandability but come at the cost of new, but less impactful ambiguities. We demonstrate how an inquiry on the alignment of the intuitive and formal semantics of a pattern language can help to understand and improve the language. While results regarding the understandability of HanforPL are favourable in commonly used cases, there is potential for improvement. The systematic adaption of patterns shows that small modifications may have large effects on the alignment of formal and intuitive semantics, and that modification must be considered with caution in the context of the respective pattern to avoid unintentionally adding new ambiguities. This article is an extension of our published REFSQ paper.
Elisabeth Henkel, Nico Hauff, Vincent Langenfeld, Lukas Eber, Andreas Podelski
Requir. Eng.5
2023 An Empirical Study of the Intuitive Understanding of a Formal Pattern Language
Elisabeth Henkel, Nico Hauff, Lukas Eber, Vincent Langenfeld, Andreas Podelski
REFSQ5
2023 Ultimate Taipan and Race Detection in Ultimate - (Competition Contribution)
abstract
Abstract Ultimate Taipan integrates trace abstraction with algebraic program analysis on path programs. Taipan supports data race checking in concurrent programs through a reduction to reachability checking. Though the subsequent verification is not tuned for data race checking, the results are encouraging.
Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Frank Schüssele, Andreas Podelski
TACAS (2)5
2023 Ultimate Automizer and the CommuHash Normal Form - (Competition Contribution)
abstract
Abstract The verification approach of Ultimate Automizer utilizes SMT formulas. This paper presents techniques to keep the size of the formulas small. We focus especially on a normal form, called CommuHash normal form that was easy to implement and had a significant impact on the runtime of our tool.
Matthias Heizmann, Max Barth, Daniel Dietsch, Leonard Fichtner, Jochen Hoenicke, Dominik Klumpp, Mehdi Naouar, Tanja Schindler, Frank Schüssele, Andreas Podelski
TACAS (2)10
2023 Stratified Commutativity in Verification Algorithms for Concurrent Programs
abstract
The importance of exploitingcommutativity relationsin verification algorithms for concurrent programs is well-known. They can help simplify the proof and improve the time and space efficiency. This paper studies commutativity relations as a first-class object in the setting of verification algorithms for concurrent programs. A first contribution is a general framework forabstract commutativity relations. We introduce a general soundness condition for commutativity relations, and present a method to automatically derive sound abstract commutativity relations from a given proof. The method can be used in a verification algorithm based on abstraction refinement to compute a new commutativity relation in each iteration of the abstraction refinement loop. A second result is a general proof rule that allows one to combine multiple commutativity relations, with incomparable power, in astratifiedway that preserves soundness and allows one to profit from the full power of the combined relations. We present an algorithm for the stratified proof rule that performs an optimal combination (in a sense made formal), enabling usage of stratified commutativity in algorithmic verification. We empirically evaluate the impact of abstract commutativity and stratified combination of commutativity relations on verification algorithms for concurrent programs.
Azadeh Farzan, Dominik Klumpp, Andreas Podelski
Proc. ACM Program. Lang.3
2022 Sound sequentialization for concurrent program verification
abstract
We present a systematic investigation and experimental evaluation of a large space of algorithms for the verification of concurrent programs. The algorithms are based on sequentialization. In the analysis of concurrent programs, the general idea of sequentialization is to select a subset of interleavings, represent this subset as a sequential program, and apply a generic analysis for sequential programs. For the purpose of verification, the sequentialization has to be sound (meaning that the proof for the sequential program entails the correctness of the concurrent program). We use the concept of a preference order to define which interleavings the sequentialization is to select ("the most preferred ones"). A verification algorithm based on sound sequentialization that is parametrized in a preference order allows us to directly evaluate the impact of the selection of the subset of interleavings on the performance of the algorithm. Our experiments indicate the practical potential of sound sequentialization for concurrent program verification.
Azadeh Farzan, Dominik Klumpp, Andreas Podelski
PLDI3
2022 Ultimate GemCutter and the Axes of Generalization - (Competition Contribution)
abstract
Abstract Ultimate GemCutter verifies concurrent programs using the CEGAR paradigm, by generalizing from spurious counterexample traces to larger sets of correct traces. We integrate classical CEGAR generalization with orthogonal generalization across interleavings. Thereby, we are able to prove correctness of programs otherwise out-of-reach for interpolation-based verification. The competition results show significant advantages over other concurrency approaches in the Ultimate family.
Dominik Klumpp, Daniel Dietsch, Matthias Heizmann, Frank Schüssele, Marcel Ebbinghaus, Azadeh Farzan, Andreas Podelski
TACAS (2)7
2022 Decomposing reach set computations with low-dimensional sets and high-dimensional matrices (extended version)
abstract
Approximating the set of reachable states of a dynamical system is an algorithmic way to rigorously reason about its safety. Despite progress on efficient algorithms for affine dynamical systems, available algorithms still lack scalability to ensure their wide adoption in practice. While modern linear algebra packages are efficient for matrices with tens of thousands of dimensions, set-based image computations are limited to a few hundred. We propose to decompose reach-set computations such that set operations are performed in low dimensions, while matrix operations are performed in the full dimension. Our method is applicable in both dense- and discrete-time settings. For a set of standard benchmarks, we show a speed-up of up to two orders of magnitude compared to the respective state-of-the-art tools, with only modest loss in accuracy. For the dense-time case, we show an experiment with more than 10,000 variables, roughly two orders of magnitude higher than possible before.
Sergiy Bogomolov, Marcelo Forets, Goran Frehse, Andreas Podelski, Christian Schilling 0001
Inf. Comput.4
2021 A Formal Operational Model of ACT-R: Structure and Behaviour
Vincent Langenfeld, Bernd Westphal, Andreas Podelski
CogSci3
2021 Verification of Concurrent Programs Using Petri Net Unfoldings
Daniel Dietsch, Matthias Heizmann, Dominik Klumpp, Mehdi Naouar, Andreas Podelski, Claus Schätzle
VMCAI5
2021 Temporal prophecy for proving temporal properties of infinite-state systems
abstract
Abstract Various verification techniques for temporal properties transform temporal verification to safety verification. For infinite-state systems, these transformations are inherently imprecise. That is, for some instances, the temporal property holds, but the resulting safety property does not. This paper introduces a mechanism for tackling this imprecision. This mechanism, which we call temporal prophecy, is inspired by prophecy variables. Temporal prophecy refines an infinite-state system using first-order linear temporal logic formulas, via a suitable tableau construction. For a specific liveness-to-safety transformation based on first-order logic, we show that using temporal prophecy strictly increases the precision. Furthermore, temporal prophecy leads to robustness of the proof method, which is manifested by a cut elimination theorem. We integrate our approach into the Ivy deductive verification system, and show that it can handle challenging temporal verification examples.
Oded Padon, Jochen Hoenicke, Kenneth L. McMillan, Andreas Podelski, Shmuel Sagiv, Sharon Shoham
Formal Methods Syst. Des.4
2019 On Formal Verification of ACT-R Architectures and Models
Vincent Langenfeld, Bernd Westphal, Andreas Podelski
CogSci3
2018 But does it really do that? Using formal analysis to ensure desirable ACT-R model behaviour
Vincent Langenfeld, Bernd Westphal, Rebecca Albrecht, Andreas Podelski
CogSci4
2018 Temporal Prophecy for Proving Temporal Properties of Infinite-State Systems
abstract
Various verification techniques for temporal properties transform temporal verification to safety verification. For infinite-state systems, these transformations are inherently imprecise. That is, for some instances, the temporal property holds, but the resulting safety property does not. This paper introduces a mechanism for tackling this imprecision. This mechanism, which we call temporal prophecy, is inspired by prophecy variables. Temporal prophecy refines an infinite-state system using first-order linear temporal logic formulas, via a suitable tableau construction. For a specific liveness-to-safety transformation based on first-order logic, we show that using temporal prophecy strictly increases the precision. Furthermore, temporal prophecy leads to robustness of the proof method, which is manifested by a cut elimination theorem. We integrate our approach into the Ivy deductive verification system, and show that it can handle challenging temporal verification examples.
Oded Padon, Jochen Hoenicke, Kenneth L. McMillan, Andreas Podelski, Shmuel Sagiv, Sharon Shoham
FMCAD4
2018 Reach Set Approximation through Decomposition with Low-dimensional Sets and High-dimensional Matrices
abstract
Approximating the set of reachable states of a dynamical system is an algorithmic yet mathematically rigorous way to reason about its safety. Although progress has been made in the development of efficient algorithms for affine dynamical systems, available algorithms still lack scalability to ensure their wide adoption in the industrial setting. While modern linear algebra packages are efficient for matrices with tens of thousands of dimensions, set-based image computations are limited to a few hundred. We propose to decompose reach set computations such that set operations are performed in low dimensions, while matrix operations like exponentiation are carried out in the full dimension. Our method is applicable both in dense- and discrete-time settings. For a set of standard benchmarks, it shows a speed-up of up to two orders of magnitude compared to the respective state-of-the-art tools, with only modest losses in accuracy. For the dense-time case, we show an experiment with more than 10,000 variables, roughly two orders of magnitude higher than possible with previous approaches.
Sergiy Bogomolov, Marcelo Forets, Goran Frehse, Frédéric Viry, Andreas Podelski, Christian Schilling 0001
HSCC5
2018 Ultimate Taipan with Dynamic Block Encoding - (Competition Contribution)
Daniel Dietsch, Marius Greitschus, Matthias Heizmann, Jochen Hoenicke, Alexander Nutz, Andreas Podelski, Christian Schilling 0001, Tanja Schindler
TACAS (2)6
2018 Ultimate Automizer and the Search for Perfect Interpolants - (Competition Contribution)
Matthias Heizmann, Yu-Fang Chen 0001, Daniel Dietsch, Marius Greitschus, Jochen Hoenicke, Yong Li 0031, Alexander Nutz, Betim Musa, Christian Schilling 0001, Tanja Schindler, Andreas Podelski
TACAS (2)11
2018 Reducing liveness to safety in first-order logic
abstract
We develop a new technique for verifying temporal properties of infinite-state (distributed) systems. The main idea is to reduce the temporal verification problem to the problem of verifying the safety of infinite-state systems expressed in first-order logic. This allows to leverage existing techniques for safety verification to verify temporal properties of interesting distributed protocols, including some that have not been mechanically verified before. We model infinite-state systems using first-order logic, and use first-order temporal logic (FO-LTL) to specify temporal properties. This general formalism allows to naturally model distributed systems, while supporting both unbounded-parallelism (where the system is allowed to dynamically create processes), and infinite-state per process. The traditional approach for verifying temporal properties of infinite-state systems employs well-founded relations (e.g. using linear arithmetic ranking functions). In contrast, our approach is based the idea of fair cycle detection. In finite-state systems, temporal verification can always be reduced to fair cycle detection (a system contains a fair cycle if it revisits a state after satisfying all fairness constraints). However, with both infinitely many states and infinitely many fairness constraints, a straightforward reduction to fair cycle detection is unsound. To regain soundness, we augment the infinite-state transition system by a dynamically computed finite set, that exploits the locality of transitions. This set lets us define a form of fair cycle detection that is sound in the presence of both infinitely many states, and infinitely many fairness constraints. Our approach allows a new style of temporal verification that does not explicitly involve ranking functions. This fits well with pure first-order verification which does not explicitly reason about numerical values. In particular, it can be used with effectively propositional first-order logic (EPR), in which case checking verification conditions is decidable. We applied our technique to verify temporal properties of several interesting protocols. To the best of our knowledge, we have obtained the first mechanized liveness proof for both TLB Shootdown, and Stoppable Paxos.
Oded Padon, Jochen Hoenicke, Giuliano Losa, Andreas Podelski, Shmuel Sagiv, Sharon Shoham
Proc. ACM Program. Lang.4
2017 Thread modularity at many levels: a pearl in compositional verification
abstract
A thread-modular proof for the correctness of a concurrent program is based on an inductive and interference-free annotation of each thread. It is well-known that the corresponding proof system is not complete (unless one adds auxiliary variables). We describe a hierarchy of proof systems where each level k corresponds to a generalized notion of thread modularity (level 1 corresponds to the original notion). Each level is strictly more expressive than the previous. Further, each level precisely captures programs that can be proved using uniform Ashcroft invariants with k universal quantifiers. We demonstrate the usefulness of the hierarchy by giving a compositional proof of the Mach shootdown algorithm for TLB consistency. We show a proof at level 2 that shows the algorithm is correct for an arbitrary number of CPUs. However, there is no proof for the algorithm at level 1 which does not involve auxiliary state.
Jochen Hoenicke, Rupak Majumdar, Andreas Podelski
POPL3
2017 Loop Invariants from Counterexamples
Marius Greitschus, Daniel Dietsch, Andreas Podelski
SAS3
2017 Craig vs. Newton in software model checking
abstract
Ever since the seminal work on SLAM and BLAST, software model checking with counterexample-guided abstraction refinement (CEGAR) has been an active topic of research. The crucial procedure here is to analyze a sequence of program statements (the counterexample) to find building blocks for the overall proof of the program. We can distinguish two approaches (which we name Craig and Newton) to implement the procedure. The historically first approach, Newton (named after the tool from the SLAM toolkit), is based on symbolic execution. The second approach, Craig, is based on Craig interpolation. It was widely believed that Craig is substantially more effective than Newton. In fact, 12 out of the 15 CEGAR-based tools in SV-COMP are based on Craig. Advances in software model checkers based on Craig, however, can go only lockstep with advances in SMT solvers with Craig interpolation. It may be time to revisit Newton and ask whether Newton can be as effective as Craig. We have implemented a total of 11 variants of Craig and Newton in two different state-of-the-art software model checking tools and present the outcome of our experimental comparison.
Daniel Dietsch, Matthias Heizmann, Betim Musa, Alexander Nutz, Andreas Podelski
ESEC/SIGSOFT FSE5
2017 Ultimate Taipan: Trace Abstraction and Abstract Interpretation - (Competition Contribution)
Marius Greitschus, Daniel Dietsch, Matthias Heizmann, Alexander Nutz, Claus Schätzle, Christian Schilling 0001, Frank Schüssele, Andreas Podelski
TACAS (2)8
2017 Ultimate Automizer with an On-Demand Construction of Floyd-Hoare Automata - (Competition Contribution)
Matthias Heizmann, Daniel Dietsch, Marius Greitschus, Alexander Nutz, Betim Musa, Claus Schätzle, Christian Schilling 0001, Frank Schüssele, Andreas Podelski
TACAS (2)10
2016 Proving Liveness of Parameterized Programs
abstract
Correctness of multi-threaded programs typically requires that they satisfy liveness properties. For example, a program may require that no thread is starved of a shared resource, or that all threads eventually agree on a single value. This paper presents a method for proving that such liveness properties hold. Two particular challenges which are addressed in this work are that (1) the correctness argument may rely on global behaviour of the system (e.g., the correctness argument may require that all threads collectively progress towards "the good thing" rather than one thread progressing while the others do not interfere), and (2) such programs are often designed to be executed by any number of threads, and the desired liveness properties must hold no matter how many threads are active in the system.
Azadeh Farzan, Zachary Kincaid, Andreas Podelski
LICS3
2016 Requirements Defects over a Project Lifetime: An Empirical Analysis of Defect Data from a 5-Year Automotive Project at Bosch
Vincent Langenfeld, Amalinda Post, Andreas Podelski
REFSQ3
2016 Ultimate Automizer with Two-track Proofs - (Competition Contribution)
Matthias Heizmann, Daniel Dietsch, Marius Greitschus, Jan Leike, Betim Musa, Claus Schätzle, Andreas Podelski
TACAS7
2016 Ready for testing: ensuring conformance to industrial standards through formal verification
abstract
Abstract The design of distributed, safety-critical real-time systems is challenging due to their high complexity, the potentially large number of components, and complicated requirements and environment assumptions that stem from international standards. We present a case study that shows that despite those challenges, the automated formal verification of such systems is not only possible, but practicable even in the context of small to medium-sized enterprises. We considered a wireless fire alarm system, regulated by the EN 54 standard. We performed formal requirements engineering, modeling and verification and uncovered severe design flaws that would have prevented its certification. For an improved design, we provided dependable verification results which in particular ensure that certification tests for a relevant regulation standard will be passed. In general we observe that if system tests are specified by generalized test procedures, then verifying that a system will pass any test following those test procedures is a cost-efficient approach to improve the product quality based on formal methods. Based on our experience, we propose an approach useful to integrate the application of formal methods to product development in SME.
Sergio Feo-Arenis, Bernd Westphal, Daniel Dietsch, Marco Muñiz, Ahmad Siyar Andisha, Andreas Podelski
Formal Aspects Comput.6
2016 Guided search for hybrid systems based on coarse-grained space abstractions
abstract
Hybrid systems represent an important and powerful formalism for modeling real-world applications such as embedded systems. A verification tool like SpaceEx is based on the exploration of a symbolic search space (the region space ). As a verification tool, it is typically optimized towards proving the absence of errors. In some settings, e.g., when the verification tool is employed in a feedback-directed design cycle, one would like to have the option to call a version that is optimized towards finding an error trajectory in the region space. A recent approach in this direction is based on guided search . Guided search relies on a cost function that indicates which states are promising to be explored, and preferably explores more promising states first. In this paper, we propose an abstraction-based cost function based on coarse-grained space abstractions for guiding the reachability analysis. For this purpose, a suitable abstraction technique that exploits the flexible granularity of modern reachability analysis algorithms is introduced. The new cost function is an effective extension of pattern database approaches that have been successfully applied in other areas. The approach has been implemented in the SpaceEx model checker. The evaluation shows its practical potential.
Sergiy Bogomolov, Alexandre Donzé, Goran Frehse, Radu Grosu, Taylor T. Johnson, Hamed Ladan, Andreas Podelski, Martin Wehrle
Int. J. Softw. Tools Technol. Transf.7
2015 Fairness Modulo Theory: A New Approach to LTL Software Model Checking
Daniel Dietsch, Matthias Heizmann, Vincent Langenfeld, Andreas Podelski
CAV (1)4
2015 Eliminating spurious transitions in reachability with support functions
abstract
Computing an approximation of the reachable states of a hybrid system is a challenge, mainly because overapproximating the solutions of ODEs with a finite number of sets does not scale well. Using template polyhedra can greatly reduce the computational complexity, since it replaces complex operations on sets with a small number of optimization problems. However, the use of templates may make the over-approximation too conservative. Spurious transitions, which are falsely considered reachable, are particularly detrimental to performance and accuracy, and may exacerbate the state explosion problem. In this paper, we examine how spurious transitions can be avoided with minimal computational effort. To this end, detecting spurious transitions is reduced to the well-known problem of showing that two convex sets are disjoint by finding a hyperplane that separates them. We generalize this to flowpipes by considering hyperplanes that evolve with time in correspondence to the dynamics of the system. The approach is implemented in the model checker SpaceEx and demonstrated on examples.
Goran Frehse, Sergiy Bogomolov, Marius Greitschus, Thomas Strump, Andreas Podelski
HSCC5
2015 If A Fails, Can B Still Succeed? Inferring Dependencies between Test Results in Automotive System Testing
abstract
In this paper we propose an approach that, given a structured requirements specification, allows the automatic online detection of a redundant test case. This means that, at each time point during a testing phase, one automatically infers the failure of a test case from the current status of successful tests and failed tests. By a structured requirements specification we mean that one uses a hierarchical structure and types to document the (natural language) formulation of requirements. We have implemented the approach. The evaluation of our implementation in a case study in the context of the development process for Mercedes-Benz vehicles at Daimler AG indicates the practical potential of our approach.
Stephan Arlt, Tobias Morciniec, Andreas Podelski, Silke Wagner
ICST3
2015 Automated Program Verification
Azadeh Farzan, Matthias Heizmann, Jochen Hoenicke, Zachary Kincaid, Andreas Podelski
LATA5
2015 Proof Spaces for Unbounded Parallelism
abstract
In this paper, we present a new approach to automatically verify multi-threaded programs which are executed by an unbounded number of threads running in parallel.
Azadeh Farzan, Zachary Kincaid, Andreas Podelski
POPL3
2015 Using the requirements specification to infer the implicit test status of requirements
abstract
We investigate a method to infer the implicit test status of requirements and thus increase the number of requirements for which the test status is known. The general idea is to improve the data set for measuring the maturity of the system in the current release. The inference is based on the structuring mechanisms (hierarchy, types) which are typically used to document the (natural language) requirements specification. We present a case study in the context of the development process for Mercedes-Benz passenger cars at Daimler AG. The results of the case study indicate the usefulness of the structuring mechanisms in the requirements specification as the basis for the inference. In particular, the number of requirements for which the status is known could be increased by almost a third.
Tobias Morciniec, Andreas Podelski
RE2
2015 Ultimate Automizer with Array Interpolation - (Competition Contribution)
abstract
Ultimate Automizer is a software verification tool that is able to analyze reachability of an error label, memory safety, and termination of C programs. For all three tasks, our tool follows an automatabased approach where interpolation is used to compute proofs for traces. The interpolants are generated via a new scheme that requires only the post operator, unsatisfiable cores and live variable analysis. This new scheme enables our tool to use the SMT theory of arrays in combination with interpolation.
Matthias Heizmann, Daniel Dietsch, Jan Leike, Betim Musa, Andreas Podelski
TACAS5
2015 ULTIMATE KOJAK with Memory Safety Checks - (Competition Contribution)
Alexander Nutz, Daniel Dietsch, Mostafa Mahmoud Mohamed, Andreas Podelski
TACAS4
2014 Planning as Model Checking in Hybrid Domains
abstract
Planning in hybrid domains is an important and challenging task, and various planning algorithms have been proposed in the last years. From an abstract point of view, hybrid planning domains are based on hybrid automata, which have been studied intensively in the model checking community. In particular, powerful model checking algorithms and tools have emerged for this formalism. However, despite the quest for more scalable planning approaches, model checking algorithms have not been applied to planning in hybrid domains so far. In this paper, we make a first step in bridging the gap between these two worlds. We provide a formal translation scheme from PDDL+ to the standard formalism of hybrid automata, as a solid basis for using hybrid system model-checking tools for dealing with hybrid planning domains. As a case study, we use the SpaceEx model checker, showing how we can address PDDL+ domains that are out of the scope of state-of-the-art planners.
Sergiy Bogomolov, Daniele Magazzeni, Andreas Podelski, Martin Wehrle
AAAI3
2014 Termination Analysis by Learning Terminating Programs
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski
CAV3
2014 Quasi-dependent variables in hybrid automata
abstract
The concept of hybrid automata provides a powerful framework to model and analyze real-world systems. Due to the structural complexity of hybrid systems it is important to ensure the scalability of analysis algorithms. We approach this problem by providing an effective generalisation of the recently introduced notion of quasi-equal clocks to hybrid systems. For this purpose, we introduce the concept of quasi-dependent variables. Our contribution is two-fold: we demonstrate how such variables can be automatically detected, and we present a transformation leading to an abstraction with a smaller state space which, however, still retains the same properties as the original system. We demonstrate the practical applicability of our methods on a range of industrial benchmarks.
Sergiy Bogomolov, Christian Herrera, Marco Muñiz, Bernd Westphal, Andreas Podelski
HSCC5
2014 Verification of GUI Applications: A Black-Box Approach
Stephan Arlt, Evren Ermis, Sergio Feo-Arenis, Andreas Podelski
ISoLA (1)4
2014 Reducing GUI test suites via program slicing
abstract
A crucial problem in GUI testing is the identification of accurate event sequences that encode corresponding user interactions with the GUI. Ultimately, event sequences should be both feasible (i. e., executable on the GUI) and relevant (i.e., cover as much of the code as possible). So far, most work on GUI testing focused on approaches to generate feasible event sequences. In addition, based on event dependency analyses, a recently proposed static analysis approach systematically aims at selecting both relevant and feasible event sequences. However, statically analyzing event dependencies can cause the generation of a huge number of event sequences, leading to unmanageable GUI test suites that are not executable within reasonable time. In this paper we propose a refined static analysis approach based on program slicing. On the theoretical side, our approach identifies and eliminates redundant event sequences in GUI test suites. Redundant event sequences have the property that they are guaranteed to not affect the test effectiveness. On the practical side, we have implemented a slicing-based test suite reduction algorithm that approximatively identifies redundant event sequences. Our experiments on six open source GUI applications show that our reduction algorithm significantly reduces the size of GUI test suites. As a result, the overall execution time could significantly be reduced without losing test effectiveness.
Stephan Arlt, Andreas Podelski, Martin Wehrle
ISSTA2
2014 Proofs that count
abstract
Counting arguments are among the most basic proof methods in mathematics. Within the field of formal verification, they are useful for reasoning about programs with infinite control, such as programs with an unbounded number of threads, or (concurrent) programs with recursive procedures. While counting arguments are common in informal, hand-written proofs of such programs, there are no fully automated techniques to construct counting arguments. The key questions involved in automating counting arguments are: how to decide what should be counted?, and how to decide when a counting argument is valid? In this paper, we present a technique for automatically constructing and checking counting arguments, which includes novel solutions to these questions.
Azadeh Farzan, Zachary Kincaid, Andreas Podelski
POPL3
2014 Ultimate Kojak - (Competition Contribution)
Evren Ermis, Alexander Nutz, Daniel Dietsch, Jochen Hoenicke, Andreas Podelski
TACAS5
2014 Ultimate Automizer with Unsatisfiable Cores - (Competition Contribution)
Matthias Heizmann, Jürgen Christ, Daniel Dietsch, Jochen Hoenicke, Markus Lindenmann, Betim Musa, Christian Schilling 0001, Stefan Wissert, Andreas Podelski
TACAS9
2014 Quasi-Equal Clock Reduction: More Networks, More Queries
Christian Herrera, Bernd Westphal, Andreas Podelski
TACAS3
2013 Linear Ranking for Linear Lasso Programs
Matthias Heizmann, Jochen Hoenicke, Jan Leike, Andreas Podelski
ATVA4
2013 Software Model Checking for People Who Love Automata
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski
CAV3
2013 Inductive data flow graphs
abstract
The correctness of a sequential program can be shown by the annotation of its control flow graph with inductive assertions. We propose inductive data flow graphs, data flow graphs with incorporated inductive assertions, as the basis of an approach to verifying concurrent programs. An inductive data flow graph accounts for a set of dependencies between program actions in interleaved thread executions, and therefore stands as a representation for the set of concurrent program traces which give rise to these dependencies. The approach first constructs an inductive data flow graph and then checks whether all program traces are represented. The size of the inductive data flow graph is polynomial in the number of data dependencies (in a sense that can be made formal); it does not grow exponentially in the number of threads unless the data dependencies do. The approach shifts the burden of the exponential explosion towards the check whether all program traces are represented, i.e., to a combinatorial problem (over finite graphs).
Azadeh Farzan, Zachary Kincaid, Andreas Podelski
POPL3
2013 Abstraction-Based Guided Search for Hybrid Systems
Sergiy Bogomolov, Alexandre Donzé, Goran Frehse, Radu Grosu, Taylor T. Johnson, Hamed Ladan, Andreas Podelski, Martin Wehrle
SPIN7
2013 Ultimate Automizer with SMTInterpol - (Competition Contribution)
Matthias Heizmann, Jürgen Christ, Daniel Dietsch, Evren Ermis, Jochen Hoenicke, Markus Lindenmann, Alexander Nutz, Christian Schilling 0001, Andreas Podelski
TACAS9
2013 Automata as Proofs
Andreas Podelski
VMCAI1
2012 Interpolant Automata - (Invited Talk)
Andreas Podelski
ATVA1
2012 A Box-Based Distance between Regions for Guiding the Reachability Analysis of SpaceEx
Sergiy Bogomolov, Goran Frehse, Radu Grosu, Hamed Ladan, Andreas Podelski, Martin Wehrle
CAV5
2012 Lightweight Static Analysis for GUI Testing
abstract
GUI testing is an active research area. The open challenge is the judicious generation of event sequences (an event sequence encodes a user interaction). A major advance in this direction is the use of a black-box model to systematically generate event sequences that are executable on the GUI. The black-box model can be, e.g., an Event Flow Graph (EFG) or an Event Sequence Graph (ESG). In this paper we propose a new approach to select relevant event sequences among the event sequences generated by a black-box model. We express the relevance of an event sequence by a precisely defined dependency between a fixed number of events in the event sequence. Departing from a pure black-box approach we apply a static analysis to the byte code of the application. This allows us to infer a dependency graph, which we call Event Dependency Graph (EDG). We use the EDG together with a black-box model to construct a set of relevant event sequences among the executable ones. We have implemented our approach in a new tool. We evaluate the approach on four open source GUI applications. With the specific choice of a lightweight static analysis, the approach scales to large applications and, at the same time, leads to an informed selection of event sequences. Using our approach we are able to find previously undetected bugs.
Stephan Arlt, Andreas Podelski, Cristiano Bertolini, Martin Schäf, Ishan Banerjee, Atif M. Memon
ISSRE2
2012 Parameterized GUI Tests
Stephan Arlt, Pedro Borromeo, Martin Schäf, Andreas Podelski
ICTSS4
2012 Splitting via Interpolants
Evren Ermis, Jochen Hoenicke, Andreas Podelski
VMCAI3
2012 Automotive behavioral requirements expressed in a specification pattern system: a case study at BOSCH
Amalinda Post, Igor Menzel, Jochen Hoenicke, Andreas Podelski
Requir. Eng.4
2011 rt-Inconsistency: A New Property for Real-Time Requirements
Amalinda Post, Jochen Hoenicke, Andreas Podelski
FASE3
2011 System Verification through Program Verification
Daniel Dietsch, Bernd Westphal, Andreas Podelski
FM3
2011 Disambiguation of industrial standards through formalization and graphical languages
abstract
Natural language safety requirements in industrial standards pose risks for ambiguities which need to be resolved by the system manufacturer in concertation with the certificate authority. This is especially challenging for small and medium-sized enterprises (SME). In this paper we report on our experiences with applying traditional requirements engineering techniques, formal methods, and visual narratives in an exploratory case-study in an SME.
Daniel Dietsch, Sergio Feo-Arenis, Bernd Westphal, Andreas Podelski
RE4
2011 Vacuous real-time requirements
abstract
We introduce the property of vacuity for requirements. A requirement is vacuous in a set of requirements if it is equivalent to a simpler requirement in the context of the other requirements. For example, the requirement “if A then B” is vacuous together with the requirement “not A”. The existence of a vacuous requirement is likely to indicate an error. We give an algorithm that proves the absence of this kind of error for real-time requirements. A case study in an industrial context demonstrates the practical potential of the algorithm.
Amalinda Post, Jochen Hoenicke, Andreas Podelski
RE3
2011 Applying Restricted English Grammar on Automotive Requirements - Does it Work? A Case Study
Amalinda Post, Igor Menzel, Andreas Podelski
REFSQ3
2011 Transition Invariants and Transition Predicate Abstraction for Program Termination
Andreas Podelski, Andrey Rybalchenko
TACAS1
2010 Composing Reachability Analyses of Hybrid Systems for Safety and Stability
Sergiy Bogomolov, Corina Mitrohin, Andreas Podelski
ATVA3
2010 Nested interpolants
abstract
In this paper, we explore the potential of the theory of nested words for partial correctness proofs of recursive programs. Our conceptual contribution is a simple framework that allows us to shine a new light on classical concepts such as Floyd/Hoare proofs and predicate abstraction in the context of recursive programs. Our technical contribution is an interpolant-based software model checking method for recursive programs. The method avoids the costly construction of the abstract transformer by constructing a nested word automaton from an inductive sequence of `nested interpolants' (i.e., interpolants for a nested word which represents an infeasible error trace).
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski
POPL3
2010 Counterexample-guided focus
abstract
The automated inference of quantified invariants is considered one of the next challenges in software verification. The question of the right precision-efficiency tradeoff for the corresponding program analyses here boils down to the question of the right treatment of disjunction below and above the universal quantifier. In the closely related setting of shape analysis one uses the focus operator in order to adapt the treatment of disjunction (and thus the efficiency-precision tradeoff) to the individual program statement. One promising research direction is to design parameterized versions of the focus operator which allow the user to fine-tune the focus operator not only to the individual program statements but also to the specific verification task. We carry this research direction one step further. We fine-tune the focus operator to each individual step of the analysis (for a specific verification task). This fine-tuning must be done automatically. Our idea is to use counterexamples for this purpose. We realize this idea in a tool that automatically infers quantified invariants for the verification of a variety of heap-manipulating programs.
Andreas Podelski, Thomas Wies
POPL1
2010 Size-Change Termination and Transition Invariants
Matthias Heizmann, Neil D. Jones, Andreas Podelski
SAS3
2010 Thread-Modular Counterexample-Guided Abstraction Refinement
Alexander Malkis, Andreas Podelski, Andrey Rybalchenko
SAS2
2010 Fairness for Dynamic Control
Jochen Hoenicke, Ernst-Rüdiger Olderog, Andreas Podelski
TACAS3
2010 Doomed program points
Jochen Hoenicke, K. Rustan M. Leino, Andreas Podelski, Martin Schäf, Thomas Wies
Formal Methods Syst. Des.3
2009 It's Doomed; We Can Prove It
Jochen Hoenicke, K. Rustan M. Leino, Andreas Podelski, Martin Schäf, Thomas Wies
FM3
2009 Refinement of Trace Abstraction
Matthias Heizmann, Jochen Hoenicke, Andreas Podelski
SAS3
2009 Abstraction Refinement for Quantified Array Assertions
Mohamed Nassim Seghir, Andreas Podelski, Thomas Wies
SAS2
2009 Transition-Based Directed Model Checking
Martin Wehrle, Sebastian Kupferschmid, Andreas Podelski
TACAS3
2009 Summarization for termination: no return!
Byron Cook, Andreas Podelski, Andrey Rybalchenko
Formal Methods Syst. Des.2
2009 Directed model checking with distance-preserving abstractions
abstract
In directed model checking, the traversal of the state space is guided by an estimate of the distance from the current state to the nearest error state. This paper presents a distance-preserving abstraction for concurrent systems that allows one to compute an interesting estimate of the error distance without hitting the state explosion problem. Our experiments show a dramatic reduction both in the number of states explored by the model checker and in the total runtime.
Klaus Dräger, Bernd Finkbeiner, Andreas Podelski
Int. J. Softw. Tools Technol. Transf.3
2008 Faster Than Uppaal?
Sebastian Kupferschmid, Martin Wehrle, Bernhard Nebel, Andreas Podelski
CAV4
2008 Heap Assumptions on Demand
Andreas Podelski, Andrey Rybalchenko, Thomas Wies
CAV1
2008 Is Lazy Abstraction a Decision Procedure for Broadcast Protocols?
Rayna Dimitrova, Andreas Podelski
VMCAI2
2007 ARMC: The Logical Choice for Software Model Checking with Abstraction Refinement
Andreas Podelski, Andrey Rybalchenko
PADL1
2007 Proving thread termination
abstract
Concurrent programs are often designed such that certain functions executing within critical threads must terminate. Examples of such cases can be found in operating systems, web servers, e-mail clients, etc. Unfortunately, no known automatic program termination prover supports a practical method of proving the termination of threads. In this paper we describe such a procedure. The procedure's scalability is achieved through the use of environment models that abstract away the surrounding threads. The procedure's accuracy is due to a novel method of incrementally constructing environment abstractions. Our method finds the conditions that a thread requires of its environment in order to establish termination by looking at the conditions necessary to prove that certain paths through the thread represent well-founded relations if executed in isolation of the other threads. The paper gives a description of experimental results using an implementation of our procedureon Windows device drivers and adescription of a previously unknown bug found withthe tool.
Byron Cook, Andreas Podelski, Andrey Rybalchenko
PLDI2
2007 Proving that programs eventually do something good
abstract
In recent years we have seen great progress made in the area of automatic source-level static analysis tools. However, most of today's program verification tools are limited to properties that guarantee the absence of bad events (safety properties). Until now no formal software analysis tool has provided fully automatic support for proving properties that ensure that good events eventually happen (liveness properties). In this paper we present such a tool, which handles liveness properties of large systems written in C. Liveness properties are described in an extension of the specification language used in the SDV system. We have used the tool to automatically prove critical liveness properties of Windows device drivers and found several previously unknown liveness bugs.
Byron Cook, Alexey Gotsman, Andreas Podelski, Andrey Rybalchenko, Moshe Y. Vardi
POPL3
2007 Precise Thread-Modular Verification
Alexander Malkis, Andreas Podelski, Andrey Rybalchenko
SAS2
2007 Uppaal/DMC- Abstraction-Based Heuristics for Directed Model Checking
Sebastian Kupferschmid, Klaus Dräger, Jörg Hoffmann 0001, Bernd Finkbeiner, Henning Dierks, Andreas Podelski, Gerd Behrmann
TACAS6
2007 Transition predicate abstraction and fair termination
Andreas Podelski, Andrey Rybalchenko
ACM Trans. Program. Lang. Syst.1
2006 Terminator: Beyond Safety
Byron Cook, Andreas Podelski, Andrey Rybalchenko
CAV2
2006 Thread-Modular Verification Is Cartesian Abstract Interpretation
Alexander Malkis, Andreas Podelski, Andrey Rybalchenko
ICTAC2
2006 Termination proofs for systems code
abstract
Program termination is central to the process of ensuring that systems code can always react. We describe a new program termination prover that performs a path-sensitive and context-sensitive program analysis and provides capacity for large program fragments (i.e. more than 20,000 lines of code) together with support for programming language features such as arbitrarily nested loops, pointers, function-pointers, side-effects, etc.We also present experimental results on device driver dispatch routines from theWindows operating system. The most distinguishing aspect of our tool is how it shifts the balance between the two tasks of constructing and respectively checking the termination argument. Checking becomes the hard step. In this paper we show how we solve the corresponding challenge of checking with binary reachability analysis.
Byron Cook, Andreas Podelski, Andrey Rybalchenko
PLDI2
2006 Field Constraint Analysis
Thomas Wies, Viktor Kuncak, Patrick Lam 0001, Andreas Podelski, Martin C. Rinard
VMCAI4
2006 Tools and algorithms for the construction and analysis of systems
Kurt Jensen, Andreas Podelski
Int. J. Softw. Tools Technol. Transf.2
2005 Summaries for While Programs with Recursion
Andreas Podelski, Ina Schaefer, Silke Wagner
ESOP1
2005 Transition predicate abstraction and fair termination
abstract
Predicate abstraction is the basis of many program verification tools. Until now, the only known way to overcome the inherent limitation of predicate abstraction to safety properties was to manually annotate the finite-state abstraction of a program. We extend predicate abstraction to transition predicate abstraction. Transition predicate abstraction goes beyond the idea of finite abstract-state programs (and checking the absence of loops). Instead, our abstraction algorithm transforms a program into a finite abstract-transition program. Then, a second algorithm checks fair termination. The two algorithms together yield an automated method for the verification of liveness properties under full fairness assumptions (justice and compassion). In summary, we exhibit principles that extend the applicability of predicate abstraction-based program verification to the full set of temporal properties.
Andreas Podelski, Andrey Rybalchenko
POPL1
2005 Abstraction Refinement for Termination
Byron Cook, Andreas Podelski, Andrey Rybalchenko
SAS2
2005 Boolean Heaps
Andreas Podelski, Thomas Wies
SAS1
2005 Separating Fairness and Well-Foundedness for the Analysis of Fair Discrete Systems
Amir Pnueli, Andreas Podelski, Andrey Rybalchenko
TACAS2
2005 Verification of cryptographic protocols: tagging enforces termination
Bruno Blanchet, Andreas Podelski
Theor. Comput. Sci.2
2005 Special issue
Kurt Jensen, Andreas Podelski
Theor. Comput. Sci.2
2004 Constraints in Program Analysis and Verification
Andreas Podelski
CP1
2004 Transition Invariants
abstract
Proof rules for program verification rely on auxiliary assertions. We propose a (sound and relatively complete) proof rule whose auxiliary assertions are transition invariants. A transition invariant of a program is a binary relation over program states that contains the transitive closure of the transition relation of the program. A relation is disjunctively well-founded if it is a finite union of well-founded relations. We characterize the validity of termination or another liveness property by the existence of a disjunctively well-founded transition invariant. The main contribution of our proof rule lies in its potential for automation via abstract interpretation.
Andreas Podelski, Andrey Rybalchenko
LICS1
2004 A Complete Method for the Synthesis of Linear Ranking Functions
Andreas Podelski, Andrey Rybalchenko
VMCAI1
2004 Introduction to the Special Issue on Verification and Computational Logic
abstract
The past decade has seen dramatic growth in the application of model checking techniques to the validation and verification of correctness properties of hardware, and more recently software systems. Recently, there has been increasing interest in applying logic programming techniques to model checking in particular and verification in general. For example, table-based logic programming can be used as an efficient means of performing explicit model checking. Other research has successfully exploited set-based logic program analysis, constraint logic programming, and logic program transformation techniques to verify systems.
Michael Leuschel, Andreas Podelski, C. R. Ramakrishnan 0001, Ulrich Ultes-Nitsche
Theory Pract. Log. Program.2
2003 Verification of Cryptographic Protocols: Tagging Enforces Termination
Bruno Blanchet, Andreas Podelski
FoSSaCS2
2003 Software Model Checking with Abstraction Refinement
Andreas Podelski
VMCAI1
2003 Boolean and Cartesian abstraction for model checking C programs
Thomas Ball 0001, Andreas Podelski, Sriram K. Rajamani
Int. J. Softw. Tools Technol. Transf.2
2002 Constraint-Based Infinite Model Checking and Tabulation for Stratified CLP
Witold Charatonik, Supratik Mukhopadhyay, Andreas Podelski
ICLP3
2002 Relative Completeness of Abstraction Refinement for Software Model Checking
Thomas Ball 0001, Andreas Podelski, Sriram K. Rajamani
TACAS2
2002 Set Constraints with Intersection
Witold Charatonik, Andreas Podelski
Inf. Comput.2
2001 Constraint Database Models Characterizing Timed Bisimilarity
Supratik Mukhopadhyay, Andreas Podelski
PADL2
2001 Model Checking Communication Protocols
Pablo Argón, Giorgio Delzanno, Supratik Mukhopadhyay, Andreas Podelski
SOFSEM4
2001 Boolean and Cartesian Abstraction for Model Checking C Programs
Thomas Ball 0001, Andreas Podelski, Sriram K. Rajamani
TACAS2
2001 Constraint-based deductive model checking
Giorgio Delzanno, Andreas Podelski
Int. J. Softw. Tools Technol. Transf.2
2000 Paths vs. Trees in Set-Based Program Analysis
abstract
Set-based analysis of logic programs provides an accurate method for descriptive type-checking of logic programs. The key idea of this method is to upper approximate the least model of the program by a regular set of trees. In 1991, Frühwirth, Shapiro, Vardi and Yardeni raised the question whether it can be more efficient to use the domain of sets of paths instead, i.e., to approximate the least model by a regular set of words. We answer the question negatively by showing that type-checking for path-based analysis is as hard as the set-based one, that is DEXPTIME-complete. This result has consequences also in the areas of set constraints, automata theory and model checking.
Witold Charatonik, Andreas Podelski, Jean-Marc Talbot
POPL2
2000 Efficient Algorithms for pre* and post* on Interprocedural Parallel Flow Graphs
abstract
This paper is a contribution to the already existing series of work on the algorithmic principles of interprocedural analysis. We consider the generalization to the case of parallel programs. We give algorithms that compute the sets of backward resp. forward reachable configurations for parallel flow graph systems in linear time in the size of the graph viz. the program. These operations are important in dataflow analysis and in model checking. In our method, we first model configurations as terms (viz. trees) in the process algebra PA that can express call stack operations and parallelism. We then give a 'declarative' Horn-clause specification of the sets of predecessors resp. successors. The 'operational' computation of these sets is carried out using the Dowling-Gallier procedure for HornSat.
Javier Esparza, Andreas Podelski
POPL2
2000 Model Checking as Constraint Solving
Andreas Podelski
SAS1
1999 Set-Based Failure Analysis for Logic Programs and Concurrent Constraint Programs
Andreas Podelski, Witold Charatonik, Martin Müller 0001
ESOP1
1999 Beyond Region Graphs: Symbolic Forward Analysis of Timed Automata
Supratik Mukhopadhyay, Andreas Podelski
FSTTCS2
1999 Model Checking in CLP
Giorgio Delzanno, Andreas Podelski
TACAS2
1998 The Horn Mu-calculus
abstract
The Horn /spl mu/-calculus is a logic programming language allowing arbitrary nesting of least and greatest fixed points. The Horn /spl mu/-programs can naturally express safety and liveness properties for reactive systems. We extend the set-based analysis of classical logic programs by mapping arbitrary /spl mu/-programs into "uniform" /spl mu/-programs. Our two main results are that uniform /spl mu/-programs express regular sets of trees and that emptiness for uniform /spl mu/-programs is EXPTIME-complete. Hence we have a nontrivial decidable relaxation for the Horn /spl mu/-calculus. In a different reading, the results express a kind of robustness of the notion of regularity: alternating Rabin tree automata preserve the same expressiveness and algorithmic complexity if we extend them with pushdown transition rules (in the same way Buchi extended word automata to canonical systems).
Witold Charatonik, David A. McAllester, Damian Niwinski, Andreas Podelski, Igor Walukiewicz
LICS4
1998 Co-definite Set Constraints
Witold Charatonik, Andreas Podelski
RTA2
1998 Directional Type Inference for Logic Programs
Witold Charatonik, Andreas Podelski
SAS2
1998 Set-Based Analysis of Reactive Infinite-State Systems
Witold Charatonik, Andreas Podelski
TACAS2
1997 Ordering Constraints over Feature Trees
Martin Müller 0001, Joachim Niehren, Andreas Podelski
CP3
1997 Set Constraints: A Pearl in Research on Constraints
Leszek Pacholski, Andreas Podelski
CP2
1997 Set Constraints with Intersection
abstract
Set constraints are inclusions between expressions denoting sets of trees. The efficiency of their satisfiability test is a central issue in set-based program analysis, their main application domain. We introduce the class of set constraints with intersection (the only operators forming the expressions are constructors and intersection) and show that its satisfiability problem is DEXPTIME-complete. The complexity characterization continues to hold for negative set constraints with intersection (which have positive and negated inclusions). We reduce the satisfiability problem for these constraints to one over the interpretation domain of nonempty sets of trees. Set constraints with intersection over the domain of nonempty sets of trees enjoy the fundamental property of independence of negated conjuncts. This allows us to handle each negated inclusion separately by the entailment algorithm that we devise. We furthermore prove that set constraints with intersection are equivalent to the class of definite set constraints and thereby settle the complexity question of the historically first class for which the decidability question was solved.
Witold Charatonik, Andreas Podelski
LICS2
1997 Minimal Ascending and Descending Tree Automata
abstract
We propose a generalization of the notion "deterministic" to "l-r-deterministic" for descending tree automata (also called root-to-frontier). The corresponding subclass of recognizable tree languages is characterized by a structural property that we name "homogeneous." Given a descending tree automaton recognizing a homogeneous tree language, it can be left-to-right (l-r) determinized and then minimized. The obtained minimal l-r-deterministic tree automaton is characterized algebraically. We exhibit a formal correspondence between the two evaluation modes on trees (ascending and descending) and the two on words (right-to-left and left-to-right). This is possible by embedding trees into the free monoid of pointed trees. We obtain a unified view of the theories of minimization of deterministic ascending and l-r-deterministic descending tree automata.
Maurice Nivat, Andreas Podelski
SIAM J. Comput.2
1997 Situated Simplification
Andreas Podelski, Gert Smolka
Theor. Comput. Sci.1
1996 The Independence Property of a Class of Set Constraints
Witold Charatonik, Andreas Podelski
CP2
1995 Situated Simplification
Andreas Podelski, Gert Smolka
CP1
1995 Operational Semantics of Constraint Logic Programs with Coroutining
Andreas Podelski, Gert Smolka
ICLP1
1995 Situated Simplification
Andreas Podelski, Gert Smolka
ICLP1
1994 A Feature Constraint System for Logic Programming with Entailment
Hassan Aït-Kaci, Andreas Podelski, Gert Smolka
Theor. Comput. Sci.2
1994 Rabin Tree Automata and Finite Monoids
Danièle Beauquier, Andreas Podelski
Theor. Comput. Sci.2
1994 Functions as Passive Constraints in LIFE
abstract
LIFE is a programming language proposing to integrate logic programming, functional programming, and object-oriented programming. It replaces first-order terms with ψ-terms, data structures that allow computing with partial information. These are approximation structures denoting sets of values. LIFE further enriches the expressiveness of ψ-terms with functional dependency constraints. We must explain the meaning and use of functions in LIFE declaratively, as solving partial information constraints. These constraints do not attempt to generate their solutions but behave as demons filtering out anything else. In this manner, LIFE functions act as declarative coroutines. We need to show that the ψ-term's approximation semantics is congruent with an operational semantics viewing functional reduction as an effective enforcing of passive constraints. In this article, we develop a general formal framework for entailment and disentailment of constraints based on a technique called relative simplification. We study its operational and semantical properties, and we use it to account for functional application over ψ-terms in LIFE.
Hassan Aït-Kaci, Andreas Podelski
ACM Trans. Program. Lang. Syst.2
1993 Entailment and Disentailment of Order-Sorted Feature Constraints
Hassan Aït-Kaci, Andreas Podelski
LPAR2
1993 Rabin Tree Automata and Finite Monoids
Danièle Beauquier, Andreas Podelski
MFCS2
1993 Ultimately Periodic Words of Rational w-Languages
Hugues Calbrix, Maurice Nivat, Andreas Podelski
MFPS3
1993 Equational and Membership Constraints for Finite Trees
Joachim Niehren, Andreas Podelski, Ralf Treinen
RTA2
1992 On Reverse and General Definite Tree Languages (Extended Abstract)
Pierre Péladeau, Andreas Podelski
ICALP2
1991 A Geometrical View of the Determinization and Minimization of Finite-State Automata
Bruno Courcelle, Damian Niwinski, Andreas Podelski
Math. Syst. Theory3