Skip to main content

The algebra of recursive graph transformation language UnCAL: complete axiomatisation and iteration categorical semantics


The aim of this paper is to provide mathematical foundations of a graph transformation language, called UnCAL, using categorical semantics of type theory and fixed points. About 20 years ago, Buneman et al. developed a graph database query language UnQL on the top of a functional meta-language UnCAL for describing and manipulating graphs. Recently, the functional programming community has shown renewed interest in UnCAL, because it provides an efficient graph transformation language which is useful for various applications, such as bidirectional computation.

In order to make UnCAL more flexible and fruitful for further extensions and applications, in this paper, we give a more conceptual understanding of UnCAL using categorical semantics. Our general interest of this paper is to clarify what is the algebra of UnCAL. Thus, we give an equational axiomatisation and categorical semantics of UnCAL, both of which are new. We show that the axiomatisation is complete for the original bisimulation semantics of UnCAL. Moreover, we provide a clean characterisation of the computation mechanism of UnCAL called ‘structural recursion on graphs’ using our categorical semantics. We show a concrete model of UnCAL given by the λG-calculus, which shows an interesting connection to lazy functional programming.

Hide All
Abramsky, S. and Jung, A. (1994). Domain theory. In: Gabbay, D. and Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, volume 3, Oxford University Press, 1168.
Aczel, P., Adámek, J., Milius, S. and Velebil, J. (2003). Infinite trees and completely iterative theories: A coalgebraic view. Theoretical Computer Science 300 (1–3) 145.
Amadio, R.M. and Curien, P.-L. (1998). Domains and Lambda-Calculi. Cambridge University Press.
Ariola, Z.M. and Blom, S. (1997). Cyclic lambda calculi. In: Abadi, M. and Ito, T. (eds.) Theoretical Aspects of Computer Software, LNCS, volume 1281, 77106.
Ariola, Z.M. and Klop, J.W. (1996). Equational term graph rewriting. Fundamenta Informaticae 26 (3/4) 207240.
Asada, K., Hidaka, S., Kato, H., Hu, Z. and Nakano, K. (2013). A parameterized graph transformation calculus for finite graphs with monadic branches. In: Proceedings of PPDP '13 73–84.
Baader, F. and Nipkow, T. (1998). Term Rewriting and All That. Cambridge University Press.
Benton, N. and Hyland, M. (2003). Traced premonoidal categories. Theoretical Informatics and Applications 37 (4) 273299.
Blanqui, F. (2000). Termination and confluence of higher-order rewrite systems. In: Bachmair, L. (ed.) Rewriting Techniques and Application (RTA 2000). Lecture Notes in Computer Science, Springer, 1833, 4761.
Blanqui, F., Jouannaud, J.-P. and Okada, M. (2002). Inductive data type systems. Theoretical Computer Science 272 (1) 4168.
Bloom, S.L. and Ésik, Z. (1993). Iteration Theories - The Equational Logic of Iterative Processes. EATCS Monographs on Theoretical Computer Science, Springer.
Bloom, S.L. and Ésik, Z. (1994). Solving polynomial fixed point equations. In: Proceedings of MFCS'94. Lecture Notes in Computer Science, 841, 52–67.
Bloom, S.L., Ésik, Z. and Taubner, D. (1993). Iteration theories of synchronization trees. Information and Computation 102 (1) 155.
Buneman, P. (2015). Database and programming: Two subjects divided by a common language? (invited talk). In: POPL'15 487–487.
Buneman, P., Davidson, S., Hillebrand, G. and Suciu, D. (1996). A query language and optimization techniques for unstructured data. In: Proceedings of ACM-SIGMOD'96 505–516.
Buneman, P., Davidson, S.B., Fernandez, M.F. and Suciu, D. (1997). Adding structure to unstructured data. In: Proceedings of ICDT '97 336–350.
Buneman, P., Fernandez, M.F. and Suciu, D. (2000). UnQL: A query language and algebra for semistructured data based on structural recursion. VLDB Journal 9 (1) 76110.
Coquand, T. (1992). Pattern matching with dependent types. In: Proceedings of the 3rd Work. on Types for Proofs and Programs 66–79.
Corradini, A. and Gadducci, F. (1999). An algebraic presentation of term graphs, via gs-monoidal categories. Applied Categorical Structures 7 (4) 299331.
Crole, R. (1993). Categories for Types. Cambridge Mathematical Textbook.
Ésik, Z. (1999a). Axiomatizing iteration categories. Acta Cybernetica 14 (1) 6582.
Ésik, Z. (1999b). Group axioms for iteration. Information and Computation 148 (2) 131180.
Ésik, Z. (2000). Axiomatizing the least fixed point operation and binary supremum. In: Proceedings of Computer Science Logic 2000. Lecture Notes in Computer Science, 1862 302–316.
Ésik, Z. (2002). Continuous additive algebras and injective simulations of synchronization trees. Journal of Logic and Computation 12 (2) 271300.
Fiore, M.P. and Campos, M.D. (2013). The algebra of directed acyclic graphs. In: Coecke, B., Ong, L. and Panangaden, P. (eds.) Computation, Logic, Games, and Quantum Foundations. Lecture Notes in Computer Science 7860, 37–51.
Fischer, S., Kiselyov, O. and Shan, C. (2011). Purely functional lazy nondeterministic programming. Journal of Functional Programming 21 (4–5) 413465.
Ghani, N., Lüth, C. and Marchi, F.D. (2005). Monads of coalgebras: Rational terms and term graphs. Mathematical Structures in Computer Science 15 (3) 433451.
Gibbons, J. (1995). An initial-algebra approach to directed acyclic graphs. In: MPC'95 282–303.
Hagino, T. (1987). A typed lambda calculus with categorical type constructors. In: Pitt, D.H., Poign, A. and Rydeheard, D.E. (eds.) Category Theory in Computer Science'87. Lecture Notes in Computer Science, Springer-Verlag, 283 140157.
Hamana, M. (2010). Initial algebra semantics for cyclic sharing tree structures. Logical Methods in Computer Science 6 (3) 123.
Hamana, M. (2012). Correct looping arrows from cyclic terms: Traced categorical interpretation in Haskell. In: Proceedings of FLOPS'12. Lecture Notes in Computer Science, 7294 136–150.
Hamana, M. (2015). Iteration algebras for UnQL graphs and completeness for bisimulation. In: Proceedings of Fixed Points in Computer Science (FICS'15). Electronic Proceedings in Theoretical Computer Science, 191 75–89.
Hamana, M. (2016). Strongly normalising cyclic data computation by iteration categories of second-order algebraic theories. In: Proceedings of Formal Structures for Computation and Deduction (FSCD'16), Leibniz International Proceedings in Informatics (LIPIcs), 52 1–18.
Hasegawa, M. (1997a). Models of Sharing Graphs: A Categorical Semantics of let and letrec , Ph.D. thesis, University of Edinburgh. Distinguished Dissertation Series, Springer-Verlag, 1999.
Hasegawa, M. (1997b). Recursion from cyclic sharing: Traced monoidal categories and models of cyclic lambda calculi. In: Proceedings of TLCA'97 196–213.
Hidaka, S., Asada, K., Hu, Z., Kato, H. and Nakano, K. (2013a). Structural recursion for querying ordered graphs. In: Proceedings of ACM SIGPLAN ICFP'13, 305–318.
Hidaka, S., Hu, Z., Inaba, K. and Kato, H. (2013b). GRoundTram: An integrated framework for developing well-behaved bidirectional model transformations. Progress in Informatics 10 131138.
Hidaka, S., Hu, Z., Inaba, K., Kato, H., Matsuda, K. and Nakano, K. (2010). Bidirectionalizing graph transformations. In: Proceedings of ICFP 2010 205–216.
Hidaka, S., Hu, Z., Inaba, K., Kato, H., Matsuda, K., Nakano, K. and Sasano, I. (2011). Marker-directed optimization of UnCAL graph transformations. In: Proceedings of LOPSTR'11 123–138.
Immerman, N. (1987). Languages that capture complexity classes. SIAM Journal on Computing 16 (4) 760778.
Joyal, A., Street, R. and Verity, D. (1996). Traced monoidal categories. Mathematical Proceedings of the Cambridge Philosophical Society 119 (3) 447468.
Klop, J. (1980). Combinatory Reduction Systems, Ph.D. thesis, CWI, Amsterdam. volume 127 of Mathematical Centre Tracts.
Klop, J., Oostrom, V. and Raamsdonk, F. (1993). Combinatory reduction systems: Introduction and survey. Theoretical Computer Science 121 (1&2) 279308.
Lambek, J. and Scott, P. (1986). Introduction to Higher Order Categorical Logic, Cambridge Studies in Advanced Mathematics, volume 7, Cambridge University Press.
Launchbury, J. (1993). A natural semantics for lazy evaluation. In: Proceedings of POPL'93 144–154.
MacAAAALane, S. (1965). Categorical algebra. Bulletin of the American Mathematical Society 71 (1) 40106.
MacAAAALane, S. (1971). Categories for the Working Mathematician, Graduate Texts in Mathematics, volume 5, Springer-Verlag.
Matsuda, K. and Asada, K. (2015). Graph transformation as graph reduction: A functional reformulation of graph-transformation language UnCAL. Technical Report GRACE-TR 2015-01, National Institute of Informatics. Available at
Meertens, L.G.L.T. (1992). Paramorphisms. Formal Aspects Computing 4 (5) 413424.
Milner, R. (1984). A complete inference system for a class of regular behaviours. Journal of Computer and System Sciences 28 (3) 439466.
Milner, R. (1989). Communication and Concurrency. Prentice Hall.
Milner, R. (1996). Calculi for interaction. Acta Informatica 33 (8) 707737.
Milner, R. (2005). Axioms for bigraphical structure. Mathematical Structures in Computer Science 15 (6) 10051032.
Milner, R. (2006). Pure bigraphs: Structure and dynamics. Information and Computation 204 (1) 60122.
Nakata, K. and Hasegawa, M. (2009). Small-step and big-step semantics for call-by-need. Journal of Functional Programming 19 (6) 699722.
Nishimura, S. and Ohori, A. (1999). Parallel functional programming on recursively defined data via data-parallel recursion. Journal of Functional Programming 9 (4) 427462.
Nishimura, S., Ohori, A. and Tajima, K. (1996). An equational object-oriented data model and its data-parallel query language. In: Proceedings of ACM SIGPLAN Object-Oriented Programming Systems, Languages & Applications (OOPSLA'96) 1–17.
Paterson, R. (2001). A new notation for arrows. In: Proceedings of ICFP'07 229–240.
Plotkin, G. (2012). An algebraic view of bigraphs. A talk at Milner Symposium 2012, University of Edinburgh.
Power, J. and Robinson, E. (1997). Premonoidal categories and notions of computation. Mathematical Structures in Computer Science 7 (5) 453468.
Salomaa, A. (1966). Two complete axiom systems for the algebra of regular events. Journal of the ACM 13 (1) 158169.
Sewell, P.M. (1995). The Algebra of Finite State Processes, Ph.D. thesis, University of Edinburgh. Dept. of Computer Science technical report CST-118-95, also published as LFCS-95-328.
Simpson, A.K. and Plotkin, G.D. (2000). Complete axioms for categorical fixed-point operators. In: Proceedings of LICS'00 30–41.
Staton, S. (2011). Relating coalgebraic notions of bisimulation. Logical Methods in Computer Science 7 (1) 152.
Winskel, G. (1993). The Formal Semantics of Programming Languages. The MIT Press.
Yu, Y., Lin, Y., Hu, Z., Hidaka, S., Kato, H. and Montrieux, L. (2012). Maintaining invariant traceability through bidirectional transformations. In: Proceedings of International Conference on Software Engineering, ICSE 2012 540–550.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed