Martin Blicha

dblp:228/7239 · DBLP profile ↗
← Back
23ranked-venue papers
9as first author
17since 2021 · last 2026
0000-0001-8140-4098ORCID · verified

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

Software engineering, systems software and programming languages · 18 · 8 first-author · 13 since 2021Theory of computation · 13 · 4 first-author · 11 since 2021Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 since 2021
YearPublicationVenuePosition
2026 PyCHC: A Framework for Certified Horn Solving and CHC-Based Design
abstract
Abstract We present PyCHC , a solver-agnostic framework aimed at systems of constrained Horn clauses (CHC). PyCHC provides intuitive Python APIs to create and manipulate CHC systems programmatically, and solve them using different backend solvers. Furthermore, PyCHC offers a certification pipeline to validate the correctness of results reported by the CHC solvers, via the use of independent satisfiability modulo theories (SMT) solvers and proof checkers. We present our framework’s architecture and features, and demonstrate how it enables rapid prototyping of new CHC-based algorithms and experimentation with novel strategies for cooperative solving. We used PyCHC to validate the results of the Eldarica , Golem , and Z3-Spacer solvers on CHC-COMP benchmarks, finding several issues across different tool versions.
Anna Becchi, Martin Blicha, Rodrigo Otoni, Natasha Sharygina
CAV (3)2
2026 Hornix: From LLVM IR to Constrained Horn Clauses and Back (Competition Contribution)
Martin Blicha, Jan Kofron, Oliver Glitta
TACAS (2)1
2026 Analyzing multiloop programs with Golem
Konstantin Britikov, Martin Blicha, Natasha Sharygina, Grigory Fedyukovich
Sci. Comput. Program.2
2025 Space Explanations of Neural Network Classification
abstract
Abstract We present a novel logic-based concept called Space Explanations for classifying neural networks that gives provable guarantees of the behavior of the network in continuous areas of the input feature space. To automatically generate space explanations, we leverage a range of flexible Craig interpolation algorithms and unsatisfiable core generation. Based on real-life case studies, ranging from small to medium to large size, we demonstrate that the generated explanations are more meaningful than those computed by state-of-the-art.
Faezeh Labbaf, Tomás Kolárik, Martin Blicha, Grigory Fedyukovich, Michael Wand 0002, Natasha Sharygina
CAV (3)3
2025 Unsatisfiability Proofs for Horn Solving
abstract
Abstract Many verification tools currently rely on logic solvers as backend reasoning engines. Despite playing such a pivotal role, bugs are not uncommon in the complex codebases of these solvers. Validating their results is thus critical, with correctness witnesses often being used for this end. Output validation for constrained Horn clauses (CHC) solvers is not a well explored topic though, especially in regards to unsatisfiability results. This is a significant issue, given that CHC solvers are being increasingly employed in verification tooling. To address it, we propose an approach to validate CHC unsatisfiability results based on independently checkable proofs. Our approach is generic in regards to the solving algorithm, preprocessing steps, and exact proof format used, and works by first producing a coarse-grained proof during solving and then instantiating it into a suitable proof format by adding missing details, at which point the instantiated proof can be checked by an independent proof checker. We instrumented a state-of-the-art CHC solver to generate proofs in the Alethe format and performed a large-scale evaluation. Our results indicate that proofs can be produced with minimal overhead, can be efficiently checked, and have tractable sizes.
Rodrigo Otoni, Martin Blicha, Matias Barandiaran Rivera, Patrick Eugster, Jan Kofron, Natasha Sharygina
TACAS (2)2
2025 Validation of CHC Satisfiability with ATHENA
abstract
Formal verification tooling increasingly relies on logic solvers as automated reasoning engines. A commonality among these solvers is the high complexity of their codebases, which makes bug occurrence disturbingly frequent. Tool competitions have showcased many examples of state-of-the-art solvers disagreeing on the satisfiability of logic formulas, be it solvers for Boolean satisfiability (SAT), satisfiability modulo theories (SMT), or constrained Horn clauses (CHC). The validation of solvers’ results is thus of paramount importance, in order to increase the confidence not only in the solvers themselves but also in the tooling which they underpin. Among the formalisms commonly used by modern verification tools, CHC is one that has seen, at the same time, extensive practical usage and very little effort in result validation. We propose a two-layered validation approach for witnesses of CHC satisfiability that validates CHC models via proof-backed SMT queries. We developed a modular evaluation framework, ATHENA, and assessed the approach’s viability via large scale experimentation, comparing three CHC solvers, five SMT solvers, and five proof checkers. Our results indicate that the approach is feasible, with the potential to be incorporated into CHC-based tooling, and also confirm the need for validation, with fourteen bugs being found in the tools used.
Rodrigo Otoni, Martin Blicha, Patrick Eugster, Natasha Sharygina
Formal Aspects Comput.2
2025 Golem: a flexible and efficient solver for constrained Horn clauses
abstract
The logical framework of Constrained Horn Clauses (CHC) models verification tasks from a variety of domains, ranging from verification of safety properties in transition systems to modular verification of programs with procedures. In this work we present Golem, a flexible and efficient solver for satisfiability of CHCs over linear real and integer arithmetic. Golem provides flexibility with modular architecture and multiple back-end model-checking algorithms, as well as efficiency with tight integration with the underlying SMT solver. This paper describes the architecture of Golem and its back-end engines, which include our recently introduced model-checking algorithm TPA for deep exploration. The description is complemented by extensive evaluation, demonstrating the competitive nature of the solver.
Martin Blicha, Konstantin Britikov, Natasha Sharygina
Formal Methods Syst. Des.1
2024 Reachability Analysis for Multiloop Programs Using Transition Power Abstraction
abstract
Abstract A wide variety of algorithms is employed for the reachability analysis of programs with loops but most of them are restricted to single loop programs. Recently a new technique called Transition Power Abstraction (TPA) showed promising results for safety checks of software. In contrast to many other techniques TPA efficiently handles loops with a large number of iterations. This paper introduces an algorithm that enables the effective use of TPA for analysis of multiloop programs. The TPA-enabled loop analysis reduces the dependency on the number of possible iterations. Our approach analyses loops in a modular manner and both computes and uses transition invariants incrementally, making program analysis efficient. The new algorithm is implemented in the Golem solver. Conducted experiments demonstrate that this approach outperforms the previous implementation of TPA and other competing tools on a wide range of multiloop benchmarks.
Konstantin Britikov, Martin Blicha, Natasha Sharygina, Grigory Fedyukovich
FM (1)2
2024 The FMCAD 2024 Student Forum
Martin Blicha, Nestan Tsiskaridze
FMCAD1
2023 The Golem Horn Solver
abstract
Abstract The logical framework of Constrained Horn Clauses (CHC) models verification tasks from a variety of domains, ranging from verification of safety properties in transition systems to modular verification of programs with procedures. In this work we present Golem, a flexible and efficient solver for satisfiability of CHC over linear real and integer arithmetic. Golem provides flexibility with modular architecture and multiple back-end model-checking algorithms, as well as efficiency with tight integration with the underlying SMT solver. This paper describes the architecture of Golem and its back-end engines, which include our recently introduced model-checking algorithm TPA for deep exploration. The description is complemented by extensive evaluation, demonstrating the competitive nature of the solver.
Martin Blicha, Konstantin Britikov, Natasha Sharygina
CAV (2)1
2023 CHC Model Validation with Proof Guarantees
Rodrigo Otoni, Martin Blicha, Patrick Eugster, Natasha Sharygina
iFM2
2022 SolCMC: Solidity Compiler's Model Checker
abstract
Abstract Formally verifying smart contracts is important due to their immutable nature, usual open source licenses, and high financial incentives for exploits. Since 2019 the Ethereum Foundation’s Solidity compiler ships with a model checker. The checker, called SolCMC, has two different reasoning engines and tracks closely the development of the Solidity language. We describe SolCMC’s architecture and use from the perspective of developers of both smart contracts and tools for software verification, and show how to analyze nontrivial properties of real life contracts in a fully automated manner.
Leonardo Alt, Martin Blicha, Antti Eero Johannes Hyvärinen, Natasha Sharygina
CAV (1)2
2022 Split Transition Power Abstraction for Unbounded Safety
Martin Blicha, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
FMCAD1
2022 Transition Power Abstractions for Deep Counterexample Detection
abstract
Abstract While model checking safety of infinite-state systems by inferring state invariants has steadily improved recently, most verification tools still rely on a technique based on bounded model checking to detect safety violations. In particular, the current techniques typically analyze executions by unfolding transitions one step at a time, and the slow growth of execution length prevents detection of deep counterexamples before the tool reaches its limits on computations. We propose a novel model-checking algorithm that is capable of both proving unbounded safety and finding long counterexamples. The idea is to use Craig interpolation to guide the creation of symbolic abstractions ofexponentially longer sequences of transitions. Our experimental analysis shows that on unsafe benchmarks with deep counterexamples our implementation can detect faulty executions that are at least an order of magnitude longer than those detectable by the state-of-the-art tools.
Martin Blicha, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
TACAS (1)1
2022 SMT-based verification of program changes through summary repair
abstract
This article provides an innovative approach for verification by model checking of programs that undergo continuous changes. To tackle the problem of repeating the entire model checking for each new version of the program, our approach verifies programs incrementally. It reuses computational history of the previous program version, namely function summaries. In particular, the summaries are over-approximations of the bounded program behaviors. Whenever reusing of summaries is not possible straight away, our algorithm repairs the summaries to maximize the chance of reusability of them for subsequent runs. We base our approach on satisfiability modulo theories (SMT) to take full advantage of lightweight modeling approach and at the same time the ability to provide concise function summarization. Our approach leverages pre-computed function summaries in SMT to localize the checks of changed functions. Furthermore, to exploit the trade-off between precision and performance, our approach relies on the use of an SMT solver, not only for underlying reasoning, but also for program modeling and the adjustment of its precision. On the benchmark suite of primarily Linux device drivers versions, we demonstrate that our algorithm achieves an order of magnitude speedup compared to prior approaches.
Sepideh Asadi, Martin Blicha, Antti Eero Johannes Hyvärinen, Grigory Fedyukovich, Natasha Sharygina
Formal Methods Syst. Des.2
2022 Using linear algebra in decomposition of Farkas interpolants
abstract
Abstract The use of propositional logic and systems of linear inequalities over reals is a common means to model software for formal verification. Craig interpolants constitute a central building block in this setting for over-approximating reachable states, e.g. as candidates for inductive loop invariants. Interpolants for a linear system can be efficiently computed from a Simplex refutation by applying the Farkas’ lemma. However, these interpolants do not always suit the verification task—in the worst case, they can even prevent the verification algorithm from converging. This work introduces the decomposed interpolants, a fundamental extension of the Farkas interpolants, obtained by identifying and separating independent components from the interpolant structure, using methods from linear algebra. We also present an efficient polynomial algorithm to compute decomposed interpolants and analyse its properties. We experimentally show that the use of decomposed interpolants in model checking results in immediate convergence on instances where state-of-the-art approaches diverge. Moreover, since being based on the efficient Simplex method, the approach is very competitive in general.
Martin Blicha, Antti Eero Johannes Hyvärinen, Jan Kofron, Natasha Sharygina
Int. J. Softw. Tools Technol. Transf.1
2021 Theory-Specific Proof Steps Witnessing Correctness of SMT Executions
abstract
Ensuring hardware and software correctness increasingly relies on the use of symbolic logic solvers, in particular for satisfiability modulo theories (SMT). However, building efficient and correct SMT solvers is difficult: even state-of-the-art solvers disagree on instance satisfiability. This work presents a system for witnessing unsatisfiability of instances of NP problems, commonly appearing in verification, in a way that is natural to SMT solving. Our implementation of the system seems to often result in significantly smaller witnesses, lower solving overhead, and faster checking time in comparison to existing proof formats that can serve a similar purpose.
Rodrigo Otoni, Martin Blicha, Patrick Eugster, Antti Eero Johannes Hyvärinen, Natasha Sharygina
DAC2
2020 Incremental Verification by SMT-based Summary Repair
abstract
We present UPPROVER, a bounded model checker designed to incrementally verify software while it is being gradually developed, refactored, or optimized.In contrast to its predecessor, a SAT-based tool EVOLCHECK, our tool exploits first-order theories available in SMT solvers, offering two more levels of encoding precision: linear arithmetic and uninterpreted functions, thus allowing a trade-off between precision and performance.Algorithmically UPPROVER is based on the reuse and repair of interpolation-based function summaries from one software version to another.UPPROVER leverages treeinterpolation systems in SMT to localize and speed up the checks of new versions.UPPROVER demonstrates an order of magnitude speedup on large-scale programs in comparison to EVOLCHECK and HIFROG, a non-incremental bounded model checker.
Sepideh Asadi, Martin Blicha, Antti Eero Johannes Hyvärinen, Grigory Fedyukovich, Natasha Sharygina
FMCAD2
2020 Farkas-Based Tree Interpolation
Sepideh Asadi, Martin Blicha, Antti Eero Johannes Hyvärinen, Grigory Fedyukovich, Natasha Sharygina
SAS2
2020 A Cooperative Parallelization Approach for Property-Directed k-Induction
Martin Blicha, Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina
VMCAI1
2019 Decomposing Farkas Interpolants
abstract
Modern verification commonly models software with Boolean logic and a system of linear inequalities over reals and over-approximates the reachable states of the model with Craig interpolation to obtain, for example, candidates for inductive invariants. Interpolants for the linear system can be efficiently constructed from a Simplex refutation by applying the Farkas’ lemma. However, Farkas interpolants do not always suit the verification task and in the worst case they may even be the cause of divergence of the verification algorithm. This work introduces the decomposed interpolants, a fundamental extension of the Farkas interpolants obtained by identifying and separating independent components from the interpolant structure using methods from linear algebra. We integrate our approach to the model checker Sally and show experimentally that a portfolio of decomposed interpolants results in immediate convergence on instances where state-of-the-art approaches diverge. Being based on the efficient Simplex method, the approach is very competitive also outside these diverging cases.
Martin Blicha, Antti Eero Johannes Hyvärinen, Jan Kofron, Natasha Sharygina
TACAS (1)1
2018 Computing Exact Worst-Case Gas Consumption for Smart Contracts
Matteo Marescotti, Martin Blicha, Antti Eero Johannes Hyvärinen, Sepideh Asadi, Natasha Sharygina
ISoLA (4)2
2018 Function Summarization Modulo Theories
abstract
SMT-based program verification can achieve high precision using bit-precise models or combinations of different theories. Often such approaches suffer from problems related to scalability due to the complexity of the underlying decision procedures. Precision is traded for performance by increasing the abstraction level of the model. As the level of abstraction increases, missing important details of the program model becomes problematic. In this paper we address this problem with an incremental verification approach that alternates precision of the program modules on demand. The idea is to model a program using the lightest possible (i.e., less expensive) theories that suffice to verify the desired property. To this end, we employ safe over-approximations for the program based on both function summaries and light-weight SMT theories. If during verification it turns out that the precision is too low, our approach lazily strengthens all affected summaries or the theory through an iterative refinement procedure. The resulting summarization framework provides a natural and light-weight approach for carrying information between different theories. An experimental evaluation with a bounded model checker for C on a wide range of benchmarks demonstrates that our approach scales well, often effortlessly solving instances where the state-of-the-art model checker CBMC runs out of time or memory.
Sepideh Asadi, Martin Blicha, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Karine Even-Mendoza, Natasha Sharygina, Hana Chockler
LPAR2