One division of concurrency thinking is between shared-variable and communication-based approaches. This abstract sketches a DAG of connections (with [n] referring back to the nth list item) on the former topic (our planned research will cover the latter which intertwines with the points below; also Temporal Logic research is for future work).
Perhaps the root of the directed graph should be challenge problems because these have been extremely stimulating: Dijkstra was a master (e.g. “Dining Philosophers”); Owicki’s “Find”, Hoare’s “Sieve of Eratosthenes”, the “Fisher/Galler algorithm” and Simpson’s “Four-slot” deserve special mention.
Currently: research on Views promises a common way of showing property-oriented methods to be sound; recent developments on recasting R/G methods have led to pleasing and useful algebraic presentations. [Hay16, HJ18].
[Apt81] Krzysztof R. Apt. Ten years of Hoare’s logic: a survey—part I. ACM Transactions on Programming Languages and Systems, 3(4):431–483, October 1981.
[dR01] Willem-Paul de Roever. Concurrency Verification: Introduction to Compositional and Noncompositional Methods. Cambridge University Press, 2001.
[FFS07] Xinyu Feng, Rodrigo Ferreira, and Zhong Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP: Programming Languages and Systems, pages 173– 188. Springer, 2007.
[Hay16] I. J. Hayes. Generalised rely-guarantee concurrency: An algebraic foundation. Formal Aspects of Computing, 28(6):1057–1078, November 2016.
[HJ18] I. J. Hayes and C. B. Jones. A guide to rely/guarantee thinking. In Jonathan Bowen, Zhiming Liu, and Zili Zhan, editors, Engineering Trustworthy Software Systems – Second International School, SETSS 2017, LNCS. Springer-Verlag, 2018.
[Hoa69] Charles Antony Richard Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576–580, 1969.
[Hoa71] Charles Antony Richard Hoare. Proof of a program: FIND. Communications of the ACM, 14(1):39–45, January 1971.
[Hoa72] C. A. R. Hoare. Towards a theory of parallel programming. In Operating System Techniques, pages 61–71. Academic Press, 1972.
[Jon81] C. B. Jones. Development Methods for Computer Programs including a Notion of Interference. PhD thesis, Oxford University, June 1981. Printed as: Programming Research Group, Technical Monograph 25.
[Jon03] Cliff B. Jones. The early search for tractable ways of reason- ing about programs. IEEE, Annals of the History of Computing, 25(2):26–49, 2003.
[OG76] S. S. Owicki and D. Gries. An axiomatic proof technique for parallel programs I. Acta Informatica, 6:319–340, 1976.
[O’H07] Peter O’Hearn. Resources, concurrency and local reasoning. (accepted for publication in) Theoretical Computer Science, 2007.
[Owi75] S. S. Owicki. Axiomatic Proof Techniques for Parallel Programs. PhD thesis, Department of Computer Science, Cornell University, 1975. Hard copy - Published as technical report 75-251.
[Rey00] J. C. Reynolds. Intuitionistic reasoning about shared mutable data structure. In Jim Davies, Bill Roscoe, and Jim Woodcock, editors, Millennial Perspectives in Computer Science, pages 303–321, Houndsmill, Hampshire, 2000. Palgrave.
[Vaf07] Viktor Vafeiadis. Modular fine-grained concurrency verification. PhD thesis, University of Cambridge, 2007.