VLDB 2026 Research / reviewers in the wild / expert
Tomás Vojnar
dblp:51/533
· DBLP profile ↗
104ranked-venue papers
2as first author
19since 2021 · last 2026
0000-0002-2746-8792ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 76 · 1 first-author · 16 since 2021Theory of computation · 30 · 1 since 2021Artificial intelligence and machine learning · 7 · 1 since 2021Systems, architecture and hardware · 6 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorSecurity and privacy · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Seal: Symbolic Execution with Separation Logic - (Competition Contribution)
Tomás Brablec, Tomás Dacík, Tomás Vojnar |
TACAS (2) | 3 |
| 2025 | SkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate EdgesabstractA typical points-to analysis such as Andersen’s or Steensgaard’s may lose precision because it ignores the branching structure of the analyzed program. Moreover, points-to analysis typically focuses on objects only, not considering instructions manipulating primitive values. We argue that such an approach leads to an unnecessary precision loss, for example, when primitive constants true and false flow out of method calls. We propose a novel lightweight points-to analysis called SkipFlow that interprocedurally tracks the flow of both primitives and objects, and explicitly captures the branching structure of the code using predicate edges. At the same time, however, SkipFlow is as lightweight and scalable as possible, unlike a traditional flow-sensitive analysis. We apply SkipFlow to GraalVM Native Image, a closed-world solution to building standalone binaries for Java applications. We evaluate the implementation using a set of microservice applications as well as well-known benchmark suites. We show that SkipFlow reduces the size of the application in terms of reachable methods by 9% on average without significantly increasing the analysis time. David Kozak, Codrut Stancu, Tomás Vojnar, Christian Wimmer |
CGO | 3 |
| 2025 | RacerF: Lightweight Static Data Race Detection for C Code (Experience Paper)
Tomás Dacík, Tomás Vojnar |
ECOOP | 2 |
| 2025 | Compositional Shape Analysis with Shared Abduction and Biabductive Loop AccelerationabstractAbstract Biabduction-based shape analysis is a compositional verification and analysis technique that can prove memory safety in the presence of complex, linked data structures. Despite its usefulness, several open problems persist for this kind of analysis; two of which we address in this paper. On the one hand, the original analysis is path-sensitive but cannot combine safety requirements for related branches. This causes the analysis to require additional soundness checks and decreases the analysis’ precision. We extend the underlying symbolic execution and propose a framework for shared abduction where a common pre-condition is maintained for related computation branches. On the other hand, prior implementations lift loop acceleration methods from forward analysis to biabduction analysis by applying them separately on the pre- and post-condition, which can lead to imprecise or even unsound acceleration results that do not form a loop invariant. In contrast, we propose biabductive loop acceleration, which explicitly constructs and checks candidate loop invariants. For this, we also introduce a novel heuristic called shape extrapolation. This heuristic takes advantage of locality in the handling of list-like data structures (which are the most common data structures found in low-level code) and jointly accelerates pre- and post-conditions by extrapolating the related shapes. In addition to making the analysis more precise, our techniques also make biabductive analysis more efficient since they are sound in just one analysis phase. In contrast, prior techniques always require two phases (as the first phase can produce contracts that are unsound and must hence be verified). We experimentally confirm that our techniques improve on prior techniques; both in terms of precision and runtime of the analysis. Florian Sextl, Adam Rogalewicz, Tomás Vojnar, Florian Zuleger |
ESOP (2) | 3 |
| 2025 | RacerF: Data Race Detection with Frama-C (Competition Contribution)abstractAbstract RacerF is a static analyser for detection of data races in multithreaded C programs implemented as a plugin of the Frama-C platform. The approach behind RacerF is mostly heuristic and relies on analysis of the sequential behaviour of particular threads whose results are generalised using a combination of under- and over-approximating techniques to allow analysis of the multithreading behaviour. In particular, in SV-COMP’25, RacerF relies on the Frama-C’s abstract interpreter EVA to perform the analysis of the sequential behaviour. Although RacerF does not provide any formal guarantees, it ranked second in the NoDataRace-Main sub-category, providing the largest number of correct results (when excluding metaverifiers) and just 4 false positives. Tomás Dacík, Tomás Vojnar |
TACAS (3) | 2 |
| 2024 | Deciding Boolean Separation Logic via Small ModelsabstractAbstract We present a novel decision procedure for a fragment of separation logic (SL) with arbitrary nesting of separating conjunctions with boolean conjunctions, disjunctions, and guarded negations together with a support for the most common variants of linked lists. Our method is based on a model-based translation to SMT for which we introduce several optimisations—the most important of them is based on bounding the size of predicate instantiations within models of larger formulae, which leads to a much more efficient translation of SL formulae to SMT. Through a series of experiments, we show that, on the frequently used symbolic heap fragment, our decision procedure is competitive with other existing approaches, and it can outperform them outside the symbolic heap fragment. Moreover, our decision procedure can also handle some formulae for which no decision procedure has been implemented so far. Tomás Dacík, Adam Rogalewicz, Tomás Vojnar, Florian Zuleger |
TACAS (1) | 3 |
| 2024 | Early Validation of High-Level System Requirements with Event Calculus and Answer Set ProgrammingabstractAbstract This paper proposes a new methodology for early validation of high-level requirements on cyber-physical systems with the aim of improving their quality and, thus, lowering chances of specification errors propagating into later stages of development where it is much more expensive to fix them. The paper presents a transformation of a real-world requirements specification of a medical device—the Patient-Controlled Analgesia (PCA) Pump—into an Event Calculus model that is then evaluated using Answer Set Programming and the s(CASP) system. The evaluation under s(CASP) allowed deductive as well as abductive reasoning about the specified functionality of the PCA pump on the conceptual level with minimal implementation or design dependent influences and led to fully automatically detected nuanced violations of critical safety properties. Further, the paper discusses scalability and non-termination challenges that had to be faced in the evaluation and techniques proposed to (partially) solve them. Finally, ideas for improving s(CASP) to overcome its evaluation limitations that still persist as well as to increase its expressiveness are presented. Ondrej Vasícek, Joaquín Arias, Jan Fiedor, Gopal Gupta 0001, Brendal Hall, Bohuslav Krena, Brian Larson, Sarat Chandra Varanasi, Tomás Vojnar |
Theory Pract. Log. Program. | 9 |
| 2023 | Fast Matching of Regular Patterns with Synchronizing CountingabstractAbstract Fast matching of regular expressions with bounded repetition , aka counting , such as $$\texttt {(ab)\{50,100\}}$$ ( ab ) { 50 , 100 } , i.e., matching linear in the length of the text and independent of the repetition bounds, has been an open problem for at least two decades. We show that, for a wide class of regular expressions with counting, which we call synchronizing , fast matching is possible. We empirically show that the class covers nearly all counting used in usual applications of regex matching. This complexity result is based on an improvement and analysis of a recent matching algorithm that compiles regexes to deterministic counting-set automata (automata with registers that hold sets of numbers). Lukás Holík, Juraj Síc, Lenka Turonová, Tomás Vojnar |
FoSSaCS | 4 |
| 2023 | Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native ImageabstractWhole-program analysis is an essential technique that enables advanced compiler optimizations. An important example of such a method is points-to analysis used by ahead-of-time (AOT) compilers to discover program elements (classes, methods, fields) used on at least one program path. GraalVM Native Image uses a points-to analysis to optimize Java applications, which is a time-consuming step of the build. We explore how much the analysis time can be improved by replacing the points-to analysis with a rapid type analysis (RTA), which computes reachable elements faster by allowing more imprecision. We propose several extensions of previous approaches to RTA: making it parallel, incremental, and supporting heap snapshotting. We present an extensive experimental evaluation of the effects of using RTA instead of points-to analysis, in which RTA allowed us to reduce the analysis time for Spring Petclinic (a popular demo application of the Spring framework) by 64% and the overall build time by 35% at the cost of increasing the image size due to the imprecision by 15%. David Kozak, Vojin Jovanovic, Codrut Stancu, Tomás Vojnar, Christian Wimmer |
MPLR | 4 |
| 2023 | 2LS: Arrays and Loop Unwinding - (Competition Contribution)abstractAbstract 2LS is a C program analyser built upon the CPROVER infrastructure that can verify and refute program assertions, memory safety, and termination. Until now, one of the main drawbacks of 2LS was its inability to verify most programs with arrays. This paper introduces a new abstract domain in 2LS for reasoning about the contents of arrays. In addition, we introduce an improved approach to loop unwinding, a crucial component of the 2LS’ verification algorithm, which particularly enables finding proofs and counterexamples for programs working with dynamic memory. Viktor Malík, Frantisek Necas, Peter Schrammel, Tomás Vojnar |
TACAS (2) | 4 |
| 2022 | Designing Approximate Arithmetic Circuits with Combined Error ConstraintsabstractApproximate circuits trading the power consumption for the quality of results play a key role in the development of energy-aware systems. Designing complex approximate circuits is, however, a very difficult and computationally demanding process. When deploying approximate circuits, various error metrics (e.g., mean average error, worst-case error, error rate), as well as other constraints (e.g., correct multiplication by 0), have to be considered. The state-of-the-art approximation methods typically focus on a single metric which significantly limits the applicability of the resulting circuits. In this paper, we experimentally investigate how various error metrics and their combinations affect the reduction of the power consumption that can be achieved. To this end, we extend evolutionary-driven techniques that allow us to effectively explore the design space of the approximate circuits. We identify principal limitations when complex error constraints are required as well as important correlations among the error metrics enabling the construction of circuits providing the best-known trade-offs between the power reduction and combined error constraints. Milan Ceska 0001, Jirí Matyás, Vojtech Mrazek, Tomás Vojnar |
DSD | 4 |
| 2022 | Low-Level Bi-AbductionabstractThe paper proposes a new static analysis designed to handle open programs, i.e., fragments of programs, with dynamic pointer-linked data structures - in particular, various kinds of lists - that employ advanced low-level pointer operations. The goal is to allow such programs be analysed without a need of writing analysis harnesses that would first initialise the structures being handled. The approach builds on a special flavour of separation logic and the approach of bi-abduction. The code of interest is analyzed along the call tree, starting from its leaves, with each function analysed just once without any call context, leading to a set of contracts summarizing the behaviour of the analysed functions. In order to handle the considered programs, methods of abduction existing in the literature are significantly modified and extended in the paper. The proposed approach has been implemented in a tool prototype and successfully evaluated on not large but complex programs. Lukás Holík, Petr Peringer, Adam Rogalewicz, Veronika Soková, Tomás Vojnar, Florian Zuleger |
ECOOP | 5 |
| 2022 | Perun: Performance Version SystemabstractIn this paper, we present PERUN: an open-source tool suite for profiling-based performance analysis. At its core, PERUN maintains links between project versions and the corresponding stored performance profiles, which are then leveraged for automated detection of performance changes in new project versions. The PERUN tool suite further includes multiple profilers (and is designed such that further profilers can be easily added), a performance fuzz-tester for workload generation, methods for deriving performance models, and numerous visualization methods. We demonstrate how PERUN can help developers to analyze their program performance on two examples: detection and localization of a performance degradation and generation of inputs forcing performance issues to show up. Tomás Fiedor, Jirí Pavela, Adam Rogalewicz, Tomás Vojnar |
ICSME | 4 |
| 2022 | Unite: an adapter for transforming analysis tools to web services via OSLCabstractThis paper describes Unite, a new tool intended as an adapter for transforming non-interactive command-line analysis tools to OSLC-compliant web services. Unite aims to make such tools easier to adopt and more convenient to use by allowing them to be accessible, both locally and remotely, in a unified way and to be easily integrated into various development environments. Open Services for Lifecycle Collaboration (OSLC) is an open standard for tool integration and was chosen for this task due to its robustness, extensibility, support of data from various domains, and its growing popularity. The work is motivated by allowing existing analysis tools to be more widely used with a strong emphasis on widening their industrial usage. We have implemented Unite and used it with multiple existing static as well as dynamic analysis and verification tools, and then successfully deployed it internationally in the industry to automate verification tasks for development teams in Honeywell. We discuss Honeywell's experience with using Unite and with OSLC in general. Moreover, we also provide the Unite Client (UniC) for Eclipse to allow users to easily run various analysis tools directly from the Eclipse IDE. Ondrej Vasícek, Jan Fiedor, Tomas Kratochvila, Bohuslav Krena, Ales Smrcka, Tomás Vojnar |
ESEC/SIGSOFT FSE | 6 |
| 2022 | Counting in Regexes Considered Harmful: Exposing ReDoS Vulnerability of Nonbacktracking Matchers
Lenka Turonová, Lukás Holík, Ivan Homoliak, Ondrej Lengál, Margus Veanes, Tomás Vojnar |
USENIX Security Symposium | 6 |
| 2022 | Utilizing parametric systems for detection of pipeline hazards
Lukás Charvát, Ales Smrcka, Tomás Vojnar |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2022 | Tools and algorithms for the construction and analysis of systems: a special issue for TACAS 2019
Tomás Vojnar, Lijun Zhang 0001 |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2021 | Automatically Checking Semantic Equivalence between Versions of Large-Scale C ProjectsabstractMotivated by a need of some software projects to ensure semantic stability of some of their core parts, the paper proposes a highly-scalable approach for automatically checking semantic equivalence of different versions of large C projects, with a particular focus on the Linux kernel. The proposed method uses a novel combination of pattern matching with light-weight static analysis and control-flow transformations. Although the method cannot prove equivalence on heavily refactored code, it can compare thousands of functions in minutes while producing a low number of false non-equality verdicts as our experiments show. We implemented our approach in a tool called DiffKemp and we show that DiffKemp, unlike other existing tools, gives practically useful results even on projects of the size of the Linux kernel. Viktor Malík, Tomás Vojnar |
ICST | 2 |
| 2021 | Automata Terms in a Lazy WSkS Decision Procedure
Vojtech Havlena, Lukás Holík, Ondrej Lengál, Tomás Vojnar |
J. Autom. Reason. | 4 |
| 2020 | Antiprenexing for WSkS: A Little Goes a Long WayabstractWe study light-weight techniques for preprocessing of WSkS formulae in an automata- based decision procedure as implemented, e.g., in Mona. The techniques we use are based on antiprenexing, i.e., pushing quantifiers deeper into a formula. Intuitively, this tries to alleviate the explosion in the size of the constructed automata by making it happen sooner on smaller automata (and have the automata minimization reduce the output). The formula transformations that we use to implement antiprenexing may, however, be applied in different ways and extent and, if used in an unsuitable way, may also cause an explosion in the size of the formula and the automata built while deciding it. Therefore, our approach uses informed rules that use an estimation of the cost of constructing automata for WSkS formulae. The estimation is based on a model learnt from runs of the decision algorithm on various formulae. An experimental evaluation of our technique shows that antiprenexing can significantly boost the performance of the base WSkS decision procedure, sometimes allowing one to decide formulae that could not be decided before. Vojtech Havlena, Lukás Holík, Ondrej Lengál, Ondrej Vales, Tomás Vojnar |
LPAR | 5 |
| 2020 | Satisfiability Solving Meets Evolutionary Optimisation in Designing Approximate Circuits
Milan Ceska 0002, Jirí Matyás, Vojtech Mrazek, Tomás Vojnar |
SAT | 4 |
| 2020 | Symbiotic 7: Integration of Predator and More - (Competition Contribution)abstractAbstract Symbiotic 7 brings improvements in all parts of the tool. In particular, we integrated the advanced shape analysis implemented in Predator to our instrumentation process for memory safety checking. Further, we extended our slicer to correctly handle non-terminating programs. This new slicing is applied in termination analysis, where we also added instrumentation for detection of simple cycles in the program state space. The witness generation process changed as well. Marek Chalupa, Tomás Jasek, Lukás Tomovic, Martin Hruska, Veronika Soková, Paulína Ayaziová, Jan Strejcek, Tomás Vojnar |
TACAS (2) | 8 |
| 2020 | 2LS: Heap Analysis and Memory Safety - (Competition Contribution)abstractAbstract 2LS is a framework for analysis of sequential C programs based on the CPROVER infrastructure and template-based synthesis techniques for checking both safety and termination. The paper presents the main improvements done in 2LS since 2018, which concern mainly the way 2LS handles dynamically allocated objects and structures as well as combinations of abstract domains. Viktor Malík, Peter Schrammel, Tomás Vojnar |
TACAS (2) | 3 |
| 2020 | PredatorHP Revamped (Not Only) for Interval-Sized Memory Regions and Memory Reallocation (Competition Contribution)abstractAbstract This paper concentrates on improvements of the PredatorHP shape analyzer in the past two years, including, e.g., improved handling of interval-sized memory regions or new support of memory reallocation. The paper characterizes PredatorHP’s participation in SV-COMP 2020, pointing out its strengths and weakness and the way they were influenced by the latest changes in the tool. Petr Peringer, Veronika Soková, Tomás Vojnar |
TACAS (2) | 3 |
| 2020 | Abstraction refinement and antichains for trace inclusion of infinite state systems
Lukás Holík, Radu Iosif, Adam Rogalewicz, Tomás Vojnar |
Formal Methods Syst. Des. | 4 |
| 2020 | Regex matching with counting-set automataabstractWe propose a solution to the problem of efficient matching regular expressions (regexes) with bounded repetition, such as (ab){1,100}, using deterministic automata. For this, we introduce novel counting-set automata (CsAs) , automata with registers that can hold sets of bounded integers and can be manipulated by a limited portfolio of constant-time operations. We present an algorithm that compiles a large sub-class of regexes to deterministic CsAs. This includes (1) a novel Antimirov-style translation of regexes with counting to counting automata (CAs) , nondeterministic automata with bounded counters, and (2) our main technical contribution, a determinization of CAs that outputs CsAs. The main advantage of this workflow is that the size of the produced CsAs does not depend on the repetition bounds used in the regex (while the size of the DFA is exponential to them). Our experimental results confirm that deterministic CsAs produced from practical regexes with repetition are indeed vastly smaller than the corresponding DFAs. More importantly, our prototype matcher based on CsA simulation handles practical regexes with repetition regardless of sizes of counter bounds. It easily copes with regexes with repetition where state-of-the-art matchers struggle. Lenka Turonová, Lukás Holík, Ondrej Lengál, Olli Saarikivi, Margus Veanes, Tomás Vojnar |
Proc. ACM Program. Lang. | 6 |
| 2020 | Approximate reduction of finite automata for high-speed network intrusion detection
Milan Ceska 0002, Vojtech Havlena, Lukás Holík, Ondrej Lengál, Tomás Vojnar |
Int. J. Softw. Tools Technol. Transf. | 5 |
| 2019 | J-ReCoVer: Java Reducer Commutativity Verifier
Yu-Fang Chen 0001, Chang-Yi Chiang, Lukás Holík, Wei-Tsung Kao, Hsin-Hung Lin, Tomás Vojnar, Yean-Fu Wen, Wei-Cheng Wu |
APLAS | 6 |
| 2019 | Succinct Determinisation of Counting Automata via Sphere Construction
Lukás Holík, Ondrej Lengál, Olli Saarikivi, Lenka Turonová, Margus Veanes, Tomás Vojnar |
APLAS | 6 |
| 2019 | Automata Terms in a Lazy WSkS Decision Procedure
Vojtech Havlena, Lukás Holík, Ondrej Lengál, Tomás Vojnar |
CADE | 4 |
| 2019 | Deep Packet Inspection in FPGAs via Approximate Nondeterministic AutomataabstractDeep packet inspection via regular expression (RE) matching is a crucial task of network intrusion detection systems (IDSes), which secure Internet connection against attacks and suspicious network traffic. Monitoring high-speed computer networks (100 Gbps and faster) in a single-box solution demands that the RE matching, traditionally based on finite automata (FAs), is accelerated in hardware. In this paper, we describe a novel FPGA architecture for RE matching that is able to process network traffic beyond 100 Gbps. The key idea is to reduce the required FPGA resources by leveraging approximate nondeterministic FAs (NFAs). The NFAs are compiled into a multi-stage architecture starting with the least precise stage with a high throughput and ending with the most precise stage with a low throughput. To obtain the reduced NFAs, we propose new approximate reduction techniques that take into account the profile of the network traffic. Our experiments showed that using our approach, we were able to perform matching of large sets of REs from SNORT, a popular IDS, on unprecedented network speeds. Milan Ceska 0002, Vojtech Havlena, Lukás Holík, Jan Korenek, Ondrej Lengál, Denis Matousek, Jirí Matousek 0002, Jakub Semric, Tomás Vojnar |
FCCM | 9 |
| 2019 | SL-COMP: Competition of Solvers for Separation LogicabstractSL-COMP aims at bringing together researchers interested on improving the state of the art of the automated deduction methods for Separation Logic (SL). The event took place twice until now and collected more than 1K problems for different fragments of SL. The input format of problems is based on the SMT-LIB format and therefore fully typed; only one new command is added to SMT-LIB’s list, the command for the declaration of the heap’s type. The SMT-LIB theory of SL comes with ten logics, some of them being combinations of SL with linear arithmetics. The competition’s divisions are defined by the logic fragment, the kind of decision problem (satisfiability or entailment) and the presence of quantifiers. Until now, SL-COMP has been run on the StarExec platform, where the benchmark set and the binaries of participant solvers are freely available. The benchmark set is also available with the competition’s documentation on a public repository in GitHub. Mihaela Sighireanu, Juan Antonio Navarro Pérez, Andrey Rybalchenko, Nikos Gorogiannis, Radu Iosif, Andrew Reynolds 0001, Cristina Serban, Jens Pagel, Christoph Matheja, Thomas Noll 0001, Florian Zuleger, Wei-Ngan Chin, Quang Loc Le, Quang-Trung Ta, Ton Chanh Le, Thanh-Toan Nguyen, Siau-Cheng Khoo, Michal Cyprian, Adam Rogalewicz, Tomás Vojnar, Constantin Enea, Ondrej Lengál, Zhilin Wu |
TACAS (3) | 20 |
| 2019 | Nested antichains for WS1S
Tomás Fiedor, Lukás Holík, Ondrej Lengál, Tomás Vojnar |
Acta Informatica | 4 |
| 2018 | Simulation Algorithms for Symbolic Automata
Lukás Holík, Ondrej Lengál, Juraj Síc, Margus Veanes, Tomás Vojnar |
ATVA | 5 |
| 2018 | ADAC: Automated Design of Approximate CircuitsabstractApproximate circuits with relaxed requirements on functional correctness play an important role in the development of resource-efficient computer systems. Designing approximate circuits is a very complex and time-demanding process trying to find optimal trade-offs between the approximation error and resource savings. In this paper, we present ADAC—a novel framework for automated design of approximate arithmetic circuits. ADAC integrates in a unique way efficient simulation and formal methods for approximate equivalence checking into a search-based circuit optimisation. To make ADAC easily accessible, it is implemented as a module of the ABC tool: a state-of-the-art system for circuit synthesis and verification. Within several hours, ADAC is able to construct high-quality Pareto sets of complex circuits (including even 32-bit multipliers), providing useful trade-offs between the resource consumption and the error that is formally guaranteed. This demonstrates outstanding performance and scalability compared with other existing approaches. Milan Ceska 0002, Jirí Matyás, Vojtech Mrazek, Lukás Sekanina, Zdenek Vasícek, Tomás Vojnar |
CAV (1) | 6 |
| 2018 | The AQUAS ECSEL ProjectabstractThere is an ever-increasing complexity of the systems we engineer in modern society, which includes facing the convergence of the embedded world and the open world. This complexity creates increasing difficulty with providing assurance for factors including safety, security and performance. In such a context, the AQUAS project investigates the challenges arising from the inter-dependence of safety, security and performance of systems and aims at efficient solutions for the entire product life-cycle. The project builds on knowledge of partners gained in current or former EU projects and will demonstrate the newly developed methods and techniques for co-engineering across use cases spanning Space, Medicine, Transport and Industrial Control. Luigi Pomante, Bohuslav Krena, Tomás Vojnar, Filip Veljkovic, Pacome Magnin |
DSD | 3 |
| 2018 | Template-Based Verification of Heap-Manipulating ProgramsabstractWe propose a shape analysis suitable for analysis engines that perform automatic invariant inference using an SMT solver. The proposed solution includes an abstract template domain that encodes the shape of the program heap based on logical formulae over bit-vectors. It is based on computing a points-to relation between pointers and symbolic addresses of abstract memory objects. Our abstract heap domain can be combined with value domains in a straightforward manner, which particularly allows us to reason about shapes and contents of heap structures at the same time. The information obtained from the analysis can be used to prove memory safety and reachability properties, expressed by user assertions, of programs manipulating dynamic data structures, mainly linked lists. The solution has been implemented in the 2LS framework and compared against state-of-the-art tools that perform the best in heap-related categories of the well-known Software Verification Competition (SV-COMP). Results show that 2LS outperforms these tools on benchmarks requiring combined reasoning about unbounded data structures and their numerical contents. Viktor Malík, Martin Hruska, Peter Schrammel, Tomás Vojnar |
FMCAD | 4 |
| 2018 | Advances in the ANaConDA framework for dynamic analysis and testing of concurrent C/C++ programsabstractThe paper presents advances in the ANaConDA framework for dynamic analysis and testing of concurrent C/C++ programs. ANaConDA comes with several built-in analysers, covering detection of data races, deadlocks, or contract violations, and allows for an easy creation of new analysers. To increase the variety of tested interleavings, ANaConDA offers various noise injection techniques. The framework performs the analysis on a binary level, thus not requiring the source code of the program to be available. Apart from many academic experiments, ANaConDA has also been successfully used to discover various errors in industrial code. Jan Fiedor, Monika Muzikovská, Ales Smrcka, Ondrej Vasícek, Tomás Vojnar |
ISSTA | 5 |
| 2018 | Approximate Reduction of Finite Automata for High-Speed Network Intrusion Detection
Milan Ceska 0002, Vojtech Havlena, Lukás Holík, Ondrej Lengál, Tomás Vojnar |
TACAS (2) | 5 |
| 2018 | 2LS: Memory Safety and Non-termination - (Competition Contribution)
Viktor Malík, Stefan Marticek, Peter Schrammel, Mandayam K. Srivas, Tomás Vojnar, Johanan Wahlang |
TACAS (2) | 5 |
| 2018 | From Shapes to Amortized Complexity
Tomás Fiedor, Lukás Holík, Adam Rogalewicz, Moritz Sinn, Tomás Vojnar, Florian Zuleger |
VMCAI | 5 |
| 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. | 5 |
| 2017 | Approximating complex arithmetic circuits with formal error guarantees: 32-bit multipliers accomplishedabstractWe present a novel method allowing one to approximate complex arithmetic circuits with formal guarantees on the approximation error. The method integrates in a unique way formal techniques for approximate equivalence checking into a search-based circuit optimisation algorithm. The key idea of our approach is to employ a novel search strategy that drives the search towards promptly verifiable approximate circuits. The method was implemented within the ABC tool and extensively evaluated on functional approximation of multipliers (with up to 32-bit operands) and adders (with up to 128-bit operands). Within a few hours, we constructed a high-quality Pareto set of 32-bit multipliers providing trade-offs between the circuit error and size. This is for the first time when such complex approximate circuits with formal error guarantees have been derived, which demonstrates an outstanding performance and scalability of our approach compared with existing methods that have either been applied to the approximation of multipliers limited to 8-bit operands or statistical testing has been used only. Our approach thus significantly improves capabilities of the existing methods and paves a way towards an automated design process of provably-correct circuit approximations. Milan Ceska 0002, Jirí Matyás, Vojtech Mrazek, Lukás Sekanina, Zdenek Vasícek, Tomás Vojnar |
ICCAD | 6 |
| 2017 | Verifying Concurrent Programs Using ContractsabstractThe central notion of this paper is that of contracts for concurrency, allowing one to capture the expected atomicity of sequences of method or service calls in a concurrent program. The contracts may be either extracted automatically from the source code, or provided by developers of libraries or software modules to reflect their expected usage in a concurrent setting. We start by extending the so-far considered notion of contracts for concurrency in several ways, improving their expressiveness and enhancing their applicability in practice. Then, we propose two complementary analyses—a static and a dynamic one—to verify programs against the extended contracts. We have implemented both approaches and present promising experimental results from their application on various programs, including real-world ones where our approach unveiled previously unknown errors. Ricardo J. Dias, Carla Ferreira 0001, Jan Fiedor, João Lourenço, Ales Smrcka, Diogo Sousa 0001, Tomás Vojnar |
ICST | 7 |
| 2017 | Effect Summaries for Thread-Modular Analysis - Sound Analysis Despite an Unsound Heuristic
Lukás Holík, Roland Meyer 0001, Tomás Vojnar, Sebastian Wolff 0001 |
SAS | 3 |
| 2017 | Lazy Automata Techniques for WS1S
Tomás Fiedor, Lukás Holík, Petr Janku, Ondrej Lengál, Tomás Vojnar |
TACAS (1) | 5 |
| 2017 | Forester: From Heap Shapes to Automata Predicates - (Competition Contribution)
Lukás Holík, Martin Hruska, Ondrej Lengál, Adam Rogalewicz, Jirí Simácek, Tomás Vojnar |
TACAS (2) | 6 |
| 2017 | Counterexample Validation and Interpolation-Based Refinement for Forest Automata
Lukás Holík, Martin Hruska, Ondrej Lengál, Adam Rogalewicz, Tomás Vojnar |
VMCAI | 5 |
| 2017 | Boosted decision trees for behaviour mining of concurrent programmesabstractSummary Testing of concurrent programmes is difficult since the scheduling nondeterminism requires one to test a huge number of different thread interleavings. Moreover, repeated test executions that are performed in the same environment will typically examine similar interleavings only. One possible way how to deal with this problem is to use the noise injection approach, which influences the scheduling by injecting various kinds of noise (delays, context switches, etc) into the common thread behaviour. However, for noise injection to be efficient, one has to choose suitable noise injection heuristics from among the many existing ones as well as to suitably choose values of their various parameters, which is not easy. In this paper, we propose a novel way how to deal with the problem of choosing suitable noise injection heuristics and suitable values of their parameters (as well as suitable values of parameters of the programmes being tested themselves). Here, by suitable, we mean such settings that maximize chances of meeting a given testing goal (such as, eg, maximizing coverage of rare behaviours and thus maximizing chances to find rarely occurring concurrency‐related bugs). Our approach is, in particular, based on using data mining in the context of noise‐based testing to get more insight about the importance of the different heuristics in a particular testing context as well as to improve fully automated noise‐based testing (in combination with both random as well as genetically optimized noise setting). Renata Avros, V. Dudka, Bohuslav Krena, Zdenek Letko, Hana Pluhácková, Shmuel Ur, Tomás Vojnar, Zeev Volkovich |
Concurr. Comput. Pract. Exp. | 7 |
| 2017 | Compositional entailment checking for a fragment of separation logic
Constantin Enea, Ondrej Lengál, Mihaela Sighireanu, Tomás Vojnar |
Formal Methods Syst. Des. | 4 |
| 2016 | Run Forester, Run Backwards! - (Competition Contribution)
Lukás Holík, Martin Hruska, Ondrej Lengál, Adam Rogalewicz, Jirí Simácek, Tomás Vojnar |
TACAS | 6 |
| 2016 | Abstraction Refinement and Antichains for Trace Inclusion of Infinite State Systems
Radu Iosif, Adam Rogalewicz, Tomás Vojnar |
TACAS | 3 |
| 2016 | Optimized PredatorHP and the SV-COMP Heap and Memory Safety Benchmark - (Competition Contribution)
Michal Kotoun, Petr Peringer, Veronika Soková, Tomás Vojnar |
TACAS | 4 |
| 2016 | From Low-Level Pointers to High-Level Containers
Kamil Dudka, Lukás Holík, Petr Peringer, Marek Trtík, Tomás Vojnar |
VMCAI | 5 |
| 2016 | Verification of heap manipulating programs with ordered data by extended forest automata
Parosh Aziz Abdulla, Lukás Holík, Bengt Jonsson 0001, Ondrej Lengál, Cong Quy Trinh, Tomás Vojnar |
Acta Informatica | 6 |
| 2015 | Nested Antichains for WS1S
Tomás Fiedor, Lukás Holík, Ondrej Lengál, Tomás Vojnar |
TACAS | 4 |
| 2015 | Forester: Shape Analysis Using Tree Automata - (Competition Contribution)
Lukás Holík, Martin Hruska, Ondrej Lengál, Adam Rogalewicz, Jirí Simácek, Tomás Vojnar |
TACAS | 6 |
| 2015 | Predator Hunting Party (Competition Contribution)
Petr Müller, Petr Peringer, Tomás Vojnar |
TACAS | 3 |
| 2015 | Advances in noise-based testing of concurrent softwareabstractSummary Testing of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection , which influences the scheduling so that different interleavings of concurrent actions are witnessed. In this paper, multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way. In particular, various concurrency coverage metrics are presented first. Then, multiple heuristics for solving the noise placement problem (i.e. where and when to generate noise) as well as the noise seeding problem (i.e. how to generate the noise) are introduced and experimentally evaluated. In addition, several new heuristics are proposed and included into the evaluation too. Recommendations on how to set up noise‐based testing for particular scenarios are then given. Finally, a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented. Copyright © 2014 John Wiley & Sons, Ltd. Jan Fiedor, Vendula Hrubá, Bohuslav Krena, Zdenek Letko, Shmuel Ur, Tomás Vojnar |
Softw. Test. Verification Reliab. | 6 |
| 2014 | Compositional Entailment Checking for a Fragment of Separation Logic
Constantin Enea, Ondrej Lengál, Mihaela Sighireanu, Tomás Vojnar |
APLAS | 4 |
| 2014 | Deciding Entailments in Inductive Separation Logic with Tree Automata
Radu Iosif, Adam Rogalewicz, Tomás Vojnar |
ATVA | 3 |
| 2014 | Multi-objective Genetic Optimization for Noise-Based Testing of Concurrent Software
Vendula Hrubá, Bohuslav Krena, Zdenek Letko, Hana Pluhácková, Tomás Vojnar |
SSBSE | 5 |
| 2014 | Predator: A Shape Analyzer Based on Symbolic Memory Graphs - (Competition Contribution)
Kamil Dudka, Petr Peringer, Tomás Vojnar |
TACAS | 3 |
| 2014 | CPAlien: Shape Analyzer for CPAChecker - (Competition Contribution)
Petr Müller, Tomás Vojnar |
TACAS | 2 |
| 2014 | Mediating for reduction (on minimizing alternating Büchi automata)
Parosh Aziz Abdulla, Yu-Fang Chen 0001, Lukás Holík, Tomás Vojnar |
Theor. Comput. Sci. | 4 |
| 2013 | Verification of Heap Manipulating Programs with Ordered Data by Extended Forest Automata
Parosh Aziz Abdulla, Lukás Holík, Bengt Jonsson 0001, Ondrej Lengál, Cong Quy Trinh, Tomás Vojnar |
ATVA | 6 |
| 2013 | Fully Automated Shape Analysis Based on Forest Automata
Lukás Holík, Ondrej Lengál, Adam Rogalewicz, Jirí Simácek, Tomás Vojnar |
CAV | 5 |
| 2013 | Byte-Precise Verification of Low-Level List Manipulation
Kamil Dudka, Petr Peringer, Tomás Vojnar |
SAS | 3 |
| 2013 | Predator: A Tool for Verification of Low-Level List Manipulation - (Competition Contribution)
Kamil Dudka, Petr Müller, Petr Peringer, Tomás Vojnar |
TACAS | 4 |
| 2012 | ANaConDA: A Framework for Analysing Multi-threaded C/C++ Programs on the Binary Level
Jan Fiedor, Tomás Vojnar |
RV | 2 |
| 2012 | Testing of Concurrent Programs Using Genetic Algorithms
Vendula Hrubá, Bohuslav Krena, Zdenek Letko, Shmuel Ur, Tomás Vojnar |
SSBSE | 5 |
| 2012 | Predator: A Verification Tool for Programs with Dynamic Linked Data Structures - (Competition Contribution)
Kamil Dudka, Petr Müller, Petr Peringer, Tomás Vojnar |
TACAS | 4 |
| 2012 | VATA: A Library for Efficient Manipulation of Non-deterministic Tree Automata
Ondrej Lengál, Jirí Simácek, Tomás Vojnar |
TACAS | 3 |
| 2012 | Forest automata for verification of heap manipulation
Peter Habermehl, Lukás Holík, Adam Rogalewicz, Jirí Simácek, Tomás Vojnar |
Formal Methods Syst. Des. | 5 |
| 2012 | Abstract regular (tree) model checking
Ahmed Bouajjani, Peter Habermehl, Adam Rogalewicz, Tomás Vojnar |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2011 | Efficient Inclusion Checking on Explicit and Semi-symbolic Tree Automata
Lukás Holík, Ondrej Lengál, Jirí Simácek, Tomás Vojnar |
ATVA | 4 |
| 2011 | Predator: A Practical Tool for Checking Manipulation of Dynamic Data Structures Using Separation Logic
Kamil Dudka, Petr Peringer, Tomás Vojnar |
CAV | 3 |
| 2011 | Forest Automata for Verification of Heap Manipulation
Peter Habermehl, Lukás Holík, Adam Rogalewicz, Jirí Simácek, Tomás Vojnar |
CAV | 5 |
| 2011 | Advanced Ramsey-Based Büchi Automata Inclusion Testing
Parosh Aziz Abdulla, Yu-Fang Chen 0001, Lorenzo Clemente, Lukás Holík, Chih-Duo Hong, Richard Mayr, Tomás Vojnar |
CONCUR | 7 |
| 2011 | DA-BMC: A Tool Chain Combining Dynamic Analysis and Bounded Model Checking
Jan Fiedor, Vendula Hrubá, Bohuslav Krena, Tomás Vojnar |
RV | 4 |
| 2011 | Coverage Metrics for Saturation-Based and Search-Based Testing of Concurrent Software
Bohuslav Krena, Zdenek Letko, Tomás Vojnar |
RV | 3 |
| 2011 | Efficient Algorithms for Handling Nondeterministic Automata
Tomás Vojnar |
SOFSEM | 1 |
| 2011 | Programs with lists are counter automata
Ahmed Bouajjani, Marius Bozga, Peter Habermehl, Radu Iosif, Pierre Moro, Tomás Vojnar |
Formal Methods Syst. Des. | 6 |
| 2010 | Simulation Subsumption in Ramsey-Based Büchi Automata Universality and Inclusion Testing
Parosh Aziz Abdulla, Yu-Fang Chen 0001, Lorenzo Clemente, Lukás Holík, Chih-Duo Hong, Richard Mayr, Tomás Vojnar |
CAV | 7 |
| 2010 | When Simulation Meets Antichains
Parosh Aziz Abdulla, Yu-Fang Chen 0001, Lukás Holík, Richard Mayr, Tomás Vojnar |
TACAS | 5 |
| 2010 | Automata-based verification of programs with tree updates
Peter Habermehl, Radu Iosif, Tomás Vojnar |
Acta Informatica | 3 |
| 2009 | Automatic Verification of Integer Array ProgramsabstractWe provide a verification technique for a class of programs working on integer arrays of finite, but not a priori bounded length. We use the logic of integer arrays SIL [13] to specify pre- and post-conditions of programs and their parts. Effects of non-looping parts of code are computed syntactically on the level of SIL. Loop pre-conditions derived during the computation in SIL are converted into counter automata (CA). Loops are automatically translated—purely on the syntactical level—to transducers. Pre-condition CA and transducers are composed, and the composition over-approximated by flat automata with difference bound constraints, which are next converted back into SIL formulae, thus inferring post-conditions of the loops. Finally, validity of post-conditions specified by the user in SIL may be checked as entailment is decidable for SIL. Marius Bozga, Peter Habermehl, Radu Iosif, Filip Konecný, Tomás Vojnar |
CAV | 5 |
| 2009 | Mediating for Reduction (on Minimizing Alternating Büchi Automata)abstractWe propose a new approach for minimizing alternating B\"uchi automata (ABA). The approach is based on the so called \emph{mediated equivalence} on states of ABA, which is the maximal equivalence contained in the so called \emph{mediated preorder}. Two states $p$ and $q$ can be related by the mediated preorder if there is a~\emph{mediator} (mediating state) which forward simulates $p$ and backward simulates $q$. Under some further conditions, letting a computation on some word jump from $q$ to $p$ (due to they get collapsed) preserves the language as the automaton can anyway already accept the word without jumps by runs through the mediator. We further show how the mediated equivalence can be computed efficiently. Finally, we show that, compared to the standard forward simulation equivalence, the mediated equivalence can yield much more significant reductions when applied within the process of complementing B\"uchi automata where ABA are used as an intermediate model. Parosh Aziz Abdulla, Yu-Fang Chen 0001, Lukás Holík, Tomás Vojnar |
FSTTCS | 4 |
| 2009 | A Concurrency Testing Tool and Its Plug-Ins for Dynamic Analysis and Runtime Healing
Bohuslav Krena, Zdenek Letko, Yarden Nir-Buchbinder, Rachel Tzoref, Shmuel Ur, Tomás Vojnar |
RV | 6 |
| 2008 | What Else Is Decidable about Integer Arrays?
Peter Habermehl, Radu Iosif, Tomás Vojnar |
FoSSaCS | 3 |
| 2008 | A Logic of Singly Indexed Arrays
Peter Habermehl, Radu Iosif, Tomás Vojnar |
LPAR | 3 |
| 2008 | Computing Simulations over Tree Automata
Parosh Aziz Abdulla, Ahmed Bouajjani, Lukás Holík, Lisa Kaati, Tomás Vojnar |
TACAS | 5 |
| 2008 | Composed Bisimulation for Tree Automata
Parosh Aziz Abdulla, Ahmed Bouajjani, Lukás Holík, Lisa Kaati, Tomás Vojnar |
CIAA | 5 |
| 2008 | Antichain-Based Universality and Inclusion Testing over Nondeterministic Finite Tree Automata
Ahmed Bouajjani, Peter Habermehl, Lukás Holík, Tayssir Touili, Tomás Vojnar |
CIAA | 5 |
| 2008 | Verification of parametric concurrent systems with prioritised FIFO resource management
Ahmed Bouajjani, Peter Habermehl, Tomás Vojnar |
Formal Methods Syst. Des. | 3 |
| 2007 | Proving Termination of Tree Manipulating Programs
Peter Habermehl, Radu Iosif, Adam Rogalewicz, Tomás Vojnar |
ATVA | 4 |
| 2007 | Generalised multi-pattern-based verification of programs with linear linked structuresabstractAbstract The paper deals with the problem of automatic verification of programs working with extended linear linked dynamic data structures, in particular, pattern-based verification is considered. In this approach, one can abstract memory configurations by abstracting away the exact number of adjacent occurrences of certain memory patterns. With respect to the previous work on the subject the method presented in the paper has been extended to be able to handle multiple patterns, which allows for verification of programs working with more types of structures and/or with structures with irregular shapes. The experimental results obtained from a prototype implementation of the method show that the method is very competitive and offers a big potential for future extensions. Milan Ceska 0001, Pavel Erlebach, Tomás Vojnar |
Formal Aspects Comput. | 3 |
| 2006 | Programs with Lists Are Counter Automata
Ahmed Bouajjani, Marius Bozga, Peter Habermehl, Radu Iosif, Pierre Moro, Tomás Vojnar |
CAV | 6 |
| 2006 | Abstract Regular Tree Model Checking of Complex Dynamic Data Structures
Ahmed Bouajjani, Peter Habermehl, Adam Rogalewicz, Tomás Vojnar |
SAS | 4 |
| 2006 | Automata-Based Verification of Programs with Tree Updates
Peter Habermehl, Radu Iosif, Tomás Vojnar |
TACAS | 3 |
| 2005 | Verifying Programs with Dynamic 1-Selector-Linked Structures in Regular Model Checking
Ahmed Bouajjani, Peter Habermehl, Pierre Moro, Tomás Vojnar |
TACAS | 4 |
| 2004 | Abstract Regular Model Checking
Ahmed Bouajjani, Peter Habermehl, Tomás Vojnar |
CAV | 3 |
| 2003 | Verification of Parametric Concurrent Systems with Prioritized FIFO Resource Management
Ahmed Bouajjani, Peter Habermehl, Tomás Vojnar |
CONCUR | 3 |
| 1998 | Object-oriented Petri nets, their simulation, and analysisabstractThe article presents the so-called object-oriented Petri nets (OOPNs) combining advantages of Petri nets and object-orientation. OOPNs are described mostly informally, but the key concepts of their formal definition are also included. Furthermore, the computer-aided tool called PNtalk which supports editing and simulating OOPNs is briefly mentioned, too. Finally, problems accompanying formal analysis of OOPNs, stemming from the high dynamism of models based on them, are discussed. Milan Ceska 0001, Vladimír Janousek, Tomás Vojnar |
SMC | 3 |