Reasoning About Data-Parallel Pointer Programs in a Modal Extension of Separation Logic

  • Susumu Nishimura
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4019)


This paper proposes a modal extension of Separation Logic [1,2] for reasoning about data-parallel programs that manipulate heap allocated linked data structures. Separation Logic provides a formal means for expressing allocation of disjoint substructures, which are to be processed in parallel. A modal operator is also introduced to relate the global property of a parallel operation with the local property of each sequential execution running in parallel. The effectiveness of the logic is demonstrated through a formal reasoning on the parallel list scan algorithm featuring the pointer jumping technique.


Inference Rule Parallel Execution Modal Extension Local Copy Separation Logic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 14–26. ACM Press, New York (2001)CrossRefGoogle Scholar
  2. 2.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: 17th IEEE Symposium on Logic in Computer Science (LICS 2002), pp. 55–74. IEEE Computer Society, Los Alamitos (2002)CrossRefGoogle Scholar
  3. 3.
    Hillis, W., Steele Jr., G.L.: Data parallel algorithms. Communications of ACM 29(12), 1170–1183 (1986)CrossRefGoogle Scholar
  4. 4.
    Blelloch, G.E.: Prefix sums and their applications. Technical Report CMU-CS-90-190, Carnegie Mellon University (1990)Google Scholar
  5. 5.
    Hatcher, P., Quinn, M.: Data-Parallel Programming on MIMD Computers. MIT Press, Cambridge (1991)zbMATHGoogle Scholar
  6. 6.
    Gibbons, A., Rytter, W.: Efficient Parallel Algorithms. Cambridge University Press, Cambridge (1988)zbMATHGoogle Scholar
  7. 7.
    Bougé, L., Cachera, D., Guyadec, Y.L., Utard, G., Virot, B.: Formal validation of data-parallel programs: A two-component assertional proof system for a simple language. Theoretical Computer Science 189(1-2), 71–107 (1997)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Blelloch, G.E., Greiner, J.: A provable time and space efficient implementation of NESL. In: ACM SIGPLAN International Conference on Functional Programming (ICFP 1996), pp. 213–225. ACM Press, New York (1996)CrossRefGoogle Scholar
  9. 9.
    Nishimura, S., Ohori, A.: Parallel functional programming via data-parallel recursion. Journal of Functional Programming 9(4), 427–463 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Berger, M., Honda, K., Yoshida, N.: A logical analysis of aliasing in imperative higher-order functions. In: International Conference on Functional Programming (ICFP 2005), pp. 280–293. ACM Press, New York (2005)CrossRefGoogle Scholar
  11. 11.
    Sims, É.J.: Extending separation logic with fixpoints and postponed substitution. In: Rattray, C., Maharaj, S., Shankland, C. (eds.) AMAST 2004. LNCS, vol. 3116, pp. 475–490. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  12. 12.
    Yang, H., O’Hearn, P.: A semantic basis for local reasoning. In: Nielsen, M., Engberg, U. (eds.) ETAPS 2002 and FOSSACS 2002. LNCS, vol. 2303, pp. 402–416. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    O’Hearn, P.: Resources, concurrency and local reasoning. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 49–67. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Susumu Nishimura
    • 1
  1. 1.Department of Mathematics, Faculty of ScienceKyoto UniversityKyotoJapan

Personalised recommendations