Detail publikace

Forest Automata for Verification of Heap Manipulation

Originální název

Forest Automata for Verification of Heap Manipulation

Anglický název

Forest Automata for Verification of Heap Manipulation

Jazyk

en

Originální abstrakt

We consider verification of programs manipulating dynamic linked data structures such as various forms of singly and doubly-linked lists or trees. We consider important properties for this kind of systems like no null-pointer dereferences, absence of garbage, shape properties, etc. We develop a verification method based on a novel use of tree automata to represent heap configurations. A heap is split into several "separated" parts such that each of them can be represented by a tree automaton. The automata can refer to each other allowing the different parts of the heaps to mutually refer to their boundaries. Moreover, we allow for a hierarchical representation of heaps by allowing alphabets of the tree automata to contain other, nested tree automata. Program instructions can be easily encoded as operations on our representation structure. This allows verification of programs based on a symbolic state-space exploration together with refinable abstraction within the so-called abstract regular tree model checking. A motivation for the approach is to combine advantages of automata-based approaches (higher generality and flexibility of the abstraction) with some advantages of separation-logic-based approaches (efficiency). We have implemented our approach and tested it successfully on multiple non-trivial case studies.

Anglický abstrakt

We consider verification of programs manipulating dynamic linked data structures such as various forms of singly and doubly-linked lists or trees. We consider important properties for this kind of systems like no null-pointer dereferences, absence of garbage, shape properties, etc. We develop a verification method based on a novel use of tree automata to represent heap configurations. A heap is split into several "separated" parts such that each of them can be represented by a tree automaton. The automata can refer to each other allowing the different parts of the heaps to mutually refer to their boundaries. Moreover, we allow for a hierarchical representation of heaps by allowing alphabets of the tree automata to contain other, nested tree automata. Program instructions can be easily encoded as operations on our representation structure. This allows verification of programs based on a symbolic state-space exploration together with refinable abstraction within the so-called abstract regular tree model checking. A motivation for the approach is to combine advantages of automata-based approaches (higher generality and flexibility of the abstraction) with some advantages of separation-logic-based approaches (efficiency). We have implemented our approach and tested it successfully on multiple non-trivial case studies.

BibTex


@article{BUT96963,
  author="Lukáš {Holík} and Adam {Rogalewicz} and Jiří {Šimáček} and Tomáš {Vojnar} and Peter {Habermehl}",
  title="Forest Automata for Verification of Heap Manipulation",
  annote="We consider verification of programs manipulating dynamic linked data structures
such as various forms of singly and doubly-linked lists or trees. We consider
important properties for this kind of systems like no null-pointer dereferences,
absence of garbage, shape properties, etc. We develop a verification method based
on a novel use of tree automata to represent heap configurations. A heap is split
into several "separated" parts such that each of them can be represented by
a tree automaton. The automata can refer to each other allowing the different
parts of the heaps to mutually refer to their boundaries. Moreover, we allow for
a hierarchical representation of heaps by allowing alphabets of the tree automata
to contain other, nested tree automata. Program instructions can be easily
encoded as operations on our representation structure. This allows verification
of programs based on a symbolic state-space exploration together with refinable
abstraction within the so-called abstract regular tree model checking.
A motivation for the approach is to combine advantages of automata-based
approaches (higher generality and flexibility of the abstraction) with some
advantages of separation-logic-based approaches (efficiency). We have implemented
our approach and tested it successfully on multiple non-trivial case studies.",
  address="NEUVEDEN",
  chapter="96963",
  doi="10.1007/s10703-012-0150-8",
  edition="NEUVEDEN",
  howpublished="print",
  institution="NEUVEDEN",
  number="41",
  volume="2012",
  year="2012",
  month="june",
  pages="83--106",
  publisher="NEUVEDEN",
  type="journal article - other"
}