Grigory Fedyukovich
University of Lugano
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Grigory Fedyukovich.
haifa verification conference | 2011
Ondrej Sery; Grigory Fedyukovich; Natasha Sharygina
During model checking of software against various specifications, it is often the case that the same parts of the program have to be modeled/verified multiple times. To reduce the overall verification effort, this paper proposes a new technique that extracts function summaries after the initial successful verification run, and then uses them for more efficient subsequent analysis of the other specifications. Function summaries are computed as over-approximations using Craig interpolation, a mechanism which is well-known to preserve the most relevant information, and thus tend to be a good substitute for the functions that were examined in the previous verification runs. In our summarization-based verification approach, the spurious behaviors introduced as a side effect of the over-approximation, are ruled out automatically by means of the counter-example guided refinement of the function summaries. We implemented interpolation-based summarization in our FunFrog tool, and compared it with several state-of-the-art software model checking tools. Our experiments demonstrate the feasibility of the new technique and confirm its advantages on the large programs.
tools and algorithms for construction and analysis of systems | 2013
Grigory Fedyukovich; Ondrej Sery; Natasha Sharygina
Software is not created at once. Rather, it grows incrementally version by version and evolves long after being first released. To be practical for software developers, the software verification tools should be able to cope with changes. In this paper, we present a tool, eVolCheck, that focuses on incremental verification of software as it evolves. During the software evolution the tool maintains abstractions of program functions, function summaries, derived using Craig interpolation. In each check, the function summaries are used to localize verification of an upgrade to analysis of the modified functions. Experimental evaluation on a range of various benchmarks shows substantial speedup of incremental upgrade checking of eVolCheck in contrast to checking each version from scratch.
international conference on logic programming | 2013
Simone Fulvio Rollini; Leonardo Alt; Grigory Fedyukovich; Antti Eero Johannes Hyvärinen; Natasha Sharygina
Propositional interpolation is widely used as a means of overapproximation to achieve efficient SAT-based symbolic model checking. Different verification applications exploit interpolants for different purposes; it is unlikely that a single interpolation procedure could provide interpolants fit for all cases. This paper describes the PeRIPLO framework, an interpolating SAT-solver that implements a set of techniques to generate and manipulate interpolants for different model checking tasks. We demonstrate the flexibility of the framework in two software bounded model checking applications: verification of a given source code incrementally with respect to various properties, and verification of software upgrades with respect to a fixed set of properties. Both applications use interpolation for generating function summaries. Our systematic experimental investigation shows that size and logical strength of interpolants significantly affect verification, that these characteristics depend on the role played by interpolants, and that therefore techniques for tuning size and strength can be used to customize interpolants in different applications.
automated technology for verification and analysis | 2012
Ondrej Sery; Grigory Fedyukovich; Natasha Sharygina
This paper presents FunFrog, a tool that implements a function summarization approach for software bounded model checking. It uses interpolation-based function summaries as over-approximation of function calls. In every successful verification run, FunFrog generates function summaries of the analyzed program functions and reuses them to reduce the complexity of the successive verification. To prevent reporting spurious errors , the tool incorporates a counter-example-guided refinement loop. Experimental evaluation demonstrates competitiveness of FunFrog with respect to state-of-the-art software model checkers.
international conference on logic programming | 2015
Grigory Fedyukovich; Arie Gurfinkel; Natasha Sharygina
The paper presents SimAbs, the first fully automated SMT-based approach to synthesize an abstraction of one program called target that simulates another program called source. SimAbs iteratively traverses the search space of existential abstractions of the target and choses the strongest abstraction among them that simulates the source. Deciding whether a given relation is a simulation relation is reduced to solving validity of
international symposium on software testing and analysis | 2014
Fabrizio Pastore; Leonardo Mariani; Antti Eero Johannes Hyvärinen; Grigory Fedyukovich; Natasha Sharygina; Stephan Sehestedt; Ali Muhammad
computer aided verification | 2016
Grigory Fedyukovich; Arie Gurfinkel; Natasha Sharygina
\forall \exists
verified software theories tools experiments | 2015
Leonardo Alt; Grigory Fedyukovich; Antti Eero Johannes Hyvärinen; Natasha Sharygina
nasa formal methods | 2014
Grigory Fedyukovich; Arie Gurfinkel; Natasha Sharygina
-formulas iteratively. We present a novel algorithm for dealing with such formulas using an incremental SMT solver. In addition to deciding validity, our algorithm extracts witnessing Skolem relations which further drive simulation synthesis in SimAbs. Our evaluation confirms that SimAbs is able to efficiently discover both, simulations and abstractions, for C programs from the Software Verification Competition.
programming language design and implementation | 2017
Grigory Fedyukovich; Maaz Bin Safeer Ahmad; Rastislav Bodik
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.