Viktor Malík

dblp:217/4849 · DBLP profile ↗
← Back
5ranked-venue papers
5as first author
2since 2021 · last 2023
0000-0002-0608-0748ORCID · verified

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

Software engineering, systems software and programming languages · 5 · 5 first-author · 2 since 2021Theory of computation · 1 · 1 first-author
YearPublicationVenuePosition
2023 2LS: Arrays and Loop Unwinding - (Competition Contribution)
abstract
Abstract 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)1
2021 Automatically Checking Semantic Equivalence between Versions of Large-Scale C Projects
abstract
Motivated 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
ICST1
2020 2LS: Heap Analysis and Memory Safety - (Competition Contribution)
abstract
Abstract 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)1
2018 Template-Based Verification of Heap-Manipulating Programs
abstract
We 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
FMCAD1
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)1