VLDB 2026 Research / reviewers in the wild / expert
Henrich Lauko
dblp:178/2897
· DBLP profile ↗
10ranked-venue papers
4as first author
3since 2021 · last 2022
0000-0002-5422-5884ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 3 first-author · 3 since 2021Theory of computation · 2 · 1 first-author · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | From Spot 2.0 to Spot 2.10: What's New?abstractAbstract Spot is a C++17 library for LTL and $$\omega $$ ω -automata manipulation, with command-line utilities, and Python bindings. This paper summarizes its evolution over the past six years, since the release of Spot 2.0, which was the first version to support $$\omega $$ ω -automata with arbitrary acceptance conditions, and the last version presented at a conference. Since then, Spot has been extended with several features such as acceptance transformations, alternating automata, games, LTL synthesis, and more. We also shed some lights on the data-structure used to store automata. Artifact: https://zenodo.org/record/6521395 . Alexandre Duret-Lutz, Etienne Renault, Maximilien Colange, Florian Renkin, Alexandre Gbaguidi Aisse, Philipp Schlehuber-Caissier, Thomas Medioni, Jérôme Dubois, Clément Gillard, Henrich Lauko |
CAV (2) | 11 |
| 2022 | LART: Compiled Abstract Execution - (Competition Contribution)abstractAbstract lart – llvm abstraction and refinement tool – originates from the divine model-checker [5, 7], in which it was employed as an abstraction toolchain for the llvm interpreter. In this contribution, we present a stand-alone tool that does not need a verification backend but performs the verification natively. The core idea is to instrument abstract semantics directly into the program and compile it into a native binary that performs program analysis. This approach provides a performance gain of native execution over the interpreted analysis and allows compiler optimizations to be employed on abstracted code, further extending the analysis efficiency. Compilation-based abstraction introduces new challenges solved by lart, like domain interaction of concrete and abstract values simulation of nondeterministic runtime or constraint propagation. Henrich Lauko, Petr Rockai |
TACAS (2) | 1 |
| 2022 | Verification of Programs Sensitive to Heap LayoutabstractMost C and C++ programs use dynamically allocated memory (often known as a heap) to store and organize their data. In practice, it can be useful to compare addresses of different heap objects, for instance, to store them in a binary search tree or a sorted array. However, comparisons of pointers to distinct objects are inherently ambiguous: The address order of two objects can be reversed in different executions of the same program, due to the nature of the allocation algorithm and other external factors. This poses a significant challenge to program verification, since a sound verifier must consider all possible behaviors of a program, including an arbitrary reordering of the heap. A naive verification of all possibilities, of course, leads to a combinatorial explosion of the state space: For this reason, we propose an under-approximating abstract domain that can be soundly refined to consider all relevant heap orderings. We have implemented the proposed abstract domain and evaluated it against several existing software verification tools on a collection of pointer-manipulating programs. In many cases, existing tools only consider a single fixed heap order, which is a source of unsoundness. We demonstrate that using our abstract domain, this unsoundness can be repaired at only a very modest performance cost. Additionally, we show that, even though many verifiers ignore it, ambiguous behavior is present in a considerable fraction of programs from software verification competition ( sv-comp ). Henrich Lauko, Lukás Korencik, Petr Rockai |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 2020 | On Symbolic Execution of Decompiled ProgramsabstractIn this paper, we present a combination of existing and new tools that together make it possible to apply formal verification methods to programs in the form of ×86_64 machine code. Our approach first uses a decompilation tool (remill) to extract low-level intermediate representation (LLVM) from the machine code. This step consists of instruction translation (i.e. recovery of operation semantics), control flow extraction and address identification.The main contribution of this paper is the second step, which builds on data flow analysis and refinement of indirect (i.e. data-dependent) control flow. This step makes the processed bitcode much more amenable to formal analysis.To demonstrate the viability of our approach, we have compiled a set of benchmark programs into native executables and analysed them using two LLVM-based tools: DIVINE, a software model checker and KLEE, a symbolic execution engine. We have compared the outcomes to direct analysis of the same programs. Lukás Korencik, Petr Rockai, Henrich Lauko, Jiri Barnat |
QRS | 3 |
| 2019 | String Abstraction for Model Checking of C Programs
Agostino Cortesi, Henrich Lauko, Martina Olliaro, Petr Rockai |
SPIN | 2 |
| 2019 | Extending DIVINE with Symbolic Verification Using SMT - (Competition Contribution)abstractDIVINE is an LLVM -based verification tool focusing on analysis of real-world C and C++ programs. Such programs often interact with their environment, for example via inputs from users or network. When these programs are analyzed, it is desirable that the verification tool can deal with inputs symbolically and analyze runs for all inputs. In DIVINE , it is now possible to deal with input data via symbolic computation instrumented into the original program at the level of LLVM bitcode. Such an instrumented program maintains symbolic values internally and operates directly on them. Instrumentation allows us to enhance the tool with support for symbolic data without substantial modifications of the tool itself. Namely, this competition contribution uses SMT formulae for representation of input data. Henrich Lauko, Vladimír Still, Petr Rockai, Jiri Barnat |
TACAS (3) | 1 |
| 2018 | Symbolic Computation via Program Transformation
Henrich Lauko, Petr Rockai, Jiri Barnat |
ICTAC | 1 |
| 2017 | Model Checking of C and C++ with DIVINE 4
Zuzana Baranová, Jiri Barnat, Katarína Kejstová, Tadeás Kucera, Henrich Lauko, Jan Mrázek, Petr Rockai, Vladimír Still |
ATVA | 5 |
| 2017 | Optimizing and Caching SMT Queries in SymDIVINE - (Competition Contribution)
Jan Mrázek, Martin Jonás, Vladimír Still, Henrich Lauko, Jiri Barnat |
TACAS (2) | 4 |
| 2016 | SymDIVINE: Tool for Control-Explicit Data-Symbolic State Space Exploration
Jan Mrázek, Petr Bauch, Henrich Lauko, Jiri Barnat |
SPIN | 3 |