EDBT 2026 Demo / reviewers in the wild / expert
Natasha Sharygina
dblp:12/2269
· DBLP profile ↗
101ranked-venue papers
6as first author
23since 2021 · last 2026
0000-0002-8872-4913ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 68 · 4 first-author · 17 since 2021Theory of computation · 55 · 3 first-author · 14 since 2021Artificial intelligence and machine learning · 11 · 1 since 2021Systems, architecture and hardware · 7 · 1 since 2021Security and privacy · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | PyCHC: A Framework for Certified Horn Solving and CHC-Based DesignabstractAbstract 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) | 4 |
| 2026 | Interpreting Logical Explanations of Classifying Neural Networks
Fabrizio Leopardi, Faezeh Labbaf, Tomás Kolárik, Michael Wand 0002, Natasha Sharygina |
ESANN | 5 |
| 2026 | Formally Explaining Neural Network ClassificationabstractAbstract Neural networks (NNs) are the core of AI-based technologies. However, the degree of reliability in performing the task is an open problem. The explainability of a central task of NNs, classification, is of immense importance. While at the rise of AI-based reasoning, explainability of the NN classification has mostly been done using statistical methods, nowadays, a more reliable trend of formal logic-based methods is gaining popularity. The advantage of the formal approach is that it gives strict and provable guarantees of the classification. Formal methods is a mature field that has delivered a number of efficient computational solutions already applied in the analysis of software and hardware systems. Formal explainability methods naturally have the ability to reuse existing techniques and tools for a newly emerging field of formal explainability of NN classification. This paper surveys existing efforts to compute explanations of neural network classification based on logical abductive reasoning. The abduction approach is crucial for generalizing the results, capturing the underlying behavior of the classifier. We present the existing techniques as instances of a general formalization that allows contrasting them against each other. In addition, we discuss the issue of the quality of explanations, focusing on their key metrics and factors. As an illustrative example, the paper also presents a practical framework, SpEXplAIn , which automatically computes Space Explanations, the most general abduction-based explanations for classifying NNs with provable guarantees of the behavior of the network in continuous areas of the input feature space. The tool leverages an SMT solver compatible with a range of flexible Craig interpolation algorithms and unsatisfiable core generation, and is applicable to a wide range of applications. Tomás Kolárik, Grigory Fedyukovich, Faezeh Labbaf, Fabrizio Leopardi, Natasha Sharygina, Michael Wand 0002 |
FM (2) | 5 |
| 2026 | Parallel SMT Solving via Iterative Tree PartitioningabstractWe 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) | 4 |
| 2026 | Analyzing multiloop programs with Golem
Konstantin Britikov, Martin Blicha, Natasha Sharygina, Grigory Fedyukovich |
Sci. Comput. Program. | 3 |
| 2025 | Space Explanations of Neural Network ClassificationabstractAbstract 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) | 6 |
| 2025 | CHC-Based Reachability Analysis via Cycle Summarization
Konstantin Britikov, Grigory Fedyukovich, Natasha Sharygina |
iFM | 3 |
| 2025 | Unsatisfiability Proofs for Horn SolvingabstractAbstract 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) | 6 |
| 2025 | Validation of CHC Satisfiability with ATHENAabstractFormal 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. | 4 |
| 2025 | Golem: a flexible and efficient solver for constrained Horn clausesabstractThe 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. | 3 |
| 2024 | SolTG: A CHC-Based Solidity Test Case GeneratorabstractAbstract Achieving high test coverage is important when developing blockchain smart contracts, but it could be challenging without automated reasoning tools. In this paper, we present SolTG, an automated test case generator for Solidity based on constrained Horn clauses (CHC). SolTG exhaustively enumerates symbolic path constraints from the contract’s CHC representation and makes calls to the Satisfiability Modulo Theories (SMT) solver to find input values under which the contract exhibits the corresponding behavior. Test cases synthesized by SolTG have the form of a sequence of function calls over concrete values of input parameters which lead to a specific execution scenario. The tool supports multiple Solidity-specific features and is capable of exhibiting a high coverage for industrial-grade Solidity code. We present a detailed architecture of SolTG based on the existing translation of smart contracts into a CHC representation. We also present the experimental results for test generation on the regression and industrial benchmarks. Konstantin Britikov, Ilia Zlatkin, Grigory Fedyukovich, Leonardo Alt, Natasha Sharygina |
CAV (1) | 5 |
| 2024 | Reachability Analysis for Multiloop Programs Using Transition Power AbstractionabstractAbstract 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) | 3 |
| 2023 | The Golem Horn SolverabstractAbstract 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) | 3 |
| 2023 | CHC Model Validation with Proof Guarantees
Rodrigo Otoni, Martin Blicha, Patrick Eugster, Natasha Sharygina |
iFM | 4 |
| 2023 | Symbolic Model Checking for TLA+ Made FasterabstractAbstract The need to provide formal guarantees about the behaviour of the algorithms underpinning modern distributed systems became evident in recent years. This interest made apparent the complexities involved in applying verification techniques in a distributed setting, with significant effort being made in both academia and industry to aid in this endeavour. Many formalisms have been proposed to tackle the difficulties faced by practitioners, with one that has seen widespread use in industry being TLA $$^+$$ + , adopted, for instance, by Amazon Web Services. TLA $$^+$$ + provides engineers with a way of specifying both systems and desired properties, and is supported by a number of verification tools. Despite their extensive use, such tools suffer considerably from lack of scalability. To solve this, we propose a novel encoding of TLA $$^+$$ + into SMT constraints to improve symbolic model checking efficiency. Our insight is the need to provide the SMT solver with structural information about the TLA $$^+$$ + specification encoded, i.e., how data structures and their component elements interact, which we do by relying on the SMT theory of arrays. We implemented our approach by modifying the SMT-based model checker Apalache and evaluated it against comparable tools. Our results show that our approach outperforms existing ones on a number of benchmarks, with an order of magnitude improvement in checking time. Rodrigo Otoni, Igor Konnov 0001, Jure Kukovec, Patrick Eugster, Natasha Sharygina |
TACAS (1) | 5 |
| 2023 | A Solicitous Approach to Smart Contract VerificationabstractSmart 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. | 6 |
| 2022 | SolCMC: Solidity Compiler's Model CheckerabstractAbstract 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) | 4 |
| 2022 | Split Transition Power Abstraction for Unbounded Safety
Martin Blicha, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Natasha Sharygina |
FMCAD | 4 |
| 2022 | Transition Power Abstractions for Deep Counterexample DetectionabstractAbstract 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) | 4 |
| 2022 | SMT-based verification of program changes through summary repairabstractThis 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. | 5 |
| 2022 | Using linear algebra in decomposition of Farkas interpolantsabstractAbstract 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. | 4 |
| 2021 | Theory-Specific Proof Steps Witnessing Correctness of SMT ExecutionsabstractEnsuring 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 |
DAC | 5 |
| 2021 | Lookahead in Partitioning SMT
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina |
FMCAD | 3 |
| 2020 | Incremental Verification by SMT-based Summary RepairabstractWe 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 |
FMCAD | 5 |
| 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) | 6 |
| 2020 | Farkas-Based Tree Interpolation
Sepideh Asadi, Martin Blicha, Antti Eero Johannes Hyvärinen, Grigory Fedyukovich, Natasha Sharygina |
SAS | 5 |
| 2020 | A Cooperative Parallelization Approach for Property-Directed k-Induction
Martin Blicha, Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina |
VMCAI | 4 |
| 2019 | Lattice-based SMT for program verificationabstractWe 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 |
MEMOCODE | 4 |
| 2019 | Decomposing Farkas InterpolantsabstractModern 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) | 4 |
| 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. | 6 |
| 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) | 5 |
| 2018 | Function Summarization Modulo TheoriesabstractSMT-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 |
LPAR | 6 |
| 2018 | Lookahead-Based SMT SolvingabstractThe 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 |
LPAR | 5 |
| 2018 | SMTS: Distributed, Visualized Constraint SolvingabstractThe 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 |
LPAR | 3 |
| 2017 | Duality-based interpolation for quantifier-free equalities and uninterpreted functionsabstractInterpolating, 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 |
FMCAD | 4 |
| 2017 | Designing parallel PDRabstractProperty 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 |
FMCAD | 4 |
| 2017 | Theory Refinement for Program Verification
Antti Eero Johannes Hyvärinen, Sepideh Asadi, Karine Even-Mendoza, Grigory Fedyukovich, Hana Chockler, Natasha Sharygina |
SAT | 6 |
| 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) | 7 |
| 2017 | A Framework for the Verification of Parameterized Infinite-state SystemsabstractWe present our framework for the verification of parameterized infinite-state systems. The framework has been successfully applied in the verification of heterogeneous systems, ranging from distributed fault-tolerant protocols to programs handling unbounded data-structures. In such application doma ins, being able to infer quantified invariants is a mandatory requirement for successful results. Our framework differentiates itself from the state-of-the-art solutions targeting the generation of quantified safe inductive invariants: instead of monolitically exploiting a single static analysis technique, it is based on the effective integration of several analysis strategies. The paper targets the description of the engineering strategies adopted for a successful implementation of such an integrated framework, and presents the extensive experimental evaluation demonstrating its effectiveness. Francesco Alberti, Silvio Ghilardi, Natasha Sharygina |
Fundam. Informaticae | 3 |
| 2017 | Flexible SAT-based framework for incremental bounded upgrade checking
Grigory Fedyukovich, Ondrej Sery, Natasha Sharygina |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2016 | Clause Sharing and Partitioning for Cloud-Based SMT Solving
Matteo Marescotti, Antti Eero Johannes Hyvärinen, Natasha Sharygina |
ATVA | 3 |
| 2016 | Property Directed Equivalence via Abstract Simulation
Grigory Fedyukovich, Arie Gurfinkel, Natasha Sharygina |
CAV (2) | 3 |
| 2016 | PVAIR: Partial Variable Assignment InterpolatoR
Pavel Jancík, Leonardo Alt, Grigory Fedyukovich, Antti Eero Johannes Hyvärinen, Jan Kofron, Natasha Sharygina |
FASE | 6 |
| 2016 | OpenSMT2: An SMT Solver for Multi-core and Cloud Computing
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Leonardo Alt, Natasha Sharygina |
SAT | 4 |
| 2015 | Symbolic Detection of Assertion Dependencies for Bounded Model Checking
Grigory Fedyukovich, Andrea Callia D'Iddio, Antti Eero Johannes Hyvärinen, Natasha Sharygina |
FASE | 4 |
| 2015 | Automated Discovery of Simulation Between Programs
Grigory Fedyukovich, Arie Gurfinkel, Natasha Sharygina |
LPAR | 3 |
| 2015 | Search-Space Partitioning for Parallelizing SMT Solvers
Antti Eero Johannes Hyvärinen, Matteo Marescotti, Natasha Sharygina |
SAT | 3 |
| 2015 | Decision Procedures for Flat Array Properties
Francesco Alberti, Silvio Ghilardi, Natasha Sharygina |
J. Autom. Reason. | 3 |
| 2014 | Booster: An Acceleration-Based Verification Framework for Array Programs
Francesco Alberti, Silvio Ghilardi, Natasha Sharygina |
ATVA | 3 |
| 2014 | On interpolants and variable assignmentsabstractCraig interpolants are widely used in program verification as a means of abstraction. In this paper, we (i) introduce Partial Variable Assignment Interpolants (PVAIs) as a generalization of Craig interpolants. A variable assignment focuses computed interpolants by restricting the set of clauses taken into account during interpolation. PVAIs can be for example employed in the context of DAG interpolation, in order to prevent unwanted out-of-scope variables to appear in interpolants. Furthermore, we (ii) present a way to compute PVAIs for propositional logic based on an extension of the Labeled Interpolation Systems, and (iii) analyze the strength of computed interpolants and prove the conditions under which they have the path interpolation property. Pavel Jancík, Jan Kofron, Simone Rollini, Natasha Sharygina |
FMCAD | 4 |
| 2014 | Verification-aided regression testingabstractIn 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 |
ISSTA | 5 |
| 2014 | Verige: verification with invariant generation engineabstractProgram verification systems fail in verifying programs if appropriate loop invariants are not suggested. Generation of loop invariants in general is an art and providing them manually is a highly complex task (if possible at all). In this paper we present VERIGE, a tool that integrates a verifier with an invariant generator engine. VERIGE implements a novel generic algorithm that can alleviate the load on the invariant generator and consequently achieve a general speed-up of program verification. Nicolas Latorre, Francesco Alberti, Natasha Sharygina |
SPIN | 3 |
| 2014 | Decision Procedures for Flat Array Properties
Francesco Alberti, Silvio Ghilardi, Natasha Sharygina |
TACAS | 3 |
| 2014 | An extension of lazy abstraction with interpolation for programs with arrays
Francesco Alberti, Roberto Bruttomesso, Silvio Ghilardi, Silvio Ranise, Natasha Sharygina |
Formal Methods Syst. Des. | 5 |
| 2014 | Resolution proof transformation for compression and interpolation
Simone Rollini, Roberto Bruttomesso, Natasha Sharygina, Aliaksei Tsitovich |
Formal Methods Syst. Des. | 3 |
| 2013 | Interpolation Properties and SAT-Based Model Checking
Arie Gurfinkel, Simone Rollini, Natasha Sharygina |
ATVA | 3 |
| 2013 | Interpolation-based model checking for efficient incremental analysis of softwareabstractVerification 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 |
DDECS | 3 |
| 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 |
LPAR | 5 |
| 2013 | eVolCheck: Incremental Upgrade Checker for C
Grigory Fedyukovich, Ondrej Sery, Natasha Sharygina |
TACAS | 3 |
| 2013 | Loop summarization using state and transition invariants
Daniel Kroening, Natasha Sharygina, Stefano Tonetta, Aliaksei Tsitovich, Christoph M. Wintersteiger |
Formal Methods Syst. Des. | 2 |
| 2012 | FunFrog: Bounded Model Checking with Interpolation-Based Function Summarization
Ondrej Sery, Grigory Fedyukovich, Natasha Sharygina |
ATVA | 3 |
| 2012 | SAFARI: SMT-Based Abstraction for Arrays with Interpolants
Francesco Alberti, Roberto Bruttomesso, Silvio Ghilardi, Silvio Ranise, Natasha Sharygina |
CAV | 5 |
| 2012 | Leveraging Interpolant Strength in Model Checking
Simone Rollini, Ondrej Sery, Natasha Sharygina |
CAV | 3 |
| 2012 | Incremental upgrade checking by means of interpolation-based function summaries
Ondrej Sery, Grigory Fedyukovich, Natasha Sharygina |
FMCAD | 3 |
| 2012 | Lazy Abstraction with Interpolants for Arrays
Francesco Alberti, Roberto Bruttomesso, Silvio Ghilardi, Silvio Ranise, Natasha Sharygina |
LPAR | 5 |
| 2012 | An abstraction refinement approach combining precise and approximated techniques
Natasha Sharygina, Stefano Tonetta, Aliaksei Tsitovich |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2011 | Loop Summarization and Termination Analysis
Aliaksei Tsitovich, Natasha Sharygina, Christoph M. Wintersteiger, Daniel Kroening |
TACAS | 2 |
| 2011 | A model checking-based approach for security policy verification of mobile systemsabstractAbstract This article describes an approach for the automated verification of mobile systems. Mobile systems are characterized by the explicit notion oflocation(e.g., sites where they run) and the ability to execute at different locations, yielding a number of security issues. To this aim, we formalize mobile systems as Labeled Kripke Structures, encapsulating the notion oflocation netthat describes the hierarchical nesting of the threads constituting the system. Then, we formalize a genericsecurity-policy specification languagethat includes rules for expressing and manipulating the code location. In contrast to many other approaches, our technique supports both access control and information flow specification. We developed a prototype framework for model checking of mobile systems. It works directly on the program code (in contrast to most traditional process-algebraic approaches that can model only limited details of mobile systems) and uses abstraction-refinement techniques, based also on location abstractions, to manage the program state space. We experimented with a number of mobile code benchmarks by verifying various security policies. The experimental results demonstrate the validity of the proposed mobile system modeling and policy specification formalisms and highlight the advantages of the model checking-based approach, which combines the validation of security properties with other checks, such as the validation of buffer overflows. Chiara Braghin, Natasha Sharygina, Katerina Barone-Adesi |
Formal Aspects Comput. | 2 |
| 2010 | Termination Analysis with Compositional Transition Invariants
Daniel Kroening, Natasha Sharygina, Aliaksei Tsitovich, Christoph M. Wintersteiger |
CAV | 2 |
| 2010 | Flexible interpolation with local proof transformationsabstractModel checking based on Craig's interpolants ultimately relies on efficient engines, such as SMT-Solvers, to log proofs of unsatisfiability and to derive the desired interpolant by means of a set of algorithms known in literature. These algorithms, however, are designed for proofs that do not contain mixed predicates. In this paper we present a technique for transforming the propositional proof produced by an SMT-Solver in such a way that mixed predicates are eliminated. We show a number of cases in which mixed predicates arise as a consequence of state-of-the-art solving procedures (e.g. lemma on demand, theory combination, etc.). In such cases our technique can be applied to allow the reuse of known interpolation algorithms. We demonstrate with a set of experiments that our approach is viable. Roberto Bruttomesso, Simone Rollini, Natasha Sharygina, Aliaksei Tsitovich |
ICCAD | 3 |
| 2010 | A flexible schema for generating explanations in lazy theory propagationabstractTheory propagation in Satisfiability Modulo Theories is crucial for the solver's performance. It is important, however, to pay particular care to the amount of deductions to perform. The risk is in fact to clog the SAT-Solver with too many (and potentially useless clauses). In this paper we review some techniques for generating and communicating clauses to the SAT-Solver. In addition we propose a generic and flexible schema for theory propagation in which explanations for entailed facts are generated by re-using the consistency check procedure that is normally available in a theory solver. We argue that our schema can simplify the design of a theory solver, and allow a flexible form of theory propagation even for inherently hard theories (such as bit-vectors). Roberto Bruttomesso, Edgar Pek, Natasha Sharygina |
MEMOCODE | 3 |
| 2010 | The OpenSMT Solver
Roberto Bruttomesso, Edgar Pek, Natasha Sharygina, Aliaksei Tsitovich |
TACAS | 3 |
| 2009 | A scalable decision procedure for fixed-width bit-vectorsabstractEfficient decision procedures for bit-vectors are essential for modern verification frameworks. This paper describes a new decision procedure for the core theory of bit-vectors that exploits a reduction to equality reasoning. The procedure is embedded in a congruence closure algorithm, whose data structures are extended in order to efficiently manage the relations between bit-vector slicings, modulo equivalence classes. The resulting procedure is incremental, backtrackable, and proof producing: it can be used as a theory-solver for a lazy SMT schema. Experiments show that our approach is comparable and often superior to bit-blasting on the core fragment, and that it also helps as a theory layer when applied over the full bit-vector theory. Roberto Bruttomesso, Natasha Sharygina |
ICCAD | 2 |
| 2009 | Loopfrog: A Static Analyzer for ANSI-C ProgramsabstractPractical software verification is dominated by two major classes of techniques. The first is model checking, which provides total precision, but suffers from the state space explosion problem. The second is abstract interpretation, which is usually much less demanding, but often returns a high number of false positives. We present Loopfrog, a static analyzer that combines the best of both worlds: the precision of model checking and the performance of abstract interpretation. In contrast to traditional static analyzers, it also provides `leaping' counterexamples to aid in the diagnosis of errors. Daniel Kroening, Natasha Sharygina, Stefano Tonetta, Aliaksei Tsitovich, Christoph M. Wintersteiger |
ASE | 2 |
| 2008 | Loop Summarization Using Abstract Transformers
Daniel Kroening, Natasha Sharygina, Stefano Tonetta, Aliaksei Tsitovich, Christoph M. Wintersteiger |
ATVA | 2 |
| 2008 | Scoot: A Tool for the Analysis of SystemC Models
Nicolas Blanc, Daniel Kroening, Natasha Sharygina |
TACAS | 3 |
| 2008 | Verification of evolving software via component substitutability analysis
Sagar Chaki, Edmund M. Clarke, Natasha Sharygina, Nishant Sinha 0001 |
Formal Methods Syst. Des. | 3 |
| 2008 | Word-Level Predicate-Abstraction and Refinement Techniques for Verifying RTL VerilogabstractAs a first step, most model checkers used in the hardware industry convert a high-level register-transfer-level (RTL) design into a netlist. However, algorithms that operate at the netlist level are unable to exploit the structure of the higher abstraction levels and, thus, are less scalable. The RTL of a hardware description language such as Verilog is similar to a software program with special features for hardware design such as bit-vector arithmetic and concurrency. This paper uses predicate abstraction, a software verification technique, for verifying RTL Verilog. There are two challenges when applying predicate abstraction to circuits: 1) the computation of the abstract model in presence of a large number of predicates and 2) the discovery of suitable word-level predicates for abstraction refinement. We address the first problem using a technique called predicate clustering. We address the second problem by computing the weakest preconditions of Verilog statements in order to obtain new word-level predicates during abstraction refinement. We compare the performance of our technique with localization reduction, a netlist-level abstraction technique, and report improvements on a set of benchmarks. Himanshu Jain, Daniel Kroening, Natasha Sharygina, Edmund M. Clarke |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 3 |
| 2007 | Interactive presentation: Image computation and predicate refinement for RTL verilog using word level proofs
Daniel Kroening, Natasha Sharygina |
DATE | 2 |
| 2007 | Automated Verification of Security Policies in Mobile Code
Chiara Braghin, Natasha Sharygina, Katerina Barone-Adesi |
IFM | 2 |
| 2007 | Specification and verification of component-based systems 2007abstractSAVCBS is a workshop for research and experience reports on the specification and verification of component-based systems. Jonathan Aldrich, Michael Barnett 0001, Dimitra Giannakopoulou, Gary T. Leavens, Natasha Sharygina |
ESEC/SIGSOFT FSE | 5 |
| 2007 | VCEGAR: Verilog CounterExample Guided Abstraction Refinement
Himanshu Jain, Daniel Kroening, Natasha Sharygina, Edmund M. Clarke |
TACAS | 3 |
| 2007 | Verification of Boolean programs with unbounded thread creation
Byron Cook, Daniel Kroening, Natasha Sharygina |
Theor. Comput. Sci. | 3 |
| 2006 | Over-Approximating Boolean Programs with Unbounded Thread CreationabstractThis paper describes a symbolic algorithm for over-approximating reachability in Boolean programs with unbounded thread creation. The fix-point is detected by projecting the state of the threads to the globally visible parts, which are finite. Our algorithm models recursion by over-approximating the call stack that contains the return locations of recursive function calls, as reachability is undecidable in this case. The algorithm may obtain spurious counterexamples, which are removed iteratively by means of an abstraction refinement loop. Experiments show that the symbolic algorithm for unbounded thread creation scales to large abstract models Byron Cook, Daniel Kroening, Natasha Sharygina |
FMCAD | 3 |
| 2006 | Approximating Predicate Images for Bit-Vector Logic
Daniel Kroening, Natasha Sharygina |
TACAS | 2 |
| 2005 | The ComFoRT Reasoning Framework
Sagar Chaki, James Ivers, Natasha Sharygina, Kurt C. Wallnau |
CAV | 3 |
| 2005 | Cogent: Accurate Theorem Proving for Program Verification
Byron Cook, Daniel Kroening, Natasha Sharygina |
CAV | 3 |
| 2005 | Word level predicate abstraction and refinement for verifying RTL verilogabstractModel checking techniques applied to large industrial circuits suffer from the state space explosion problem. A major technique to address this problem is abstraction. The most commonly used abstraction technique for hardware verification is localization reduction, which removes latches that are not relevant to the property. However, localization reduction fails to reduce the size of the model if the property actually depends on most of the latches. This paper proposes to use predicate abstraction for verifying RTL Verilog, a technique successfully used for software verification. The main challenge when using predicate abstraction is the discovery of suitable predicates. We propose to use weakest preconditions of Verilog statements in order to obtain new predicates during abstraction refinement. This technique has not been applied to circuits before. On benchmarks taken from an industrial microprocessor, we successfully verified safety properties with more than 32,000 latches in the cone of influence. We compare the performance of our technique with a modern model checker that implements localization reduction. Himanshu Jain, Daniel Kroening, Natasha Sharygina, Edmund M. Clarke |
DAC | 3 |
| 2005 | Dynamic Component Substitutability Analysis
Natasha Sharygina, Sagar Chaki, Edmund M. Clarke, Nishant Sinha 0001 |
FM | 1 |
| 2005 | State/Event Software Verification for Branching-Time Specifications
Sagar Chaki, Edmund M. Clarke, Orna Grumberg, Joël Ouaknine, Natasha Sharygina, Tayssir Touili, Helmut Veith |
IFM | 5 |
| 2005 | Formal verification of SystemC by automatic hardware/software partitioningabstractVariants of general-purpose programming languages, like SystemC, are increasingly used to specify system designs that have both hardware and software parts. The system-level languages allow a flexible partitioning in the design of the hardware and software. Moreover, many properties depend on the combination of hardware and software and cannot be verified on either part alone. Existing tools either apply non-formal approaches or handle only the low-level parts of the language. This papers presents a new technique that handles both hardware and software parts of a system description. This is done by automatically partitioning the uniform system description into synchronous (hardware) and asynchronous (software) parts. This technique has been implemented and applied to system level descriptions of several industrial examples. The hardware/software partitioning improves the performance of the verification compared to the monolithic approach. Daniel Kroening, Natasha Sharygina |
MEMOCODE | 2 |
| 2005 | SATABS: SAT-Based Predicate Abstraction for ANSI-C
Edmund M. Clarke, Daniel Kroening, Natasha Sharygina, Karen Yorav |
TACAS | 3 |
| 2005 | Concurrent software verification with states, events, and deadlocksabstractAbstract We present a framework for model checking concurrent software systems which incorporates both states and events. Contrary to other state/event approaches, our work also integrates two powerful verification techniques, counterexample-guided abstraction refinement and compositional reasoning. Our specification language is a state/event extension of linear temporal logic, and allows us to express many properties of software in a concise and intuitive manner. We show how standard automata-theoretic LTL model checking algorithms can be ported to our framework at no extra cost, enabling us to directly benefit from the large body of research on efficient LTL verification. We also present an algorithm to detect deadlocks in concurrent message-passing programs. Deadlock- freedom is not only an important and desirable property in its own right, but is also a prerequisite for the soundness of our model checking algorithm. Even though deadlock is inherently non-compositional and is not preserved by classical abstractions, our iterative algorithm employs both (non-standard) abstractions and compositional reasoning to alleviate the state-space explosion problem. The resulting framework differs in key respects from other instances of the counterexample-guided abstraction refinement paradigm found in the literature. We have implemented this work in the magic verification tool for concurrent C programs and performed tests on a broad set of benchmarks. Our experiments show that this new approach not only eases the writing of specifications, but also yields important gains both in space and in time during verification. In certain cases, we even encountered specifications that could not be verified using traditional pure event-based or state-based approaches, but became tractable within our state/event framework. We also recorded substantial reductions in time and memory consumption when performing deadlock-freedom checks with our new abstractions. Finally, we report two bugs (including a deadlock) in the source code of Micro-C/OS versions 2.0 and 2.7, which we discovered during our experiments. Sagar Chaki, Edmund M. Clarke, Joël Ouaknine, Natasha Sharygina, Nishant Sinha 0001 |
Formal Aspects Comput. | 4 |
| 2004 | State/Event-Based Software Model Checking
Sagar Chaki, Edmund M. Clarke, Joël Ouaknine, Natasha Sharygina, Nishant Sinha 0001 |
IFM | 4 |
| 2004 | Accurate Theorem Proving for Program Verification
Byron Cook, Daniel Kroening, Natasha Sharygina |
ISoLA | 3 |
| 2004 | Automated, compositional and iterative deadlock detectionabstractWe present an algorithm to detect deadlocks in concurrent message-passing programs. Even though deadlock is inherently noncompositional and its absence is not preserved by standard abstractions, our framework employs both abstraction and compositional reasoning to alleviate the state space explosion problem. We iteratively construct increasingly more precise abstractions on the basis of spurious counterexamples to either detect a deadlock or prove that no deadlock exists. Our approach is inspired by the counterexample-guided abstraction refinement paradigm. However, our notion of abstraction as well as our schemes for verification and abstraction refinement differs in key respects from existing abstraction refinement frameworks. Our algorithm is also compositional in that abstraction, counterexample validation, and refinement are all carried out component-wise and do not require the construction of the complete state space of the concrete system under consideration. Finally, our approach is completely automated and provides diagnostic feedback in case a deadlock is detected. We have implemented our technique in the MAGIC verification tool and present encouraging results (up to 20 times speed-up in time and 4 times less memory consumption) with concurrent message-passing C programs. We also report a bug in the real-time operating system MicroC/OS version 2.70. Sagar Chaki, Edmund M. Clarke, Joël Ouaknine, Natasha Sharygina |
MEMOCODE | 4 |
| 2004 | Predicate Abstraction of ANSI-C Programs Using SAT
Edmund M. Clarke, Daniel Kroening, Natasha Sharygina, Karen Yorav |
Formal Methods Syst. Des. | 3 |
| 2004 | Guest Editorial
Natasha Sharygina |
Formal Methods Syst. Des. | 1 |
| 2004 | Lessons Learned from Model Checking a NASA Robot Controller
Natasha Sharygina, James C. Browne, Robert P. Kurshan, Vladimir Levin |
Formal Methods Syst. Des. | 1 |
| 2003 | Model Checking Software via Abstraction of Loop Transitions
Natasha Sharygina, James C. Browne |
FASE | 1 |
| 2001 | A Formal Object-Oriented Analysis for Software Reliability: Design for Verification
Natasha Sharygina, James C. Browne, Robert P. Kurshan |
FASE | 1 |