Verification of Programs with Pointers in SPARK

Georges-Axel Jaloyan 1, 2 Claire Dross 3 Maroua Maalej 3 Yannick Moy 3 Andrei Paskevich 4, 5
5 TOCCATA - Certified Programs, Certified Tools, Certified Floating-Point Computations
LRI - Laboratoire de Recherche en Informatique, UP11 - Université Paris-Sud - Paris 11, Inria Saclay - Ile de France, CNRS - Centre National de la Recherche Scientifique : UMR8623
Abstract : In the field of deductive software verification, programs with pointers present a major challenge due to pointer aliasing. In this paper, we introduce pointers to SPARK, a well-defined subset of the Ada language , intended for formal verification of mission-critical software. Our solution uses a permission-based static alias analysis method inspired by Rust's borrow-checker and affine types. To validate our approach, we have implemented it in the GNAT Ada compiler and the SPARK toolset. In the paper, we give a formal presentation of the analysis rules for a core version of SPARK and discuss their implementation and scope.
Document type :
Preprints, Working Papers, ...
Complete list of metadatas
Contributor : Andrei Paskevich <>
Submitted on : Tuesday, November 27, 2018 - 11:35:02 AM
Last modification on : Thursday, April 25, 2019 - 1:20:43 AM
Long-term archiving on : Thursday, February 28, 2019 - 2:15:09 PM


Files produced by the author(s)


  • HAL Id : hal-01936105, version 1


Georges-Axel Jaloyan, Claire Dross, Maroua Maalej, Yannick Moy, Andrei Paskevich. Verification of Programs with Pointers in SPARK. 2018. ⟨hal-01936105⟩



Record views


Files downloads