Deciding Separation Logic with Pointer Arithmetic and Inductive Definitions - Laboratoire Méthodes Formelles Access content directly
Preprints, Working Papers, ... Year : 2020

Deciding Separation Logic with Pointer Arithmetic and Inductive Definitions

Procédure de décision pour la logique de séparation avec arithmétique de pointeurs et définitions inductives

Abstract

Pointer arithmetic is widely used in low-level programs, e.g. memory allocators. The specification of such programs usually requires using pointer arithmetic inside inductive definitions to define the common data structures, e.g. heap lists in memory allocators. In this work, we investigate decision problems for SLAH, a separation logic fragment that allows pointer arithmetic inside inductive definitions, thus enabling specification of properties for programs manipulating heap lists. Pointer arithmetic inside inductive definitions is challenging for automated reasoning. We tackle this challenge and achieve decision procedures for both satisfiability and entailment of SLAH formulas. The crux of our decision procedure for satisfiability is to compute summaries of inductive definitions. We show that although the summary is naturally expressed as an existentially quantified non-linear arithmetic formula, it can actually be transformed into an equivalent linear arithmetic formula. The decision procedure for entailment, on the other hand, has to match and split the spatial atoms according to the arithmetic relation between address variables. We report on the implementation of these decision procedures and their good performance in solving problems issued from the verification of building block programs used in memory allocators.
Fichier principal
Vignette du fichier
atva2021.pdf (667.4 Ko) Télécharger le fichier
main.pdf (679.86 Ko) Télécharger le fichier
Origin : Files produced by the author(s)
licence : NC - Public Domain Mark

Dates and versions

hal-04481369 , version 1 (01-03-2024)

Licence

Public Domain

Identifiers

  • HAL Id : hal-04481369 , version 1

Cite

Wanyun Su, Zhilin Wu, Mihaela Sighireanu. Deciding Separation Logic with Pointer Arithmetic and Inductive Definitions. 2020. ⟨hal-04481369⟩
14 View
13 Download

Share

Gmail Facebook X LinkedIn More