Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Verifying Concurrent Graph Algorithms

  • Conference paper
  • First Online:
Programming Languages and Systems (APLAS 2016)

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

Included in the following conference series:

Abstract

We show how to verify four challenging concurrent fine-grained graph-manipulating algorithms, including graph copy, a speculatively parallel Dijkstra, graph marking and spanning tree. We develop a reasoning method for such algorithms that dynamically tracks the contributions and responsibilities of each thread operating on a graph, even in cases of arbitrary recursive thread creation. We demonstrate how to use a logic without abstraction () to carry out abstract reasoning in the style of iCAP, by building the abstraction into the proof structure rather than incorporating it into the semantic model of the logic.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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 EPUB and 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

Similar content being viewed by others

Notes

  1. 1.

    stipulates that PCMs satisfy the cross-split property [8], which ours do.

References

  1. Bornat, R., Calcagno, C., O’Hearn, P.: Local reasoning, separation and aliasing. In: SPACE, vol. 4 (2004)

    Google Scholar 

  2. Dijkstra, E.W., Lamport, L., Martin, A.J., Scholten, C.S., Steffens, E.F.M.: On-the-fly darbage collection: an exercise in cooeration. In: Bauer, F.L., Dijkstra, E.W., Ershov, A., Griffiths, M., Hoare, C.A.R., Wulf, W.A., Samelson, K. (eds.) Language Hierarchies and Interfaces. LNCS, vol. 46, pp. 43–56. Springer, Heidelberg (1976). doi:10.1007/3-540-07994-7_48

    Chapter  Google Scholar 

  3. Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M., Yang, H.: Views: compositional reasoning for concurrent programs. In: POPL, pp. 287–300 (2013)

    Google Scholar 

  4. Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M., Vafeiadis, V.: Concurrent abstract predicates. In: ECOOP, pp. 504–528 (2010)

    Google Scholar 

  5. Dockins, R., Hobor, A., Appel, A.: A fresh look at separation algebras and share accounting. In: APLAS (2009)

    Google Scholar 

  6. Feng, X.: Local rely-guarantee reasoning. In: POPL, pp. 315–327 (2009)

    Google Scholar 

  7. Grama, A., Anshul, G., Karypis, G., Kumar, V.: Introduction to Parallel Computing, 2nd edn. Addison Wesley, Boston (2003)

    MATH  Google Scholar 

  8. Hobor, A., Villard, J.: The ramifications of sharing in data structures. In: Giacobazzi, R., Cousot, R. (eds.) POPL, pp. 523–536. ACM (2013)

    Google Scholar 

  9. Nanevski, A., Ley-Wild, R., Sergey, I., Delbianco, G.: Communicating state transition systems for fine-grained concurrent resources. In: ESOP, pp. 290–310 (2014)

    Google Scholar 

  10. Raad, A.: Ph.D. thesis, Imperial College London (2016, to appear)

    Google Scholar 

  11. Raad, A., Hobor, A., Villard, J., Gardner, P.: Verifying concurrent graph algorithms (extended) (2016)

    Google Scholar 

  12. Raad, A., Villard, J., Gardner, P.: CoLoSL: concurrent local subjective logic. In: ESOP, pp. 710–735 (2015)

    Google Scholar 

  13. Reynolds, J.: A short course on separation logic (2003). http://www.cs.cmu.edu/afs/cs.cmu.edu/project/fox-19/member/jcr/wwwaac2003/notes7.ps

  14. Sergey, I., Nanevski, A., Banerjee, A.: Mechanized verification of fine-grained concurrent programs. In: PLDI (2015)

    Google Scholar 

  15. Svendsen, K., Birkedal, L.: Impredicative concurrent abstract predicates. In: ESOP (2014)

    Google Scholar 

  16. Turon, A., Dreyer, D., Birkedal, L.: Unifying refinement and Hoare-style reasoning in a logic for higher-order concurrency. In: ICFP, pp. 377–390 (2013)

    Google Scholar 

  17. Yang, H.: Local reasoning for stateful programs. Ph.D. thesis, University of Illinois (2001)

    Google Scholar 

Download references

Acknowledgements

This research was supported by EPSRC programme grants EP/H008373/1 and EP/K008528/1, Yale-NUS College and R-607-265-045-121.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Azalea Raad .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Raad, A., Hobor, A., Villard, J., Gardner, P. (2016). Verifying Concurrent Graph Algorithms. In: Igarashi, A. (eds) Programming Languages and Systems. APLAS 2016. Lecture Notes in Computer Science(), vol 10017. Springer, Cham. https://doi.org/10.1007/978-3-319-47958-3_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47958-3_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47957-6

  • Online ISBN: 978-3-319-47958-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics