Virgile Prevosto

dblp:05/1744 · DBLP profile ↗
← Back
19ranked-venue papers
2as first author
4since 2021 · last 2025
0000-0002-7203-0968ORCID · verified

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

Software engineering, systems software and programming languages · 16 · 4 since 2021Theory of computation · 4 · 2 since 2021Artificial intelligence and machine learning · 1 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-author
YearPublicationVenuePosition
2025 Formal Verification of PKCS#1 Signature Parser Using Frama-C
Martin Hána, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles
iFM3
2024 High-Level Program Properties in Frama-C: Definition, Verification and Deduction
Virgile Robles, Nikolai Kosmatov, Virgile Prevosto, Pascale Le Gall
ISoLA (3)3
2022 Certified Verification of Relational Properties
Lionel Blatter, Nikolai Kosmatov, Virgile Prevosto, Pascale Le Gall
IFM3
2022 An Efficient VCGen-Based Modular Verification of Relational Properties
Lionel Blatter, Nikolai Kosmatov, Virgile Prevosto, Pascale Le Gall
ISoLA (1)3
2020 Detection of Polluting Test Objectives for Dataflow Criteria
Thibault Martin, Nikolai Kosmatov, Virgile Prevosto, Matthieu Lemerre
IFM3
2019 MetAcsl: Specification and Verification of High-Level Properties
abstract
Modular deductive verification is a powerful technique capable to show that each function in a program satisfies its contract. However, function contracts do not provide a global view of which high-level (e.g. security-related) properties of a whole software module are actually established, making it very difficult to assess them. To address this issue, this paper proposes a new specification mechanism, called meta-properties. A meta-property can be seen as an enhanced global invariant specified for a set of functions, and capable to express predicates on values of variables, as well as memory related conditions (such as separation) and read or write access constraints. We also propose an automatic transformation technique translating meta-properties into usual contracts and assertions, that can be proved by traditional deductive verification tools. This technique has been implemented as a Frama-C plugin called MetAcsl and successfully applied to specify and prove safety- and security-related meta-properties in two illustrative case studies.
Virgile Robles, Nikolai Kosmatov, Virgile Prevosto, Louis Rilling, Pascale Le Gall
TACAS (1)3
2018 Time to clean your test objectives
abstract
Testing is the primary approach for detecting software defects. A major challenge faced by testers lies in crafting efficient test suites, able to detect a maximum number of bugs with manageable effort. To do so, they rely on coverage criteria, which define some precise test objectives to be covered. However, many common criteria specify a significant number of objectives that occur to be infeasible or redundant in practice, like covering dead code or semantically equal mutants. Such objectives are well-known to be harmful to the design of test suites, impacting both the efficiency and precision of the tester's effort. This work introduces a sound and scalable technique to prune out a significant part of the infeasible and redundant objectives produced by a panel of white-box criteria. In a nutshell, we reduce this task to proving the validity of logical assertions in the code under test. The technique is implemented in a tool that relies on weakest-precondition calculus and SMT solving for proving the assertions. The tool is built on top of the Frama-C verification platform, which we carefully tune for our specific scalability needs. The experiments reveal that the pruning capabilities of the tool can reduce the number of targeted test objectives in a program by up to 27% and scale to real programs of 200K lines, making it possible to automate a painstaking part of their current testing process.
Michaël Marcozzi, Sébastien Bardin, Nikolai Kosmatov, Mike Papadakis, Virgile Prevosto, Loïc Correnson
ICSE5
2017 Synthesizing Invariants by Solving Solvable Loops
Steven de Oliveira, Saddek Bensalem, Virgile Prevosto
ATVA3
2017 Taming Coverage Criteria Heterogeneity with LTest
abstract
Automated white-box testing is a major issue in software engineering. In previous work, we introduced LTest, a generic and integrated toolkit for automated white-box testing of C programs. LTest supports a broad class of coverage criteria in a unified way (through the label specification mechanism) and covers most major parts of the testing process - including coverage measurement, test generation and detection of infeasible test objectives. However, the original version of LTest was unable to handle several major classes of coverage criteria, such as MCDC or dataflow criteria. Moreover, its practical applicability remained barely assessed. In this work, we present a significantly extended version of LTest that supports almost all existing testing criteria, including MCDC and some software security properties, through a native support of recently proposed hyperlabels. We also provide a more realistic view on the practical applicability of the extended tool, with experiments assessing its efficiency and scalability on real-world programs.
Michaël Marcozzi, Sébastien Bardin, Mickaël Delahaye, Nikolai Kosmatov, Virgile Prevosto
ICST5
2017 Generic and Effective Specification of Structural Test Objectives
abstract
A large amount of research has been carried out to automate white-box testing. While a wide range of different and sometimes heterogeneous code-coverage criteria have been proposed, there exists no generic formalism to describe them all, and available test automation tools usually support only a small subset of them. We introduce a new specification language, called HTOL (Hyperlabel Test Objectives Language), providing a powerful generic mechanism to define a wide range of test objectives. HTOL comes with a formal semantics, and can encode all standard criteria but full mutations. Besides specification, HTOL is appealing in the context of test automation as it allows handling criteria in a unified way.
Michaël Marcozzi, Mickaël Delahaye, Sébastien Bardin, Nikolai Kosmatov, Virgile Prevosto
ICST5
2017 RPP: Automatic Proof of Relational Properties by Self-composition
Lionel Blatter, Nikolai Kosmatov, Pascale Le Gall, Virgile Prevosto
TACAS (1)4
2016 Polynomial Invariants by Linear Algebra
Steven de Oliveira, Saddek Bensalem, Virgile Prevosto
ATVA3
2015 Model-Based Testing from Input Output Symbolic Transition Systems Enriched by Program Calls and Contracts
Imen Boudhiba, Christophe Gaston, Pascale Le Gall, Virgile Prevosto
ICTSS4
2015 Frama-C: A software analysis perspective
abstract
Abstract Frama-C is a source code analysis platform that aims at conducting verification of industrial-size C programs. It provides its users with a collection of plug-ins that perform static analysis, deductive verification, and testing, for safety- and security-critical software. Collaborative verification across cooperating plug-ins is enabled by their integration on top of a shared kernel and datastructures, and their compliance to a common specification language. This foundational article presents a consolidated view of the platform, its main and composite analyses, and some of its industrial achievements.
Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski
Formal Aspects Comput.3
2013 Formal specification and automated verification of railway software with Frama-C
abstract
This paper presents the use of the Frama-C toolkit for the formal verification of a model of train-controlling software against the requirements of the CENELEC norm EN 50128. We also compare our formal approach with traditional unit testing.
Virgile Prevosto, Jochen Burghardt, Jens Gerlach, Kerstin Hartig, Hans Werner Pohl, Kim Völlinger
INDIN1
2012 Frama-C - A Software Analysis Perspective
Pascal Cuoq, Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski
SEFM4
2011 Functional dependencies of C functions via weakest pre-conditions
Pascal Cuoq, Benjamin Monate, Anne Pacalet, Virgile Prevosto
Int. J. Softw. Tools Technol. Transf.4
2009 Experience report: OCaml for an industrial-strength static analysis framework
abstract
This experience report describes the choice of OCaml as the implementation language for Frama-C, a framework for the static analysis of C programs. OCaml became the implementation language for Frama-C because it is expressive. Most of the reasons listed in the remaining of this article are secondary reasons, features which are not specific to OCaml (modularity, availability of a C parser, control over the use of resources...) but could have prevented the use of OCaml for this project if they had been missing.
Pascal Cuoq, Julien Signoles, Patrick Baudin, Richard Bonichon, Géraud Canet, Loïc Correnson, Benjamin Monate, Virgile Prevosto, Armand Puccetti
ICFP8
2002 Algorithms and Proofs Inheritancey in the FOC Language
Virgile Prevosto, Damien Doligez
J. Autom. Reason.1