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}).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Dong, G., Su, J.: Incremental maintenance of recursive views using relational calculus/SQL. SIGMOD Record 29(1), 44–51 (2000)
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)
Hesse, W.: Dynamic Computational Complexity. PhD thesis, Dept. of Computer Science, University of Massachusetts (June 2003)
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)
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)
Klarlund, N., Schwartzbach, M.: Graph types. In: Symp. on Principles of Programming Languages (January 1993)
Lahiri, S., Qadeer, S.: Verifying properties of well-founded linked lists. In: Symp. on Principles of Programming Languages, January 2006, pp. 115–126 (2006)
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)
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)
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)
Møller, A., Schwartzbach, M.: The pointer assertion logic engine. In: Conf. on Programming Language Design and Impl., June 2001, pp. 221–231 (2001)
Nelson, G.: Verifying reachability invariants of linked structures. In: Symp. on Principles of Programming Languages, January 1983, pp. 38–47 (1983)
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)
Reynolds, J.: Separation Logic: A logic for shared mutable data structures. In: Symp. on Logic in Computer Science, July 2002, pp. 55–74 (2002)
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)
Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. TOPLAS 24(3), 217–298 (2002)
Yorsh, G., et al.: Logical characterizations of heap abstractions. To appear in ACM Transactions on Computational Logic (TOCL)
Author information
Authors and Affiliations
Editor information
Rights 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)