conference-paper Open access

DelExp: A Relational Container Abstraction: with Applications to Compositional Analysis

  • HAL (Le Centre pour la Communication Scientifique Directe)
  • Centre National de la Recherche Scientifique
Research footprint

At a glance

Citations
0
References
0
Comments
0
Paper overview

Abstract

Data containers, such as lists, arrays, trees, etc, raise challenges for program verification. In static analysis by abstract interpretation, one popular approach is summarization: multiple elements of a data structure are abstracted into a single one, favoring performance over precision. This technique is at the core of most container abstractions - from smashing to segmentation - of arrays, lists or algebraic data types. However, summarization approaches are unable to express relations between containers, even when relational numerical abstract domains are used. Our work introduces DelExp, a new domain able to express relations between summarized variables. DelExp can state that the content of a data structure is included in the content of another data structure, up to a given transformation. DelExp is language-agnostic, modular in the abstraction chosen for any other types (integers, strings, functions, etc.), and can be seamlessly combined with existing container abstractions. We show how DelExp allows us to infer precise summaries for compositional analyses of container-manipulating functions in a pure functional language. We present extensions to DelExp supporting polymorphism and higher-order transformations. Our implementation of DelExp within the MOPSA static analysis platform confirms that DelExp works out of the box with pre-existing container abstractions. Our evaluation targets both Python programs manipulating lists and relational summary generation for OCaml functions handling algebraic data types.

Record transparency

Publication details

OpenAlex
W7142573268
Document type
conference-paper
Language
EN
Source
HAL (Le Centre pour la Communication Scientifique Directe)
Last metadata update
Community

Comments

Log in to join the discussion.

  1. No comments yet. Start the discussion.