Modular verification of procedure equivalence in the presence of memory allocation
File(s)paper_105.pdf (714.48 KB)
Accepted version
Author(s)
Wood, T
Drossopoulou, S
Lahiri, SK
Eisenbach, S
Type
Conference Paper
Abstract
For most high level languages, two procedures are equivalent
if they transform a pair of isomorphic stores to isomorphic stores. How-
ever, tools for modular checking of such equivalence impose a stronger
check where isomorphism is strengthened to equality of stores. This re-
sults in the inability to prove many interesting program pairs with re-
cursion and dynamic memory allocation.
In this work, we present RIE, a methodology to modularly establish
equivalence of procedures in the presence of memory allocation, cyclic
data structures and recursion. Our technique addresses the need for find-
ing witnesses to isomorphism with angelic allocation, supports reasoning
about equivalent procedures calls when the stores are only locally iso-
morphic, and reasoning about changes in the order of procedure calls.
We have implemented RIE by encoding it in the Boogie program verifier.
We describe the encoding and prove its soundness.
if they transform a pair of isomorphic stores to isomorphic stores. How-
ever, tools for modular checking of such equivalence impose a stronger
check where isomorphism is strengthened to equality of stores. This re-
sults in the inability to prove many interesting program pairs with re-
cursion and dynamic memory allocation.
In this work, we present RIE, a methodology to modularly establish
equivalence of procedures in the presence of memory allocation, cyclic
data structures and recursion. Our technique addresses the need for find-
ing witnesses to isomorphism with angelic allocation, supports reasoning
about equivalent procedures calls when the stores are only locally iso-
morphic, and reasoning about changes in the order of procedure calls.
We have implemented RIE by encoding it in the Boogie program verifier.
We describe the encoding and prove its soundness.
Date Issued
2017-03-19
Date Acceptance
2017-01-11
Citation
Lecture Notes in Computer Science, 2017
ISSN
0302-9743
Publisher
Springer Verlag
Journal / Book Title
Lecture Notes in Computer Science
Copyright Statement
© Springer-Verlag GmbH Germany 2017. The final publication is available at Springer via https://link.springer.com/chapter/10.1007%2F978-3-662-54434-1_35
Source
European Symposium on Programming
Subjects
Artificial Intelligence & Image Processing
Publication Status
Published
Start Date
2017-04-25
Finish Date
2017-04-29
Coverage Spatial
Uppsala, Sweden
Date Publish Online
2017-03-19