A Groupoid of Isomorphic Data Transformations

  • Paul Tarau
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5625)


As a variation on the known theme of Gödel numberings, isomorphisms defining data type transformations in a strongly typed functional language are organized as a finite groupoid using a higher order combinator language that unifies popular data types as diverse as natural numbers, finite sequences, digraphs, hypergraphs and finite permutations with more exotic ones like hereditarily finite functions, sets and permutations.


computational mathematics in Haskell data type transformations ranking/unranking Gödel numberings higher order combinators hylomorphisms 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lakoff, G., Johnson, M.: Metaphors We Live By. University of Chicago Press, Chicago (1980)Google Scholar
  2. 2.
    Cook, S.: Theories for complexity classes and their propositional translations. In: Complexity of computations and proofs, pp. 1–36 (2004)Google Scholar
  3. 3.
    Gödel, K.: Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I. Monatshefte für Mathematik und Physik 38, 173–198 (1931)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Hartmanis, J., Baker, T.P.: On simple goedel numberings and translations. In: Loeckx, J. (ed.) ICALP 1974. LNCS, vol. 14, pp. 301–316. Springer, Heidelberg (1974)CrossRefGoogle Scholar
  5. 5.
    Mac Lane, S.: Categories for the Working Mathematician. Springer, New York (1998)zbMATHGoogle Scholar
  6. 6.
    Pepis, J.: Ein verfahren der mathematischen logik. The Journal of Symbolic Logic 3(2), 61–76 (1938)CrossRefzbMATHGoogle Scholar
  7. 7.
    Kalmar, L.: On the reduction of the decision problem. first paper. ackermann prefix, a single binary predicate. The Journal of Symbolic Logic 4(1), 1–9 (1939)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Robinson, J.: General recursive functions. Proceedings of the American Mathematical Society 1(6), 703–718 (1950)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine, part i. Commun. ACM 3(4), 184–195 (1960)CrossRefzbMATHGoogle Scholar
  10. 10.
    Tarau, P.: Declarative Combinatorics: Isomorphisms, Hylomorphisms and Hereditarily Finite Data Types in Haskell, 104 pages (January 2009) (unpublished draft),
  11. 11.
    Meijer, E., Hutton, G.: Bananas in Space: Extending Fold and Unfold to Exponential Types. In: FPCA, pp. 324–333 (1995)Google Scholar
  12. 12.
    Takahashi, M.O.: A Foundation of Finite Mathematics. Publ. Res. Inst. Math. Sci. 12(3), 577–708 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Ackermann, W.F.: Die Widerspruchsfreiheit der allgemeinen Mengenlhere. Mathematische Annalen (114), 305–315 (1937)Google Scholar
  14. 14.
    Knuth, D.E.: The art of computer programming, 3rd edn. seminumerical algorithms, vol. 2. Addison-Wesley/ Longman Publishing Co., Inc., Boston (1997)zbMATHGoogle Scholar
  15. 15.
    Mantaci, R., Rakotondrajao, F.: A permutations representation that knows what ”eulerian” means. Discrete Mathematics & Theoretical Computer Science 4(2), 101–108 (2001)MathSciNetzbMATHGoogle Scholar
  16. 16.
    Alimarine, A., Smetsers, S., van Weelden, A., van Eekelen, M., Plasmeijer, R.: There and back again: arrows for invertible programming. In: Haskell 2005: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, pp. 86–97. ACM Press, New York (2005)CrossRefGoogle Scholar
  17. 17.
    Conal Elliott: Data.Bijections Haskell Module,
  18. 18.
    Hughes, J.: Generalizing Monads to Arrows Science of Computer Programming 37, 67–111 (2000)Google Scholar
  19. 19.
    Martinez, C., Molinero, X.: Generic algorithms for the generation of combinatorial objects. In: Rovan, B., Vojtáš, P. (eds.) MFCS 2003. LNCS, vol. 2747, pp. 572–581. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  20. 20.
    Knuth, D.: The Art of Computer Programming, vol. 4, draft (2006),
  21. 21.
    Myrvold, W., Ruskey, F.: Ranking and unranking permutations in linear time. Information Processing Letters 79, 281–284 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Cégielski, P., Richard, D.: Decidability of the theory of the natural integers with the cantor pairing function and the successor. Theor. Comput. Sci. 257(1-2), 51–77 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Rosenberg, A.L.: Efficient pairing functions - and why you should care. International Journal of Foundations of Computer Science 14(1), 3–17 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  24. 24.
    Kaye, R., Wong, T.L.: On Interpretations of Arithmetic and Set Theory. Notre Dame J. Formal Logic Volume 48(4), 497–510 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  25. 25.
    Kirby, L.: Addition and multiplication of sets. Math. Log. Q. 53(1), 52–65 (2007)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Paul Tarau
    • 1
  1. 1.Department of Computer Science and EngineeringUniversity of North TexasUSA

Personalised recommendations