VLDB 2026 Research / reviewers in the wild / expert
Philipp Rümmer
dblp:79/5611
· DBLP profile ↗
86ranked-venue papers
8as first author
30since 2021 · last 2026
0000-0002-2733-7098ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 53 · 4 first-author · 18 since 2021Theory of computation · 44 · 6 first-author · 13 since 2021Artificial intelligence and machine learning · 12 · 3 first-author · 2 since 2021Systems, architecture and hardware · 3 · 1 since 2021Security and privacy · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A program instrumentation framework for automatic verificationabstractAbstract In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this is to transform, for verification purposes, the program to an equivalent one not using the problematic constructs, and to reason about this equivalent program instead. In this article, we propose program instrumentation as a unifying verification paradigm that subsumes various existing ad-hoc approaches, has a clear formal correctness criterion, can be applied automatically, and can transfer back witnesses and counterexamples. We illustrate our approach on the automated verification of programs that involve quantification and aggregation operations over arrays, such as the maximum value or sum of the elements in a given segment of the array, which are known to be difficult to reason about automatically. We implement our approach in the MonoCera tool, which is tailored to the verification of programs with aggregation, and evaluate it on example programs, including SV-COMP programs. Jesper Amilon, Zafer Esen, Dilian Gurov, Christian Lidström, Philipp Rümmer, Marten Voorberg |
Formal Methods Syst. Des. | 5 |
| 2026 | Sound and Complete Invariant-Based Heap EncodingsabstractVerification of programs operating on heap-allocated data structures, for instance lists or trees, poses significant challenges due to the potentially unbounded size of such data structures. We present time-indexed heap invariants , a novel invariant-based heap encoding leveraging uninterpreted predicates and prophecy variables to reduce verification of heap-manipulating programs to verification of programs over integers only. Our encoding of heap is general and agnostic to specific data structures. To the best of our knowledge, our approach is the first heap invariant-based method that achieves both soundness and completeness. We provide formal proofs establishing the correctness of our encodings. Through an experimental evaluation, we demonstrate that time-indexed heap invariants significantly extend the capability of existing verification tools, allowing automatic verification of programs with heap that were previously out of reach for state-of-the-art tools. Zafer Esen, Philipp Rümmer, Tjark Weber |
Proc. ACM Program. Lang. | 2 |
| 2025 | Decision Procedure for a Theory of String Sequences
Denghang Hu, Taolue Chen 0001, Philipp Rümmer, Fu Song, Zhilin Wu |
APLAS | 3 |
| 2025 | What's Decidable About Arrays With Sums?abstractAbstract The theory of arrays, supported by virtually all SMT solvers, is one of the most important theories in program verification. The standard theory of arrays, which provides read and write operations, has been extended in various different ways in past research, among others, by adding extensionality, constant arrays, function mapping (resulting in combinatorial array logic), counting, and projections. This paper studies array theories extended with sum constraints, which capture properties of the sum of all elements of an integer array. The paper shows that the theory of extensional arrays extended with constant arrays and sum constraints can be decided in non-deterministic polynomial time. The decision procedure works both for finite and infinite index sorts, as long as the cardinality is fixed a priori. In contrast, adding sum constraints to combinatorial array logic gives rise to an undecidable theory. The paper concludes by studying several fragments in between standard arrays with sums and combinatorial arrays with sums, aiming at providing a complete characterization of decidable and undecidable fragments. Roland Herrmann, Philipp Rümmer |
CADE | 2 |
| 2025 | sfHornStr: Invariant Synthesis for Regular Model Checking as Constrained Horn ClausesabstractAbstract We present $$\textsf{HornStr}$$ HornStr , the first solver for invariant synthesis for Regular Model Checking (RMC) with the specification provided in the SMT-LIB 2.6 theory of strings. It is well-known that invariant synthesis for RMC subsumes various important verification problems, including safety verification for parameterized systems. To achieve a simple and standardized file format, we treat the invariant synthesis problem as a problem of solving Constrained Horn Clauses (CHCs) over strings. Two strategies for synthesizing invariants in terms of regular constraints are supported: (1) L* automata learning, and (2) SAT-based automata learning. $$\textsf{HornStr}$$ HornStr implements these strategies with the help of existing SMT solvers for strings, which are interfaced through SMT-LIB. $$\textsf{HornStr}$$ HornStr provides an easy-to-use interface for string solver developers to apply their techniques to verification. At the same time, it allows verification researchers to painlessly tap into the wealth of modern string solving techniques. To assess the effectiveness of $$\textsf{HornStr}$$ HornStr , we conducted a comprehensive evaluation using benchmarks derived from applications including parameterized verification and string rewriting tasks. Our experiments highlight $$\textsf{HornStr}$$ HornStr ’s capacity to effectively handle these benchmarks, e.g., as the first solver to verify the challenging MU puzzle automatically. Finally, $$\textsf{HornStr}$$ HornStr can be used to automatically generate a new class of interesting SMT-LIB 2.6 string constraint benchmarks, which might in the future be used in the SMT-COMP strings track. In particular, our experiments on the above invariant synthesis benchmarks produce more than 30000 new constraints. We also detail the performance of various integrated string solvers, providing insights into their effectiveness on our new benchmarks. Hongjian Jiang, Anthony Widjaja Lin, Oliver Markgraf, Philipp Rümmer, Daniel Stan |
CAV (1) | 4 |
| 2025 | Arithmetizing Shape AnalysisabstractAbstract Memory safety is a fundamental correctness property of software. For programs that manipulate linked, heap-allocated data structures, ensuring memory safety requires analyzing their possible shapes. Despite significant advances in shape analysis, existing techniques rely on hand-crafted domains tailored to specific data structures, making them difficult to generalize and extend. This paper presents a novel approach that reduces memory-safety proofs to the verification of heap-less imperative programs, enabling the use of off-the-shelf software verification tools. We achieve this reduction through two complementary program instrumentation techniques: space invariants, which enable symbolic reasoning about unbounded heaps, and flow abstraction, which encodes global heap properties as local flow equations. The approach effectively verifies memory safety across a broad range of programs, including concurrent lists and trees that lie beyond the reach of existing shape analysis tools. Sebastian Wolff 0001, Ekanshdeep Gupta, Zafer Esen, Hossein Hojjat, Philipp Rümmer, Thomas Wies |
CAV (1) | 5 |
| 2025 | Mimosa: A Language for Asynchronous Implementation of Embedded Systems Software
Nikolaus Huber, Susanne Graf, Philipp Rümmer, Wang Yi 0001 |
COORDINATION | 3 |
| 2025 | Fault Tolerance in Space with Heterogeneous Hardware: Experiences from a 68-day CubeSat Deployment in LEO
Ahmed El Yaacoub, Thiemo Voigt, Philipp Rümmer, Luca Mottola |
EWSN | 3 |
| 2025 | OSTRICH2: Solver for Complex String Constraints
Matthew Hague, Denghang Hu, Artur Jez, Anthony Widjaja Lin, Oliver Markgraf, Philipp Rümmer, Zhilin Wu |
FMCAD | 6 |
| 2025 | Complementable Normal Form of Parametrized Automata
Franziska Alber, Philipp Rümmer |
CIAA | 2 |
| 2025 | A New Approach for Showing Termination of Parameterized Transition Systems
Roland Herrmann, Philipp Rümmer |
CIAA | 2 |
| 2025 | The Power of Regular Constraint PropagationabstractThe past decade has witnessed substantial developments in string solving. Motivated by the complexity of string solving strategies adopted in existing string solvers, we investigate a simple and generic method for solving string constraints: regular constraint propagation. The method repeatedly computes pre- or postimages of regular languages under the string functions present in a string formula, inferring more and more knowledge about the possible values of string variables, until either a conflict is found or satisfiability of the string formula can be concluded. Such a propagation strategy is applicable to string constraints with multiple operations like concatenation, replace, and almost all flavors of string transductions. We demonstrate the generality and effectiveness of this method theoretically and experimentally. On the theoretical side, we show that RCP is sound and complete for a large fragment of string constraints, subsuming both straight-line and chain-free constraints, two of the most expressive decidable fragments for which some modern string solvers provide formal completeness guarantees. On the practical side, we implement regular constraint propagation within the open-source string solver OSTRICH. Our experimental evaluation shows that this addition significantly improves OSTRICH’s performance and makes it competitive with existing solvers. In fact, it substantially outperforms other solvers on random PCP and bioinformatics benchmarks. The results also suggest that incorporating regular constraint propagation alongside other techniques could lead to substantial performance gains for existing solvers. Matthew Hague, Artur Jez, Anthony Widjaja Lin, Oliver Markgraf, Philipp Rümmer |
Proc. ACM Program. Lang. | 5 |
| 2025 | Probabilistic Bisimulation for Parameterized Anonymity and Uniformity VerificationabstractBisimulation is crucial for verifying process equivalence in probabilistic systems. This paper presents a novel logical framework for analyzing bisimulation in probabilistic parameterized systems, namely, infinite families of finite-state probabilistic systems. Our framework is built upon the first-order theory of regular structures, which provides a decidable logic for reasoning about these systems. We show that essential properties like anonymity and uniformity can be encoded and verified within this framework in a manner aligning with the principles of deductive software verification, where systems, properties, and proofs are expressed in a unified decidable logic. By integrating language inference techniques, we achieve full automation in synthesizing candidate bisimulation proofs for anonymity and uniformity. We demonstrate the efficacy of our approach by addressing several challenging examples, including cryptographic protocols and randomized algorithms that were previously beyond the reach of fully automated methods. Chih-Duo Hong, Anthony Widjaja Lin, Philipp Rümmer, Rupak Majumdar |
IEEE Trans. Software Eng. | 3 |
| 2024 | Guiding Word Equation Solving Using Graph Neural Networks
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Julie Cailler, Chencheng Liang, Philipp Rümmer |
ATVA | 5 |
| 2024 | Boosting Constrained Horn Solving by Unsat Core Learning
Parosh Aziz Abdulla, Chencheng Liang, Philipp Rümmer |
VMCAI (1) | 3 |
| 2024 | A Constraint Solving Approach to Parikh Images of Regular LanguagesabstractA common problem in string constraint solvers is computing the Parikh image, a linear arithmetic formula that describes all possible combinations of character counts in strings of a given language. Automata-based string solvers frequently need to compute the Parikh image of products (or intersections) of finite-state automata, in particular when solving string constraints that also include the integer data-type due to operations like string length and indexing. In this context, the computation of Parikh images often turns out to be both prohibitively slow and memory-intensive. This paper contributes a new understanding of how the reasoning about Parikh images can be cast as a constraint solving problem, and questions about Parikh images be answered without explicitly computing the product automaton or the exact Parikh image. The paper shows how this formulation can be efficiently implemented as a calculus, PC*, embedded in an automated theorem prover supporting Presburger logic. The resulting standalone tool Catra is evaluate on constraints produced by the Ostrich+ string solver when solving standard string constraint benchmarks involving integer operations. The experiments show that PC* strictly outperforms the standard approach by Verma et al. to extract Parikh images from finite-state automata, as well as the over-approximating method recently described by Janků and Turoňová by a wide margin, and for realistic timeouts (under 60 s) also the nuXmv model checker. When added as the Parikh image backend of Ostrich+ to the Ostrich string constraint solver’s portfolio, it boosts its results on the quantifier-free strings with linear integer algebra track of SMT-COMP 2023 (QF_SLIA) enough to solve the most Unsat instances in that track of all competitors. Amanda Stjerna, Philipp Rümmer |
Proc. ACM Program. Lang. | 2 |
| 2023 | A Theory of Cartesian Arrays (with Applications in Quantum Circuit Verification)abstractAbstract We present a theory of Cartesian arrays, which are multi-dimensional arrays with support for the projection of arrays to sub-arrays, as well as for updating sub-arrays. The resulting logic is an extension of Combinatorial Array Logic (CAL) and is motivated by the analysis of quantum circuits: using projection, we can succinctly encode the semantics of quantum gates as quantifier-free formulas and verify the end-to-end correctness of quantum circuits. Since the logic is expressive enough to represent quantum circuits succinctly, it necessarily has a high complexity; as we show, it suffices to encode thek-color problem of a graph under a succinct circuit representation, an NEXPTIME-complete problem. We present an NEXPTIME decision procedure for the logic and report on preliminary experiments with the analysis of quantum circuits using this decision procedure. Yu-Fang Chen 0001, Philipp Rümmer, Wei-Lun Tsai |
CADE | 2 |
| 2023 | Automatic Program Instrumentation for Automatic VerificationabstractAbstract In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this is to transform, for verification purposes, the program to an equivalent one not using the problematic constructs, and to reason about its correctness instead. In this paper, we propose instrumentation as a unifying verification paradigm that subsumes various existing ad-hoc approaches, has a clear formal correctness criterion, can be applied automatically, and can transfer back witnesses and counterexamples. We illustrate our approach on the automated verification of programs that involve quantification and aggregation operations over arrays, such as the maximum value or sum of the elements in a given segment of the array, which are known to be difficult to reason about automatically. We implement our approach in the MonoCera tool, which is tailored to the verification of programs with aggregation, and evaluate it on example programs, including SV-COMP programs. Jesper Amilon, Zafer Esen, Dilian Gurov, Christian Lidström, Philipp Rümmer |
CAV (3) | 5 |
| 2023 | Decision Procedures for Sequence TheoriesabstractAbstract Sequence theories are an extension of theories of strings with an infinite alphabet of letters, together with a corresponding alphabet theory (e.g. linear integer arithmetic). Sequences are natural abstractions of extendable arrays, which permit a wealth of operations including append, map, split, and concatenation. In spite of the growing amount of tool support for theories of sequences by leading SMT-solvers, little is known about the decidability of sequence theories, which is in stark contrast to the state of the theories of strings. We show that the decidable theory of strings with concatenation and regular constraints can be extended to the world of sequences over an alphabet theory that forms a Boolean algebra, while preserving decidability. In particular, decidability holds when regular constraints are interpreted as parametric automata (which extend both symbolic automata and variable automata), but fails when interpreted as register automata (even over the alphabet theory of equality). When length constraints are added, the problem is Turing-equivalent to word equations with length (and regular) constraints. Similar investigations are conducted in the presence of symbolic transducers, which naturally model sequence functions like map, split, filter, etc. We have developed a new sequence solver, SeCo, based on parametric automata, and show its efficacy on two classes of benchmarks: (i) invariant checking on array-manipulating programs and parameterized systems, and (ii) benchmarks on symbolic register automata. Artur Jez, Anthony Widjaja Lin, Oliver Markgraf, Philipp Rümmer |
CAV (2) | 4 |
| 2023 | Black Ostrich: Web Application Scanning with String SolversabstractSecuring web applications remains a pressing challenge. Unfortunately, the state of the art in web crawling and security scanning still falls short of deep crawling. A major roadblock is the crawlers' limited ability to pass input validation checks when web applications require data of a certain format, such as email, phone number, or zip code. This paper develops Black Ostrich, a principled approach to deep web crawling and scanning. The key idea is to equip web crawling with string constraint solving capabilities to dynamically infer suitable inputs from regular expression patterns in web applications and thereby pass input validation checks. To enable this use of constraint solvers, we develop new automata-based techniques to process JavaScript regular expressions. We implement our approach extending and combining the Ostrich constraint solver with the Black Widow web crawler. We evaluate Black Ostrich on a set of 8,820 unique validation patterns gathered from over 21,667,978 forms from a combination of the July 2021 Common~Crawl and Tranco top 100K. For these forms and reconstructions of input elements corresponding to the patterns, we demonstrate that Black Ostrich achieves a 99% coverage of the form validations compared to an average of 36% for the state-of-the-art scanners. Moreover, out of the 66,377 domains using these patterns, we solve all patterns on 66,309 (99%) while the combined efforts of the other scanners cover 52,632 (79%). We further show that our approach can boost coverage by evaluating it on three open-source applications. Our empirical studies include a study of email validation patterns, where we find that 213 (26%) out of the 825 found email validation patterns liberally admit XSS injection payloads. Benjamin Eriksson, Amanda Stjerna, Riccardo De Masellis, Philipp Rümmer, Andrei Sabelfeld |
CCS | 4 |
| 2023 | Timing Analysis of Embedded Software UpdatesabstractWe present ReTA (Relative Timing Analysis), a differential timing analysis technique to verify the impact of an update on the execution time of embedded software. Timing analysis is computationally expensive and labor intensive. Software updates render repeating the analysis from scratch a waste of resources and time, because their impact is inherently confined. To determine this boundary, in ReTA we apply a slicing procedure that identifies all relevant code segments and a statement categorization that determines how to analyze each such line of code. We adapt a subset of ReTA for integration into aiT, an industrial timing analysis tool, and also develop a complete implementation in a tool called Delta. Based on staple benchmarks and realistic code updates from official repositories, we test the accuracy by analyzing the worst-case execution time (WCET) before and after an update, comparing the measures with the use of the unmodified aiT as well as real executions on embedded hardware. Delta returns WCET information that ranges from exactly the WCET of real hardware to 148% of the new version's measured WCET. With the same benchmarks, the unmodified aiT estimates are 112% and 149% of the actual executions; therefore, even when Delta is pessimistic, an industry-strength tool such as aiT cannot do better. Crucially, we also show that ReTA decreases aiT's analysis time by 45% and its memory consumption by 8.9%, whereas removing ReTA from Delta, effectively rendering it a regular timing analysis tool, increases its analysis time by 27%. Ahmed El Yaacoub, Luca Mottola, Thiemo Voigt, Philipp Rümmer |
RTCSA | 4 |
| 2023 | An Active Learning Approach to Synthesizing Program Contracts
Sandip Ghosal, Bengt Jonsson 0001, Philipp Rümmer |
SEFM | 3 |
| 2023 | Scheduling Dynamic Software Updates in Mobile RobotsabstractWe present NeRTA ( Ne xt R elease T ime A nalysis), a technique to enable dynamic software updates for low-level control software of mobile robots. Dynamic software updates enable software correction and evolution during system operation. In mobile robotics, they are crucial to resolve software defects without interrupting system operation or to enable on-the-fly extensions. Low-level control software for mobile robots, however, is time sensitive and runs on resource-constrained hardware with no operating system support. To minimize the impact of the update process, NeRTA safely schedules updates during times when the computing unit would otherwise be idle. It does so by utilizing information from the existing scheduling algorithm without impacting its operation. As such, NeRTA works orthogonal to the existing scheduler, retaining the existing platform-specific optimizations and fine-tuning, and may simply operate as a plug-in component. To enable larger dynamic updates, we further conceive an additional mechanism called bounded reactive control and apply mixed-criticality concepts. The former cautiously reduces the overall control frequency, whereas the latter excludes less critical tasks from NeRTA processing. Their use increases the available idle times. We combine real-world experiments on embedded hardware with simulations to evaluate NeRTA. Our experimental evaluation shows that the difference between NeRTA’s estimated idle times and the measured idle times is less than 15% in more than three-quarters of the samples. The combined effect of bounded reactive control and mixed-criticality concepts results in a 150+% increase in available idle times. We also show that the processing overhead of NeRTA and of the additional mechanisms is essentially negligible. Ahmed El Yaacoub, Luca Mottola, Thiemo Voigt, Philipp Rümmer |
ACM Trans. Embed. Comput. Syst. | 4 |
| 2022 | CertiStr: a certified string solverabstractTheories over strings are among the most heavily researched logical theories in the SMT community in the past decade, owing to the error-prone nature of string manipulations, which often leads to security vulnerabilities (e.g. cross-site scripting and code injection). The majority of the existing decision procedures and solvers for these theories are themselves intricate; they are complicated algorithmically, and also have to deal with a very rich vocabulary of operations. This has led to a plethora of bugs in implementation, which have for instance been discovered through fuzzing. Shuanglong Kan, Anthony Widjaja Lin, Philipp Rümmer, Micha Schrader |
CPP | 3 |
| 2022 | NeRTA: Enabling Dynamic Software Updates in Mobile Robotics
Ahmed El Yaacoub, Luca Mottola, Thiemo Voigt, Philipp Rümmer |
EWSN | 4 |
| 2022 | Tricera: Verifying C Programs Using the Theory of Heaps
Zafer Esen, Philipp Rümmer |
FMCAD | 2 |
| 2022 | TriCo - Triple Co-piloting of Implementation, Specification and Tests
Wolfgang Ahrendt, Dilian Gurov, Moa Johansson 0001, Philipp Rümmer |
ISoLA (1) | 4 |
| 2022 | Solving string constraints with Regex-dependent functions through transducers with priorities and variablesabstractRegular expressions are a classical concept in formal language theory. Regular expressions in programming languages (RegEx) such as JavaScript, feature non-standard semantics of operators (e.g. greedy/lazy Kleene star), as well as additional features such as capturing groups and references. While symbolic execution of programs containing RegExes appeals to string solvers natively supporting important features of RegEx, such a string solver is hitherto missing. In this paper, we propose the first string theory and string solver that natively provides such support. The key idea of our string solver is to introduce a new automata model, called prioritized streaming string transducers (PSST), to formalize the semantics of RegEx-dependent string functions. PSSTs combine priorities, which have previously been introduced in prioritized finite-state automata to capture greedy/lazy semantics, with string variables as in streaming string transducers to model capturing groups. We validate the consistency of the formal semantics with the actual JavaScript semantics by extensive experiments. Furthermore, to solve the string constraints, we show that PSSTs enjoy nice closure and algorithmic properties, in particular, the regularity-preserving property (i.e., pre-images of regular constraints under PSSTs are regular), and introduce a sound sequent calculus that exploits these properties and performs propagation of regular constraints by means of taking post-images or pre-images. Although the satisfiability of the string constraint language is generally undecidable, we show that our approach is complete for the so-called straight-line fragment. We evaluate the performance of our string solver on over 195000 string constraints generated from an open-source RegEx library. The experimental results show the efficacy of our approach, drastically improving the existing methods (via symbolic execution) in both precision and efficiency. Taolue Chen 0001, Alejandro Flores-Lamas, Matthew Hague, Zhilei Han, Denghang Hu, Shuanglong Kan, Anthony Widjaja Lin, Philipp Rümmer, Zhilin Wu |
Proc. ACM Program. Lang. | 8 |
| 2021 | Towards String Support in JayHorn (Competition Contribution)abstractAbstract is a Horn clause-based model checker for Java programs that has been competing at SV-COMP since 2019. An ongoing research and implementation effort is to add support for data-type to . Since current Horn solvers do not support strings natively, we consider a representation of (unbounded) strings using algebraic data-types, more precisely as lists. This paper discusses Horn clause encodings of different string operations, and presents preliminary results. Ali Shamakhi, Hossein Hojjat, Philipp Rümmer |
TACAS (2) | 3 |
| 2021 | Interpolating bit-vector formulas using uninterpreted predicates and Presburger arithmeticabstractAbstract The inference of program invariants over machine arithmetic, commonly called bit-vector arithmetic, is an important problem in verification. Techniques that have been successful for unbounded arithmetic, in particular Craig interpolation, have turned out to be difficult to generalise to machine arithmetic: existing bit-vector interpolation approaches are based either on eager translation from bit-vectors to unbounded arithmetic, resulting in complicated constraints that are hard to solve and interpolate, or on bit-blasting to propositional logic, in the process losing all arithmetic structure. We present a new approach to bit-vector interpolation, as well as bit-vector quantifier elimination (QE), that works by lazy translation of bit-vector constraints to unbounded arithmetic. Laziness enables us to fully utilise the information available during proof search (implied by decisions and propagation) in the encoding, and this way produce constraints that can be handled relatively easily by existing interpolation and QE procedures for Presburger arithmetic. The lazy encoding is complemented with a set of native proof rules for bit-vector equations and non-linear (polynomial) constraints, this way minimising the number of cases a solver has to consider. We also incorporate a method for handling concatenations and extractions of bit-vector efficiently. Peter Backeman, Philipp Rümmer, Aleksandar Zeljic |
Formal Methods Syst. Des. | 2 |
| 2020 | A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type
Taolue Chen 0001, Matthew Hague, Denghang Hu, Anthony Widjaja Lin, Philipp Rümmer, Zhilin Wu |
ATVA | 6 |
| 2020 | Reasoning in the Theory of Heap: Satisfiability and Interpolation
Zafer Esen, Philipp Rümmer |
LOPSTR | 2 |
| 2019 | On Strings in Software Model Checking
Hossein Hojjat, Philipp Rümmer, Ali Shamakhi |
APLAS | 2 |
| 2019 | Probabilistic Bisimulation for Parameterized Systems - (with Applications to Verifying Anonymous Protocols)abstractProbabilistic bisimulation is a fundamental notion of process equivalence for probabilistic systems. It has important applications, including the formalisation of the anonymity property of several communication protocols. While there is a large body of work on verifying probabilistic bisimulation for finite systems, the problem is in general undecidable for parameterized systems, i.e., for infinite families of finite systems with an arbitrary number n of processes. In this paper we provide a general framework for reasoning about probabilistic bisimulation for parameterized systems. Our approach is in the spirit of software verification, wherein we encode proof rules for probabilistic bisimulation and use a decidable first-order theory to specify systems and candidate bisimulation relations, which can then be checked automatically against the proof rules. We work in the framework of regular model checking, and specify an infinite-state system as a regular relation described by a first-order formula over a universal automatic structure, i.e., a logical theory over the string domain. For probabilistic systems, we show how probability values (as well as the required operations) can be encoded naturally in the logic. Our main result is that one can specify the verification condition of whether a given regular binary relation is a probabilistic bisimulation as a regular relation. Since the first-order theory of the universal automatic structure is decidable, we obtain an effective method for verifying probabilistic bisimulation for infinite-state systems, given a regular relation as a candidate proof. As a case study, we show that our framework is sufficiently expressive for proving the anonymity property of the parameterized dining cryptographers protocol and the parameterized grades protocol. Both of these protocols hitherto could not be verified by existing automatic methods. Moreover, with the help of standard automata learning algorithms, we show that the candidate relations can be synthesized fully automatically, making the verification fully automated. Chih-Duo Hong, Anthony Widjaja Lin, Rupak Majumdar, Philipp Rümmer |
CAV (1) | 4 |
| 2019 | JayHorn: a Java model checkerabstractThis talk will give an overview of the JayHorn verification tool, a model checker for sequential Java programs annotated with assertions expressing safety conditions. JayHorn is fully automatic and based to a large degree on standard infrastructure for compilation and verification: it uses the Soot library as front-end to read Java bytecode and translate it to the Jimple three-address format, and the state-of-the-art Horn solvers SPACER and Eldarica as back-ends that infer loop invariants, object and class invariants, and method contracts. Since JayHorn uses an invariant-based representation of heap data-structures, it is particularly useful for analysing programs with unbounded data-structures and unbounded run-time, while at the same time avoiding the use of logical theories, like the theory of arrays, often considered hard for Horn solvers. The development of JayHorn is ongoing, and the talk will also cover some of the future features of JayHorn, in particular the handling of strings. Philipp Rümmer |
FTfJP@ECOOP | 1 |
| 2019 | JayHorn: A Java Model Checker - (Competition Contribution)abstractJayHorn is a model checker for verifying sequential Java programs annotated with assertions expressing safety conditions. JayHorn uses the Soot library to read Java bytecode and translate it to the Jimple three-address format, then converts the Jimple code in several stages to a set of constrained Horn clauses, and solves the Horn clauses using solvers like SPACER and Eldarica. JayHorn uses a novel, invariant-based representation of heap data-structures, and is therefore particularly useful for analyzing programs with unbounded data-structures and unbounded run-time. JayHorn is open source and distributed under MIT license ( https://github.com/jayhorn/jayhorn ). Temesghen Kahsai, Philipp Rümmer, Martin Schäf |
TACAS (3) | 2 |
| 2019 | Decision procedures for path feasibility of string-manipulating programs with complex operationsabstractThe design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms). In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3. We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers. Taolue Chen 0001, Matthew Hague, Anthony Widjaja Lin, Philipp Rümmer, Zhilin Wu |
Proc. ACM Program. Lang. | 4 |
| 2018 | Trau: SMT solver for string constraintsabstractWe introduce TRAU, an SMT solver for an expressive constraint language, including word equations, length constraints, context-free membership queries, and transducer constraints. The satisfiability problem for such a class of constraints is in general undecidable. The key idea behind TRAU is a technique called flattening, which searches for satisfying assignments that follow simple patterns. TRAU implements a Counter-Example Guided Abstraction Refinement (CEGAR) framework which contains both an under- and an over-approximation module. The approximations are refined in an automatic manner by information flow between the two modules. The technique implemented by TRAU can handle a rich class of string constraints and has better performance than state-of-the-art string solvers. Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen 0001, Bui Phi Diep, Lukás Holík, Ahmed Rezine, Philipp Rümmer |
FMCAD | 7 |
| 2018 | Bit-Vector Interpolation and Quantifier Elimination by Lazy ReductionabstractThe inference of program invariants over machine arithmetic, commonly called bit-vector arithmetic, is an important problem in verification. Techniques that have been successful for unbounded arithmetic, in particular Craig interpolation, have turned out to be difficult to generalise to machine arithmetic: existing bit-vector interpolation approaches are based either on eager translation from bit-vectors to unbounded arithmetic, resulting in complicated constraints that are hard to solve and interpolate, or on bit-blasting to propositional logic, in the process losing all arithmetic structure. We present a new approach to bit-vector interpolation, as well as bit-vector quantifier elimination (QE), that works by lazy translation of bit-vector constraints to unbounded arithmetic. Laziness enables us to fully utilise the information available during proof search (implied by decisions and propagation) in the encoding, and this way produce constraints that can be handled relatively easily by existing interpolation and QE procedures for Presburger arithmetic. The lazy encoding is complemented with a set of native proof rules for bit-vector equations and non-linear (polynomial) constraints, this way minimising the number of cases a solver has to consider. Peter Backeman, Philipp Rümmer, Aleksandar Zeljic |
FMCAD | 2 |
| 2018 | The ELDARICA Horn SolverabstractThis paper presents the ELDARICA version 2 model checker. Over the last years we have been developing and maintaining ELDARICA as a state-of-the-art solver for Horn clauses over integer arithmetic. In the version 2, we have extended the solver to support also algebraic data types and bit-vectors, theories that are commonly applied in verification, but currently unsupported by most Horn solvers. This paper describes the high-level structure of the tool and the interface that it provides to other applications. We also report on an evaluation of the tool. While some of the techniques in ELDARICA have been documented in research papers over the last years, this is the first tool paper describing ELDARICA in its entirety. Hossein Hojjat, Philipp Rümmer |
FMCAD | 2 |
| 2018 | Automating regression verification of pointer programs by predicate abstraction
Vladimir Klebanov, Philipp Rümmer, Mattias Ulbrich |
Formal Methods Syst. Des. | 2 |
| 2018 | String constraints with concatenation and transducers solved efficientlyabstractString analysis is the problem of reasoning about how strings are manipulated by a program. It has numerous applications including automatic detection of cross-site scripting, and automatic test-case generation. A popular string analysis technique includes symbolic executions, which at their core use constraint solvers over the string domain, a.k.a. string solvers. Such solvers typically reason about constraints expressed in theories over strings with the concatenation operator as an atomic constraint. In recent years, researchers started to recognise the importance of incorporating the replace-all operator (i.e. replace all occurrences of a string by another string) and, more generally, finite-state transductions in the theories of strings with concatenation. Such string operations are typically crucial for reasoning about XSS vulnerabilities in web applications, especially for modelling sanitisation functions and implicit browser transductions (e.g. innerHTML). Although this results in an undecidable theory in general, it was recently shown that the straight-line fragment of the theory is decidable, and is sufficiently expressive in practice. In this paper, we provide the first string solver that can reason about constraints involving both concatenation and finite-state transductions. Moreover, it has a completeness and termination guarantee for several important fragments (e.g. straight-line fragment). The main challenge addressed in the paper is the prohibitive worst-case complexity of the theory (double-exponential time), which is exponentially harder than the case without finite-state transductions. To this end, we propose a method that exploits succinct alternating finite-state automata as concise symbolic representations of string constraints. In contrast to previous approaches using nondeterministic automata, alternation offers not only exponential savings in space when representing Boolean combinations of transducers, but also a possibility of succinct representation of otherwise costly combinations of transducers and concatenation. Reasoning about the emptiness of the AFA language requires a state-space exploration in an exponential-sized graph, for which we use model checking algorithms (e.g. IC3). We have implemented our algorithm and demonstrated its efficacy on benchmarks that are derived from cross-site scripting analysis and other examples in the literature. Lukás Holík, Petr Janku, Anthony Widjaja Lin, Philipp Rümmer, Tomás Vojnar |
Proc. ACM Program. Lang. | 4 |
| 2017 | Learning to prove safety over parameterised concurrent systemsabstractWe revisit the classic problem of proving safety over parameterised concurrent systems, i.e., an infinite family of finite-state concurrent systems that are represented by some finite (symbolic) means. An example of such an infinite family is a dining philosopher protocol with any number n of processes (n being the parameter that defines the infinite family). Regular model checking is a well-known generic framework for modelling parameterised concurrent systems, where an infinite set of configurations (resp. transitions) is represented by a regular set (resp. regular transducer). Although verifying safety properties in the regular model checking framework is undecidable in general, many sophisticated semi-algorithms have been developed in the past fifteen years that can successfully prove safety in many practical instances. In this paper, we propose a simple solution to synthesise regular inductive invariants that makes use of Angluin's classic L* algorithm (and its variants). We provide a termination guarantee when the set of configurations reachable from a given set of initial configurations is regular. We have tested L* algorithm on standard (as well as new) examples in regular model checking including the dining philosopher protocol, the dining cryptographer protocol, and several mutual exclusion protocols (e.g. Bakery, Burns, Szymanski, and German). Our experiments show that, despite the simplicity of our solution, it can perform at least as well as existing semi-algorithms. Yu-Fang Chen 0001, Chih-Duo Hong, Anthony Widjaja Lin, Philipp Rümmer |
FMCAD | 4 |
| 2017 | Quantified Heap Invariants for Object-Oriented ProgramsabstractHeap and data structures represent one of the biggest challenges when applying model checking to the analysis of software programs: in order to verify (unbounded) safety of a program, it is typically necessary to formulate quantified inductive invariants that state properties about an unbounded number of heap locations. Methods like Craig interpolation, which are commonly used to infer invariants in model checking, are often ineffective when a heap is involved. To address this challenge, we introduce a set of new proof and program transformation rules for verifying object-oriented programs with the help of space invariants, which (implicitly) give rise to quantified invariants. Leveraging advances in Horn solving, we show how space invariants can be derived fully automatically, and how the framework can be used to effectively verify safety of Java programs. Temesghen Kahsai, Rody Kersten, Philipp Rümmer, Martin Schäf |
LPAR | 3 |
| 2017 | Flatten and conquer: a framework for efficient analysis of string constraintsabstractWe describe a uniform and efficient framework for checking the satisfiability of a large class of string constraints. The framework is based on the observation that both satisfiability and unsatisfiability of common constraints can be demonstrated through witnesses with simple patterns. These patterns are captured using flat automata each of which consists of a sequence of simple loops. We build a Counter-Example Guided Abstraction Refinement (CEGAR) framework which contains both an under- and an over-approximation module. The flow of information between the modules allows to increase the precision in an automatic manner. We have implemented the framework as a tool and performed extensive experimentation that demonstrates both the generality and efficiency of our method. Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen 0001, Bui Phi Diep, Lukás Holík, Ahmed Rezine, Philipp Rümmer |
PLDI | 7 |
| 2017 | Fair Termination for Parameterized Probabilistic Concurrent Systems
Ondrej Lengál, Anthony Widjaja Lin, Rupak Majumdar, Philipp Rümmer |
TACAS (1) | 4 |
| 2017 | Preface to special issue on satisfiability modulo theories
Alberto Griggio, Philipp Rümmer |
Formal Methods Syst. Des. | 2 |
| 2017 | An Approximation Framework for Solvers and Decision ProceduresabstractWe consider the problem of automatically and efficiently computing models of constraints, in the presence of complex background theories such as floating-point arithmetic. Constructing models, or proving that a constraint is unsatisfiable, has various applications, for instance for automatic generation of test inputs. It is well-known that a naïve encoding of constraints into simpler theories (for instance, bit-vectors or propositional logic) often leads to a drastic increase in size, or that it is unsatisfactory in terms of the resulting space and runtime demands. We define a framework for systematic application of approximations in order to improve performance. Our method is more general than previous techniques in the sense that approximations that are neither under- nor over-approximations can be used, and it shows promising performance on practically relevant benchmark problems. Aleksandar Zeljic, Christoph M. Wintersteiger, Philipp Rümmer |
J. Autom. Reason. | 3 |
| 2016 | JayHorn: A Framework for Verifying Java programs
Temesghen Kahsai, Philipp Rümmer, Huascar Sanchez, Martin Schäf |
CAV (1) | 2 |
| 2016 | Liveness of Randomised Parameterised Systems under Arbitrary Schedulers
Anthony Widjaja Lin, Philipp Rümmer |
CAV (2) | 2 |
| 2016 | Optimizing horn solvers for network repairabstractAutomatic program repair modifies a faulty program to make it correct with respect to a specification. Previous approaches have typically been restricted to specific programming languages and a fixed set of syntactical mutation techniques-e.g., changing the conditions of if statements. We present a more general technique based on repairing sets of unsolvable Horn clauses. Working with Horn clauses enables repairing programs from many different source languages, but also introduces challenges, such as navigating the large space of possible repairs. We propose a conservative semantic repair technique that only removes incorrect behaviors and does not introduce new behaviors. Our proposed framework allows the user to request the best repairs-it constructs an optimization lattice representing the space of possible repairs, and uses a novel local search technique that exploits heuristics to avoid searching through sub-lattices with no feasible repairs. To illustrate the applicability of our approach, we apply it to problems in software-defined networking (SDN), and illustrate how it is able to help network operators fix buggy configurations by properly filtering undesired traffic. We show that interval and Boolean lattices are effective choices of optimization lattices in this domain, and we enable optimization objectives such as modifying the minimal number of switches. We have implemented a prototype repair tool, and present preliminary experimental results on several benchmarks using real topologies and realistic repair scenarios in data centers and congested networks. Hossein Hojjat, Philipp Rümmer, Jedidiah McClurg, Pavol Cerný, Nate Foster |
FMCAD | 2 |
| 2016 | Deciding Bit-Vector Formulas with mcSAT
Aleksandar Zeljic, Christoph M. Wintersteiger, Philipp Rümmer |
SAT | 3 |
| 2016 | Regular Symmetry Patterns
Anthony Widjaja Lin, Truong Khanh Nguyen, Philipp Rümmer, Jun Sun 0001 |
VMCAI | 3 |
| 2016 | Guiding Craig interpolation with domain-specific abstractions
Jérôme Leroux, Philipp Rümmer, Pavle Subotic |
Acta Informatica | 2 |
| 2015 | An Automatable Formal Semantics for IEEE-754 Floating-Point ArithmeticabstractAutomated reasoning tools often provide little or no support to reason accurately and efficiently about floating-point arithmetic. As a consequence, software verification systems that use these tools are unable to reason reliably about programs containing floating-point calculations or may give unsound results. These deficiencies are in stark contrast to the increasing awareness that the improper use of floating-point arithmetic in programs can lead to unintuitive and harmful defects in software. To promote coordinated efforts towards building efficient and accurate floating-point reasoning engines, this paper presents a formalization of the IEEE-754 standard for floating-point arithmetic as a theory in many-sorted first-order logic. Benefits include a standardized syntax and unambiguous semantics, allowing tool interoperability and sharing of benchmarks, and providing a basis for automated, formal analysis of programs that process floating-point data. Martin Brain, Cesare Tinelli, Philipp Rümmer, Thomas Wahl |
ARITH | 3 |
| 2015 | Theorem Proving with Bounded Rigid E-Unification
Peter Backeman, Philipp Rümmer |
CADE | 2 |
| 2015 | Norn: An SMT Solver for String Constraints
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen 0001, Lukás Holík, Ahmed Rezine, Philipp Rümmer, Jari Stenman |
CAV (1) | 6 |
| 2015 | Bixie: Finding and Understanding Inconsistent CodeabstractWe present Bixie, a tool to detect inconsistencies in Java code. Bixie detectsinconsistent code at a higher precision than previous tools and provides novelfault localization techniques to explain why code is inconsistent. Wedemonstrate the usefulness of Bixie on over one million lines of code, showthat it can detect inconsistencies at a low false alarm rate, and fix a numberof inconsistencies in popular open-source projects. Watch our Demo at http://youtu.be/QpsoUBJMxhk. Timothy McCarthy, Philipp Rümmer, Martin Schäf |
ICSE (2) | 2 |
| 2015 | Efficient Algorithms for Bounded Rigid E-unification
Peter Backeman, Philipp Rümmer |
TABLEAUX | 2 |
| 2015 | On recursion-free Horn clauses and Craig interpolation
Philipp Rümmer, Hossein Hojjat, Viktor Kuncak |
Formal Methods Syst. Des. | 1 |
| 2014 | String Constraints for Verification
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen 0001, Lukás Holík, Ahmed Rezine, Philipp Rümmer, Jari Stenman |
CAV | 6 |
| 2014 | Automating regression verificationabstractRegression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present a novel automatic approach for regression verification that reduces the equivalence of two related imperative integer programs to Horn constraints over uninterpreted predicates. Subsequently, state-of-the-art SMT solvers are used to solve the constraints. We have implemented the approach, and our experiments show non-trivial integer programs that can now be proved equivalent without further user input. Dennis Felsing, Sarah Grebing, Vladimir Klebanov, Philipp Rümmer, Mattias Ulbrich |
ASE | 4 |
| 2013 | A Theory for Control-Flow Graph Exploration
Stephan Arlt, Philipp Rümmer, Martin Schäf |
ATVA | 2 |
| 2013 | Disjunctive Interpolants for Horn-Clause Verification
Philipp Rümmer, Hossein Hojjat, Viktor Kuncak |
CAV | 1 |
| 2013 | Exploring interpolants
Philipp Rümmer, Pavle Subotic |
FMCAD | 1 |
| 2013 | Ranking function synthesis for bit-vector relations
Byron Cook, Daniel Kroening, Philipp Rümmer, Christoph M. Wintersteiger |
Formal Methods Syst. Des. | 3 |
| 2012 | Accelerating Interpolants
Hossein Hojjat, Radu Iosif, Filip Konecný, Viktor Kuncak, Philipp Rümmer |
ATVA | 5 |
| 2012 | A Verification Toolkit for Numerical Transition Systems - Tool Paper
Hossein Hojjat, Filip Konecný, Florent Garnier, Radu Iosif, Viktor Kuncak, Philipp Rümmer |
FM | 6 |
| 2012 | E-Matching with Free Variables
Philipp Rümmer |
LPAR | 1 |
| 2011 | Test-case generation for embedded simulink via formal concept analysisabstractMutation testing suffers from the high computational cost of automated test-vector generation, due to the large number of mutants that can be derived from programs and the cost of generating test-cases in a white-box manner. We propose a novel algorithm for mutation-based test-case generation for Simulink models that combines white-box testing with formal concept analysis. By exploiting similarity measures on mutants, we are able to effectively generate small sets of short test-cases that achieve high coverage on a collection of Simulink models from the automotive domain. Experiments show that our algorithm performs significantly better than random testing or simpler mutation-testing approaches. Nannan He, Philipp Rümmer, Daniel Kroening |
DAC | 2 |
| 2011 | SCRATCH: a tool for automatic analysis of dma racesabstractWe present the SCRATCH tool, which uses bounded model checking and k-induction to automatically analyse software for multicore processors such as the Cell BE, in order to detect DMA races. Alastair F. Donaldson, Daniel Kroening, Philipp Rümmer |
PPoPP | 3 |
| 2011 | Software Verification Using k-Induction
Alastair F. Donaldson, Leopold Haller, Daniel Kroening, Philipp Rümmer |
SAS | 4 |
| 2011 | Beyond Quantifier-Free Interpolation in Extensions of Presburger Arithmetic
Angelo Brillout, Daniel Kroening, Philipp Rümmer, Thomas Wahl |
VMCAI | 3 |
| 2011 | Automatic analysis of DMA races using model checking and k-induction
Alastair F. Donaldson, Daniel Kroening, Philipp Rümmer |
Formal Methods Syst. Des. | 3 |
| 2011 | An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic
Angelo Brillout, Daniel Kroening, Philipp Rümmer, Thomas Wahl |
J. Autom. Reason. | 3 |
| 2010 | Ranking Function Synthesis for Bit-Vector Relations
Byron Cook, Daniel Kroening, Philipp Rümmer, Christoph M. Wintersteiger |
TACAS | 3 |
| 2010 | Automatic Analysis of Scratch-Pad Memory Code for Heterogeneous Multicore Processors
Alastair F. Donaldson, Daniel Kroening, Philipp Rümmer |
TACAS | 3 |
| 2010 | A Polymorphic Intermediate Verification Language: Design and Logical Encoding
K. Rustan M. Leino, Philipp Rümmer |
TACAS | 2 |
| 2009 | Real World Verification
André Platzer, Jan-David Quesel, Philipp Rümmer |
CADE | 3 |
| 2008 | A Constraint Sequent Calculus for First-Order Logic with Linear Integer Arithmetic
Philipp Rümmer |
LPAR | 1 |
| 2008 | Integrating Verification and Testing of Object-Oriented Software
Christian Engel 0002, Christoph Gladisch, Vladimir Klebanov, Philipp Rümmer |
TAP | 4 |
| 2008 | Non-termination Checking for Imperative Programs
Helga Velroyen, Philipp Rümmer |
TAP | 2 |
| 2008 | Integration of a security type system into a program logic
Reiner Hähnle, Philipp Rümmer, Dennis Walter |
Theor. Comput. Sci. | 3 |
| 2007 | The KeY system 1.0 (Deduction Component)
Bernhard Beckert, Martin Giese, Reiner Hähnle, Vladimir Klebanov, Philipp Rümmer, Steffen Schlager, Peter H. Schmitt |
CADE | 5 |
| 2007 | Proving Programs Incorrect Using a Sequent Calculus for Java Dynamic Logic
Philipp Rümmer, Muhammad Ali Shah |
TAP | 1 |
| 2006 | Sequential, Parallel, and Quantified Updates of First-Order Structures
Philipp Rümmer |
LPAR | 1 |