Abstract
This paper contributes to the unification of semantic models and program development techniques by making a link from multirelations and predicate transformer semantics to algebraic semantics and the derivation of programs by calculation, as used in functional programming and relational program development. Two common ways to characterise iteration, namely the functional programming operators map and fold, are extended to multirelations, using concepts from category theory, power allegories and monads.
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
Rewitzky, I.: Binary multirelations. In: de Swart, H., Orłowska, E., Schmidt, G., Roubens, M. (eds.) Theory and Applications of Relational Structures as Knowledge Instruments. LNCS, vol. 2929, pp. 259–274. Springer, Heidelberg (2003)
Dunne, S.: Chorus angelorum. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, pp. 19–33. Springer, Heidelberg (2006)
Martin, C.E., Curtis, S.A., Rewitzky, I.: Modelling angelic and demonic nondeterminism with multirelations. Science of Computer Programming 65(2), 140–158 (2007)
Martin, C.E., Curtis, S.A.: Nondeterministic folds. In: Uustalu, T. (ed.) MPC 2006. LNCS, vol. 4014, pp. 274–298. Springer, Heidelberg (2006)
Hoare, C.A.R., Jifeng, H.: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)
Cavalcanti, A., Woodcock, J.C.P., Dunne, S.E.: Angelic nondeterminism in the unifying theories of programming. Formal Aspects of Computing 18(3), 288–307 (2006)
Cavalcanti, A., Woodcock, J.C.P.: Angelic nondeterminism and unifying theories of programming. In: Derrick, J., Boiten, E. (eds.) REFINE 2005, vol. 137. Elsevier, Amsterdam (2005)
Hesselink, W.: Multirelations are predicate transformers. Technical Report, Dept. of Computing Science, Groningen, The Netherlands (2004)
Back, R., Wright, J.: Refinement Calculus: A Systematic Introduction. Springer, New York (1998)
Morgan, C.C.: Programming from Specifications, 2nd edn. Prentice-Hall, Englewood Cliffs (1994)
Bird, R.: An Introduction to Functional Programming using Haskell. Prentice-Hall, Englewood Cliffs (1998)
Bird, R., Moor, O.: The Algebra of Programming. Prentice-Hall, Englewood Cliffs (1997)
Gibbons, J., Jones, G.: The under-appreciated unfold. In: Proceedings 3rd ACM SIGPLAN Int. Conf. on Functional Programming, ICFP’98, Baltimore, MD, USA, September 26–29, vol. 34(1), pp. 273–279. ACM Press, New York (1998)
Fokkinga, M.M.: Monadic maps and folds for arbitrary datatypes. Memoranda Informatica 94-28 (1994)
Pardo, A.: Monadic corecursion - definition, fusion laws, and applications. Electronic Notes in Theoretical Computer Science 11, 105–139 (1998)
Hasuo, I., Jacobs, B., Sokolova, A.: Generic trace theory. Electronic Notes in Theoretical Computer Science 164(1), 47–65 (2006)
Freyd, P., Ščedrov, A.: Categories, Allegories. Springer, Heidelberg (1993)
Martin, C.E., Curtis, S.A.: The algebra of multirelations (2009) (in preparation)
MacLane, S.: Categories for the Working Mathematician, 2nd edn. Springer, Heidelberg (1998)
Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order, 2nd edn. Cambridge University Press, Cambridge (2002)
Martin, C.E., Curtis, S.A.: Supplement to this paper (2009), http://cms.brookes.ac.uk/staff/SharonCurtis/publications/mf-supp.pdf
Dawson, J.E.: Compound monads in specification languages. In: Proceedings of Programming Languages meets Program Verification, PLPV 2007, pp. 3–10. ACM Press, New York (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Martin, C.E., Curtis, S.A. (2010). Monadic Maps and Folds for Multirelations in an Allegory. In: Butterfield, A. (eds) Unifying Theories of Programming. UTP 2008. Lecture Notes in Computer Science, vol 5713. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14521-6_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-14521-6_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14520-9
Online ISBN: 978-3-642-14521-6
eBook Packages: Computer ScienceComputer Science (R0)