Abstract

We define the class of single-parent heap systems, which rely on a singly-linked heap in order to model destructive updates on tree structures. This encoding has the advantage of relying on a relatively simple theory of linked lists in order to support abstraction computation. To facilitate the application of this encoding, we provide a program transformation that, given a program operating on a multi-linked heap without sharing, transforms it into one over a single-parent heap. It is then possible to apply shape analysis by predicate and ranking abstraction. The technique has been successfully applied on examples with lists (reversal and bubble sort) and trees with of fixed arity (balancing of, and insertion into, a binary sort tree).

Highlights

  • This paper is based on research reported in [3, 5]

  • This paper presents an approach for shape analysis based on predicate abstraction that allows for analysis of functional properties such as safety and liveness

  • The focus is on “single-parent” heap structures and structures that can be mapped into them. This covers the important family of trees

Read more

Summary

Introduction

This paper is based on research reported in [3, 5]. The goal of shape analysis is to analyze properties of programs that perform destructive updating on dynamically allocated storage (heaps) [21]. This paper presents an approach for shape analysis based on predicate abstraction that allows for analysis of functional properties such as safety and liveness. We propose a framework for shape analysis of singleparent heaps based on a small model property of a restricted class of first order assertions with transitive closure. Extending this framework to allow for heaps with multiple links per node entails extending the assertional language and proving a stronger small model property.

Related Work
Motivating Examples
The Formal Framework
Single-Parent Heaps
Examples
From Multi-Linked Heaps into Single-Parent Heaps
Multi-linked Heap Systems
Transforming Multi-Linked Heaps into Single-Parent Heap Systems
Correctness of Transformation
Abstraction
Predicate Abstraction
Transition Abstraction
Computing the Augmented Abstraction
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.