Antti Eero Johannes Hyvärinen

dblp:50/5894 · also Antti E. J. Hyvärinen · DBLP profile ↗
← Back
37ranked-venue papers
9as first author
9since 2021 · last 2026
0000-0001-6672-5109ORCID · corroborated

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

Software engineering, systems software and programming languages · 21 · 2 first-author · 6 since 2021Theory of computation · 19 · 8 first-author · 4 since 2021Artificial intelligence and machine learning · 11 · 7 first-authorSystems, architecture and hardware · 2 · 1 since 2021Security and privacy · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2026 Parallel SMT Solving via Iterative Tree Partitioning
abstract
We present a novel algorithm for parallel solving of SMT problems based on a partitioning process that divides the original problem into a tree structure in an iterative way. By enabling node revisiting, the new method addresses the problem of partitioning divergence found in prior approaches that frequently leads to longer runtimes compared to sequential results. The resulting algorithm is highly flexible, offers a combination of partitioning, portfolio solving, and clause sharing, allows the use of various partitioning functions, and scales gracefully with the available resources. We implemented the new approach in the tool SMTS on top of the efficient sequential SMT solver OpenSMT . Our experimental results demonstrate a substantial improvement over OpenSMT in logics QF_LRA and QF_LIA even when the partitioning approach utilizes just a single solver. Notably, SMTS has consistently dominated several divisions of the annual competition of parallel SMT solvers.
Tomás Kolárik, Antti Eero Johannes Hyvärinen, Seyedmasoud Asadzadeh, Natasha Sharygina
TACAS (1)2
2023 A Solicitous Approach to Smart Contract Verification
abstract
Smart contracts are tempting targets of attacks, as they often hold and manipulate significant financial assets, are immutable after deployment, and have publicly available source code, with assets estimated in the order of millions of dollars being lost in the past due to vulnerabilities. Formal verification is thus a necessity, but smart contracts challenge the existing highly efficient techniques routinely applied in the symbolic verification of software, due to specificities not present in general programming languages. A common feature of existing works in this area is the attempt to reuse off-the-shelf verification tools designed for general programming languages. This reuse can lead to inefficiency and potentially unsound results, as domain translation is required. In this article, we describe a carefully crafted approach that directly models the central aspects of smart contracts natively, going from the contract to its logical representation without intermediary steps. We use the expressive and highly automatable logic of constrained Horn clauses for modeling and instantiate our approach to the Solidity language. A tool implementing our approach, called Solicitous , was developed and integrated into the SMTChecker module of the Solidity compiler solc. We evaluated our approach on an extensive benchmark set containing 22,446 real-world smart contracts deployed on the Ethereum blockchain over a 27-month period. The results show that our approach is able to establish safety of significantly more contracts than comparable, publicly available verification tools, with an order of magnitude increase in the percentage of formally verified contracts.
Rodrigo Otoni, Matteo Marescotti, Leonardo Alt, Patrick Eugster, Antti Eero Johannes Hyvärinen, Natasha Sharygina
ACM Trans. Priv. Secur.5
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)3
2022 Split Transition Power Abstraction for Unbounded Safety
Martin Blicha, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
FMCAD3
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)3
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.3
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.2
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
DAC4
2021 Lookahead in Partitioning SMT
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina
FMCAD1
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
FMCAD3
2020 Accurate Smart Contract Verification Through Direct Modelling
Matteo Marescotti, Rodrigo Otoni, Leonardo Alt, Patrick Eugster, Antti Eero Johannes Hyvärinen, Natasha Sharygina
ISoLA (3)5
2020 Farkas-Based Tree Interpolation
Sepideh Asadi, Martin Blicha, Antti Eero Johannes Hyvärinen, Grigory Fedyukovich, Natasha Sharygina
SAS3
2020 A Cooperative Parallelization Approach for Property-Directed k-Induction
Martin Blicha, Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina
VMCAI2
2019 Lattice-based SMT for program verification
abstract
We present a lattice-based satisfiability modulo theory for verification of programs with library functions, for which the mathematical libraries supporting these functions contain a high number of equations and inequalities. Common strategies for dealing with library functions include treating them as uninterpreted functions or using the theories under which the functions are fully defined. The full definition could in most cases lead to instances that are too large to solve efficiently.
Karine Even-Mendoza, Antti Eero Johannes Hyvärinen, Hana Chockler, Natasha Sharygina
MEMOCODE2
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)2
2019 Exploiting partial variable assignment in interpolation-based model checking
Pavel Jancík, Jan Kofron, Leonardo Alt, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
Formal Methods Syst. Des.5
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)3
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
LPAR4
2018 Lookahead-Based SMT Solving
abstract
The lookahead approach for binary-tree-based search in constraint solving favors branching that provide the lowest upper bound for the remaining search space. The approach has recently been applied in instance partitioning in divide-and-conquer-based parallelization, but in general its connection to modern, clause-learning solvers is poorly understood. We show two ways of combining lookahead approach with a modern DPLL(T)-based SMT solver fully profiting from theory propagation, clause learning, and restarts. Our thoroughly tested prototype implementation is surprisingly efficient as an independent SMT solver on certain instances, in particular when applied to a non-convex theory, where the lookahead-based implementation solves 40% more unsatisfiable instances compared to the standard implementation.
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Parvin Sadigova, Hana Chockler, Natasha Sharygina
LPAR1
2018 SMTS: Distributed, Visualized Constraint Solving
abstract
The inherent complexity of parallel computing makes development, resource monitor- ing, and debugging for parallel constraint-solving-based applications difficult. This paper presents SMTS, a framework for parallelizing sequential constraint solving algorithms and running them in distributed computing environments. The design (i) is based on a gen- eral parallelization technique that supports recursively combining algorithm portfolios and divide-and-conquer with the exchange of learned information, (ii) provides monitoring by visually inspecting the parallel execution steps, and (iii) supports interactive guidance of the algorithm through a web interface. We report positive experiences on instantiating the framework for one SMT solver and one IC3 solver, debugging parallel executions, and visualizing solving, structure, and learned clauses of SMT instances.
Matteo Marescotti, Antti Eero Johannes Hyvärinen, Natasha Sharygina
LPAR2
2017 Duality-based interpolation for quantifier-free equalities and uninterpreted functions
abstract
Interpolating, i.e., computing safe over-approximations for a system represented by a logical formula, is at the core of symbolic model-checking. One of the central tools in modeling programs is the use of the equality logic and uninterpreted functions (EUF), but certain aspects of its interpolation, such as size and the logical strength, are still relatively little studied. In this paper we present a solid framework for building compact, strength-controlled interpolants, prove its strength and size properties on EUF, implement and combine it with a propositional interpolation system and integrate the implementation into a model checker. We report encouraging results on using the interpolants both in a controlled setting and in the model checker. Based on the experimentation the presented techniques have potentially a big impact on the final interpolant size and the number of counter-example-guided refinements.
Leonardo Alt, Antti Eero Johannes Hyvärinen, Sepideh Asadi, Natasha Sharygina
FMCAD2
2017 Designing parallel PDR
abstract
Property Directed Reachability (PDR) is an efficient model checking technique. However, the intrinsic high computational complexity prevents PDR from meeting the challenges of real world verification. To address this problem, this paper introduces the parallel algorithm P3 based on: 1) partitioning of the input problem, 2) exchanging of learned reachability information, and 3) using algorithm portfolios. The generic nature of the proposed techniques makes them immediately suitable for software verification. This paper investigates the benefits of these techniques while taken individually and when combined together, implemented using distributed computing environment on top of the SMT-based software model checker Spacer. In our experiments over SV-COMP benchmarks we observe up to an order of magnitude speedup with respect to the sequential implementation with twice as many instances solved within a timeout.
Matteo Marescotti, Arie Gurfinkel, Antti Eero Johannes Hyvärinen, Natasha Sharygina
FMCAD3
2017 Theory Refinement for Program Verification
Antti Eero Johannes Hyvärinen, Sepideh Asadi, Karine Even-Mendoza, Grigory Fedyukovich, Hana Chockler, Natasha Sharygina
SAT1
2017 HiFrog: SMT-based Function Summarization for Software Verification
Leonardo Alt, Sepideh Asadi, Hana Chockler, Karine Even-Mendoza, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
TACAS (2)6
2016 Clause Sharing and Partitioning for Cloud-Based SMT Solving
Matteo Marescotti, Antti Eero Johannes Hyvärinen, Natasha Sharygina
ATVA2
2016 PVAIR: Partial Variable Assignment InterpolatoR
Pavel Jancík, Leonardo Alt, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Jan Kofron, Natasha Sharygina
FASE4
2016 OpenSMT2: An SMT Solver for Multi-core and Cloud Computing
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Leonardo Alt, Natasha Sharygina
SAT1
2015 Symbolic Detection of Assertion Dependencies for Bounded Model Checking
Grigory Fedyukovich, Andrea Callia D'Iddio, Antti Eero Johannes Hyvärinen, Natasha Sharygina
FASE3
2015 Search-Space Partitioning for Parallelizing SMT Solvers
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina
SAT1
2014 Verification-aided regression testing
abstract
In this paper we present Verification-Aided Regression Testing (VART), a novel extension of regression testing that uses model checking to increase the fault revealing capability of existing test suites. The key idea in VART is to extend the use of test case executions from the conventional direct fault discovery to the generation of behavioral properties specific to the upgrade, by (i) automatically producing properties that are proved to hold for the base version of a program, (ii) automatically identifying and checking on the upgraded program only the properties that, according to the developers’ intention, must be preserved by the upgrade, and (iii) reporting the faults and the corresponding counter-examples that are not revealed by the regression tests. Our empirical study on both open source and industrial software systems shows that VART automatically produces properties that increase the effectiveness of testing by automatically detecting faults unnoticed by the existing regression test suites.
Fabrizio Pastore, Leonardo Mariani, Antti Eero Johannes Hyvärinen, Grigory Fedyukovich, Natasha Sharygina, Stephan Sehestedt
ISSTA3
2013 Interpolation-based model checking for efficient incremental analysis of software
abstract
Verification based on model checking has recently obtained an important role in certain software engineering tasks, such as developing operating system device drivers. This extended abstract discusses how model checking can be made more efficient by using the structure from program function calls. We use this idea in two orthogonal ways, both of which fundamentally depend on automatically summarizing the relevant behavior of the function calls based on an earlier verification. The first approach assumes a piece of software needs to be verified with respect to a set of properties, whereas the second approach considers a case where an early version of a software has been verified but needs to be re-verified after an upgrade. These techniques have been implemented in tools FunFrog and eVolCheck for verifying C programs. Both of them have been tested on a range of academic and industrial benchmarks, and provide in many cases an order of magnitude speed-up with respect to the baseline. They seem to scale to programs with thousands of lines of code.
Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
DDECS2
2013 PeRIPLO: A Framework for Producing Effective Interpolants in SAT-Based Software Verification
Simone Rollini, Leonardo Alt, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina
LPAR4
2012 Designing Scalable Parallel SAT Solvers
Antti Eero Johannes Hyvärinen, Norbert Manthey
SAT1
2011 Grid-Based SAT Solving with Iterative Partitioning and Clause Learning
Antti Eero Johannes Hyvärinen, Tommi A. Junttila, Ilkka Niemelä
CP1
2011 Partitioning Search Spaces of a Randomized Search
abstract
This paper studies the following question: given an instance of the propositional satisfiability problem, a randomized satisfiability solver, and a cluster of n computers, what is the best way to use the computers to solve the instance? Two approache
Antti Eero Johannes Hyvärinen, Tommi A. Junttila, Ilkka Niemelä
Fundam. Informaticae1
2008 Using the Grid for Enhancing the Performance of a Medical Image Search Engine
abstract
In this paper we show how grid computing can be used to improve the operation of a medical image search system. The paper introduces the basic principles of a content-based image retrieval (CBIR) system and identifies the computationally challenging tasks in the system. For the computationally challenging tasks an efficient design is proposed that uses distributed grid computing to carry out the image processing in a distributed and efficient way. The algorithms of the search system are executed by using a real medical image collection as input and a grid computing infrastructure to provide the needed computing power. Finally, the results show how the image processing task that required tens of hours to complete can be processed by using only a fraction of the originally required computing time.
Mikko Juhani Pitkänen, Xin Zhou 0002, Antti Eero Johannes Hyvärinen, Henning Müller
CBMS3
2006 A Distribution Method for Solving SAT in Grids
Antti Eero Johannes Hyvärinen, Tommi A. Junttila, Ilkka Niemelä
SAT1