Typestates Specification and Verification in Frama-C
Critical software systems need strong safety and security guarantees, since a bug can have very bad consequences. Thus, we need powerful verification techniques, such as formal methods, to assess such systems. Frama-C is an Open-Source platform for formal analysis of C code. It comes with ACSL, a specification language based on function contracts. Recently, a Frama-C plug-in has been developed for stating and verifying Typestates properties. These properties restrict possible operations on objects of a given datatype, depending on their current state. This plug-in instruments the original program with ACSL annotations, in order to use the standard Frama-C analyzers. We propose a formalization for this instrumentation, in order to prove its correctness. To this end, we rely on the Skel metalanguage, the Necrocoq tool, and the Coq proof assistant.
Authors
- Virgile Prévosto (ORCID: https://orcid.org/0000-0002-7203-0968)
- Sébastien Patte
Institutions
- Commissariat à l'Énergie Atomique et aux Énergies Alternatives (FR)
- Laboratoire d'Intégration des Systèmes et des Technologies (FR)
Publication Details
- Published
- 2025-04-27
- DOI
- https://doi.org/10.1109/formalise66629.2025.00021
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Agence Nationale de la Recherche