Abstract
Algebras have always played a critical role in Unifying Theories of Programming, especially in their role in providing the “laws” of programming. The algebraic laws form a triad with two other forms, namely operational and denotational semantics. In this paper we demonstrate that algebras are not just for providing external laws for reasoning about programs. In addition, they can be very beneficial for assisting in the development of theoretical models, most notably denotational semantics. We refer to the algebras used to develop a denotational model as “inner algebras”, while the resulting algebraic semantics we consider to be an “outer algebra”. In this paper we present a number of inner algebras that arose in the development of a fully compositional denotational semantics, called UTCP, for shared-state concurrency. We explore how these algebras helped to develop (and debug!) the theory, and discuss how they may assist in the ultimate aim of exposing the outer algebra of UTCP, which we expect to be very similar to Concurrent Kleene Algebra.
This work was supported, in part, by Science Foundation Ireland grant 13/RC/2094 to Lero - the Irish Software Engineering Research Centre (www.lero.ie).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
We have to apply healthiness conditions as well, discussed later.
- 2.
A form of Herbrand interpretation!.
References
de Boer, F.S., Kok, J.N., Palamidessi, C., Rutten, J.J.M.M.: The failure of failures in a paradigm for asynchronous communication. In: Baeten, J.C.M., Groote, J.F. (eds.) CONCUR 1991. LNCS, vol. 527, pp. 111–126. Springer, Heidelberg (1991). https://doi.org/10.1007/3-540-54430-5_84
Brookes, S.D.: Full abstraction for a shared-variable parallel language. Inf. Comput. 127(2), 145–163 (1996). https://doi.org/10.1006/inco.1996.0056
Butterfield, A.: Saoithín: a theorem prover for UTP. In: Qin, S. (ed.) UTP 2010. LNCS, vol. 6445, pp. 137–156. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16690-7_6
Butterfield, A.: The logic of U\(\cdot \)(TP)\(^{2}\). In: Wolff, B., Gaudel, M.-C., Feliachi, A. (eds.) UTP 2012. LNCS, vol. 7681, pp. 124–143. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35705-3_6
Butterfield, A.: UTPCalc—a calculator for UTP predicates. In: Bowen, J.P., Zhu, H. (eds.) UTP 2016. LNCS, vol. 10134, pp. 197–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-52228-9_10
Butterfield, A.: UTCP: compositional semantics for shared-variable concurrency. In: Cavalheiro, S., Fiadeiro, J. (eds.) SBMF 2017. LNCS, vol. 10623, pp. 253–270. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70848-5_16
Butterfield, A., Sherif, A., Woodcock, J.: Slotted-circus. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 75–97. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73210-5_5
Calcagno, C., O’Hearn, P.W., Yang, H.: Local action and abstract separation logic. In: Proceedings of 22nd IEEE Symposium on Logic in Computer Science, LICS 2007, Wroclaw, Poland, 10–12 July 2007, pp. 366–378. IEEE Computer Society (2007)
Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M.J., Yang, H.: Views: compositional reasoning for concurrent programs. In: Giacobazzi, R., Cousot, R. (eds.) The 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2013, Rome, Italy, 23–25 January 2013, pp. 287–300. ACM (2013). https://doi.org/10.1145/2480359.2429104
Foster, S., Cavalcanti, A., Woodcock, J., Zeyda, F.: Unifying theories of time with generalised reactive processes. Inf. Process. Lett. 135, 47–52 (2018). https://doi.org/10.1016/j.ipl.2018.02.017
Foster, S., Ye, K., Cavalcanti, A., Woodcock, J.: Calculational verification of reactive programs with reactive relations and Kleene algebra. In: Desharnais, J., Guttmann, W., Joosten, S. (eds.) RAMiCS 2018. LNCS, vol. 11194, pp. 205–224. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-02149-8_13
Foster, S., Zeyda, F., Woodcock, J.: Isabelle/UTP: a mechanised theory engineering framework. In: Naumann, D. (ed.) UTP 2014. LNCS, vol. 8963, pp. 21–41. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-14806-9_2
Gancarski, P., Butterfield, A.: The denotational semantics of slotted-Circus. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 451–466. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-05089-3_29
Gancarski, P., Butterfield, A.: Prioritized slotted-Circus. In: Cavalcanti, A., Deharbe, D., Gaudel, M.-C., Woodcock, J. (eds.) ICTAC 2010. LNCS, vol. 6255, pp. 91–105. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14808-8_7
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Upper Saddle River (1998)
Hoare, C.A.R., Möller, B., Struth, G., Wehrman, I.: Concurrent Kleene algebra and its foundations. J. Logic Algebraic Program. 80(6), 266–296 (2011). https://doi.org/10.1016/j.jlap.2011.04.005. http://www.sciencedirect.com/science/article/pii/S1567832611000166. Relations and Kleene Algebras in Computer Science
Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM Trans. Program. Lang. Syst. 5(4), 596–619 (1983). https://doi.org/10.1145/69575.69577
Lamport, L.: An axiomatic semantics of concurrent programming languages. In: Apt, K.R. (ed.) Logics and Models of Concurrent Systems. NATO ASI Series (Series F: Computer and Systems Sciences), vol. 13, pp. 77–122. Springer, Heidelberg (1985). https://doi.org/10.1007/978-3-642-82453-1_4
Oliveira, M., Cavalcanti, A., Woodcock, J.: A UTP semantics for Circus. Formal Aspects Comput. 21(1–2), 3–32 (2009). https://doi.org/10.1007/s00165-007-0052-5
Owicki, S.S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Inf. 6, 319–340 (1976). https://doi.org/10.1007/BF00268134
Pym, D., Spring, J.M., O’Hearn, P.: Why separation logic works. Philos. Technol. (2018). https://doi.org/10.1007/s13347-018-0312-8
Sherif, A., Jifeng, H.: Towards a time model for Circus. In: George, C., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, pp. 613–624. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36103-0_62
Staden, S.: Constructing the views framework. In: Naumann, D. (ed.) UTP 2014. LNCS, vol. 8963, pp. 62–83. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-14806-9_4
Woodcock, J., Hughes, A.: Unifying theories of parallel programming. In: George, C., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, pp. 24–37. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36103-0_5
Zhu, H., He, J., Qin, S., Brooke, P.J.: Denotational semantics and its algebraic derivation for an event-driven system-level language. Formal Aspects Comput. 27(1), 133–166 (2015). https://doi.org/10.1007/s00165-014-0309-8
Zhu, H., Yang, F., He, J.: Generating denotational semantics from algebraic semantics for event-driven system-level language. In: Qin, S. (ed.) UTP 2010. LNCS, vol. 6445, pp. 286–308. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16690-7_15
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Butterfield, A. (2019). The Inner and Outer Algebras of Unified Concurrency. In: Ribeiro, P., Sampaio, A. (eds) Unifying Theories of Programming. UTP 2019. Lecture Notes in Computer Science(), vol 11885. Springer, Cham. https://doi.org/10.1007/978-3-030-31038-7_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-31038-7_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31037-0
Online ISBN: 978-3-030-31038-7
eBook Packages: Computer ScienceComputer Science (R0)