Skip to main content

Refinement-Based Verification for Possibly-Cyclic Lists

  • Chapter
Book cover Program Analysis and Compilation, Theory and Practice

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4444))

Abstract

In earlier work, we presented an abstraction-refinement mechanism that was successful in verifying automatically the partial correctness of in-situ list reversal when applied to an acyclic linked list [10]. This paper reports on the automatic verification of the total correctness (partial correctness and termination) of the same list-reversal algorithm, when applied to a possibly-cyclic linked list. A key contribution that made this result possible is an extension of the finite-differencing technique [14] to enable the maintenance of reachability information for a restricted class of possibly-cyclic data structures, which includes possibly-cyclic linked lists.

Supported by ONR (N00014-01-1-{0708,0796}) and NSF (CCR-9986308 and CCF-{0524051,0540955}).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Distefano, D., O’Hearn, P., Yang, H.: Interprocedural shape analysis with separated heap abstractions. In: Tools and Algs. for the Construction and Analysis of Systems, March 2006, pp. 287–302 (2006)

    Google Scholar 

  2. Dong, G., Su, J.: Incremental maintenance of recursive views using relational calculus/SQL. SIGMOD Record 29(1), 44–51 (2000)

    Article  Google Scholar 

  3. Gotsman, A., Berdine, J., Cook, B.: Interprocedural shape analysis with separated heap abstractions. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 240–260. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Hesse, W.: Dynamic Computational Complexity. PhD thesis, Dept. of Computer Science, University of Massachusetts (June 2003)

    Google Scholar 

  5. Immerman, N., et al.: The boundary between decidability and undecidability for transitive closure logics. In: Workshop on Computer Science Logic, September 2004, pp. 160–174 (2004)

    Google Scholar 

  6. Immerman, N., et al.: Verification via structure simulation. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 281–294. Springer, Heidelberg (2004)

    Google Scholar 

  7. Klarlund, N., Schwartzbach, M.: Graph types. In: Symp. on Principles of Programming Languages (January 1993)

    Google Scholar 

  8. Lahiri, S., Qadeer, S.: Verifying properties of well-founded linked lists. In: Symp. on Principles of Programming Languages, January 2006, pp. 115–126 (2006)

    Google Scholar 

  9. Lee, O., Yang, H., Yi, K.: Automatic verification of pointer programs using grammar-based shape analysis. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 124–140. Springer, Heidelberg (2005)

    Google Scholar 

  10. Loginov, A., Reps, T., Sagiv, M.: Abstraction refinement via inductive learning. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 519–533. Springer, Heidelberg (2005)

    Google Scholar 

  11. Manevich, R., et al.: Predicate abstraction and canonical abstraction for singly-linked lists. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 181–198. Springer, Heidelberg (2005)

    Google Scholar 

  12. Møller, A., Schwartzbach, M.: The pointer assertion logic engine. In: Conf. on Programming Language Design and Impl., June 2001, pp. 221–231 (2001)

    Google Scholar 

  13. Nelson, G.: Verifying reachability invariants of linked structures. In: Symp. on Principles of Programming Languages, January 1983, pp. 38–47 (1983)

    Google Scholar 

  14. Reps, T., Sagiv, M., Loginov, A.: Finite differencing of logical formulas for static analysis. In: Degano, P. (ed.) ESOP 2003 and ETAPS 2003. LNCS, vol. 2618, pp. 380–398. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  15. Reynolds, J.: Separation Logic: A logic for shared mutable data structures. In: Symp. on Logic in Computer Science, July 2002, pp. 55–74 (2002)

    Google Scholar 

  16. Rinetzky, N., et al.: A semantics for procedure local heaps and its abstractions. In: Symp. on Principles of Programming Languages, January 2005, pp. 296–309 (2005)

    Google Scholar 

  17. Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. TOPLAS 24(3), 217–298 (2002)

    Article  Google Scholar 

  18. Yorsh, G., et al.: Logical characterizations of heap abstractions. To appear in ACM Transactions on Computational Logic (TOCL)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Thomas Reps Mooly Sagiv Jörg Bauer

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this chapter

Cite this chapter

Loginov, A., Reps, T., Sagiv, M. (2007). Refinement-Based Verification for Possibly-Cyclic Lists. In: Reps, T., Sagiv, M., Bauer, J. (eds) Program Analysis and Compilation, Theory and Practice. Lecture Notes in Computer Science, vol 4444. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71322-7_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-71322-7_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71315-9

  • Online ISBN: 978-3-540-71322-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics