Formal Reasoning on Infinite Data Values: an Ongoing Quest.
Taolue Chen,Fu Song,Zhilin Wu
DOI: https://doi.org/10.1007/978-3-319-56841-6_6
2017-01-01
Abstract:With motivations from formal verification and databases, formal models to reason about software systems that contain data values from an infinite domain became a research focus in theoretical computer science community during the last decade. In this chapter, we present a tutorial to summarise the state of the art of these formal models. We focus on automata models and logics. We organise the models according to the different approaches to deal with the data values from an infinite domain. Specifically, we present the following models, register automata (and related logics), data automata (and related logics), pebble automata, and symbolic automata and transducers. In addition, we also incorporate two application-oriented sections, respectively on formal models to reason about programs manipulating dynamic data structures, and on formal models for the static analysis of data-parallel programs. For these two sections, we choose to present separation logic with data constraints, logic of graph reachability and stratified sets, streaming transducers, and streaming numerical transducers. For each model, we introduce the basic definitions, use some examples to illustrate the model, and state the main theoretical properties of the model. We hope that this tutorial will be useful if one wants to have a bird's eye of view on this field and know the basic concepts underlying those models.