{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,4]],"date-time":"2024-09-04T21:05:36Z","timestamp":1725483936037},"publisher-location":"Berlin, Heidelberg","reference-count":26,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540438571"},{"type":"electronic","value":"9783540454427"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2002]]},"DOI":"10.1007\/3-540-45442-x_13","type":"book-chapter","created":{"date-parts":[[2007,5,15]],"date-time":"2007-05-15T00:55:08Z","timestamp":1179190508000},"page":"209-232","source":"Crossref","is-referenced-by-count":8,"title":["Inverting Functions as Folds"],"prefix":"10.1007","author":[{"given":"Shin-Cheng","family":"Mu","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Richard","family":"Bird","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2002,6,21]]},"reference":[{"key":"13_CR1","series-title":"Lect Notes Comput Sci","doi-asserted-by":"publisher","first-page":"187","DOI":"10.1007\/10722010_13","volume-title":"Mathematics of Program Construction 2000","author":"S. M. Abramov","year":"2000","unstructured":"S. M. Abramov and R. Gl\u00fcck. The universal resolving algorithm: inverse computation in a functional language. In R. C. Backhouse and J. N. F. d. Oliveira, editors, Mathematics of Program Construction 2000, number 1837 in Lecture Notes in Computer Science, pages 187\u2013212. Springer-Verlag, 2000."},{"key":"13_CR2","unstructured":"R. C. Backhouse, P. de Bruin, G. Malcolm, T. S. Voermans, and J. van der Woude. Relational catamorphisms. In B. Moller, editor, Proceedings of the IFIP TC2\/WG2.1 Working Conference on Constructing Programs, pages 287\u2013318. El-sevier Science Publishers B.V., 1991."},{"key":"13_CR3","series-title":"Lect Notes Comput Sci","first-page":"7","volume-title":"Formal Program Development. Proc. IFIP TC2\/WG 2.1 State of the Art Seminar","author":"R. C. Backhouse","year":"1992","unstructured":"R. C. Backhouse and P. F. Hoogendijk. Elements of a relational theory of datatypes. In B. Moller, H. Partsch, and S. A. Schuman, editors, Formal Program Development. Proc. IFIP TC2\/WG 2.1 State of the Art Seminar., number 755 in Lecture Notes in Computer Science, pages 7\u201342. Springer-Verlag, January 1992."},{"issue":"4","key":"13_CR4","doi-asserted-by":"publisher","first-page":"441","DOI":"10.1017\/S0956796897002803","volume":"7","author":"R. S. Bird","year":"1997","unstructured":"R. S. Bird. On building trees with minimum height. Journal of Functional Programming, 7(4):441\u2013445, 1997.","journal-title":"Journal of Functional Programming"},{"key":"13_CR5","unstructured":"R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997."},{"key":"13_CR6","series-title":"Lect Notes Comput Sci","doi-asserted-by":"publisher","first-page":"281","DOI":"10.1007\/3-540-47797-7_8","volume-title":"Algebraic and Coalgebraic Methods in the Mathematics of Program Construction","author":"R. S. Bird","year":"2002","unstructured":"R. S. Bird, J. Gibbons, and S.-C. Mu. Algebraic methods for optimization problems. In R. C. Backhouse, R. Crole, and J. Gibbons, editors, Algebraic and Coalgebraic Methods in the Mathematics of Program Construction, number 2297 in Lecture Notes in Computer Science, pages 281\u2013307. Springer-Verlag, January 2002."},{"key":"13_CR7","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1016\/0167-6423(90)90042-C","volume":"15","author":"W. Chen","year":"1990","unstructured":"W. Chen and J. T. Udding. Program inversion: more than fun! Science of Computer Programming, 15:1\u201313, 1990.","journal-title":"Science of Computer Programming"},{"key":"13_CR8","doi-asserted-by":"crossref","unstructured":"T.-R. Chuang and B. Goldberg. Real-time deques, multihead Turing machines, and purely functional programming. In Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 1993. ACM Press.","DOI":"10.1145\/165180.165225"},{"key":"13_CR9","series-title":"Lect Notes Comput Sci","doi-asserted-by":"publisher","first-page":"371","DOI":"10.1007\/3-540-45499-3_27","volume-title":"Proceedings of Algebraic Methodology and Software Technology 2000","author":"O. Moor de","year":"2000","unstructured":"O. de Moor and J. Gibbons. Pointwise relational programming. In Proceedings of Algebraic Methodology and Software Technology 2000, number 1816 in Lecture Notes in Computer Science, pages 371\u2013390. Springer-Verlag, May 2000."},{"key":"13_CR10","unstructured":"E. W. Dijkstra. Program inversion. Technical Report EWD671, Eindhoven University of Technology, 1978."},{"key":"13_CR11","series-title":"Lect Notes Comput Sci","doi-asserted-by":"crossref","first-page":"242","DOI":"10.1007\/3-540-60117-1_14","volume-title":"Mathematics of Program Construction, 3rd International Conference","author":"H. Doornbos","year":"1995","unstructured":"H. Doornbos and R. C. Backhouse. Induction and recursion on datatypes. In B. Moller, editor, Mathematics of Program Construction, 3rd International Conference, number 947 in Lecture Notes in Computer Science, pages 242\u2013256. Springer-Verlag, July 1995."},{"key":"13_CR12","doi-asserted-by":"crossref","unstructured":"J. Gibbons, G. Hutton, and T. Altenkirch. When is a function a fold or an unfold? In A. Corradini, M. Lenisa, and U. Montanari, editors, Coalgebraic Methods in Computer Science, number 44.1 in Electronic Notes in Theoretical Computer Science, April 2001.","DOI":"10.1016\/S1571-0661(04)80906-X"},{"key":"13_CR13","unstructured":"J. Gibbons and G. Jones. Linear-time breadth-first tree algorithms: an exercise in the arithmetic of folds and zips. Technical report, University of Auckland, 1993. University of Auckland Computer Science Report No. 71, and IFIP Working Group 2.1 working paper 705 WIN-2."},{"key":"13_CR14","doi-asserted-by":"crossref","unstructured":"D. Gries. The Science of Programming. Springer Verlag, 1981.","DOI":"10.1007\/978-1-4612-5983-1"},{"key":"13_CR15","unstructured":"D. Gries and J. L. van de Snepscheut. Inorder traversal of a binary tree and its inversion. In E. W. Dijkstra, editor, Formal Development of Programs and Proofs, pages 37\u201342. Addison Wesley, 1990."},{"key":"13_CR16","doi-asserted-by":"publisher","first-page":"211","DOI":"10.1007\/BF01185679","volume":"29","author":"P. G. Harrison","year":"1992","unstructured":"P. G. Harrison and H. Khoshnevisan. On the synthesis of function inverses. Acta Informatica, 29:211\u2013239, 1992.","journal-title":"Acta Informatica"},{"issue":"2","key":"13_CR17","doi-asserted-by":"crossref","first-page":"191","DOI":"10.1017\/S0956796899003640","volume":"10","author":"P. F. Hoogendijk","year":"2000","unstructured":"P. F. Hoogendijk and O. de Moor. Container types categorically. Journal of Functional Programming, 10(2):191\u2013225, March 2000.","journal-title":"Journal of Functional Programming"},{"issue":"4","key":"13_CR18","doi-asserted-by":"publisher","first-page":"514","DOI":"10.1137\/0121057","volume":"21","author":"T. C. Hu","year":"1971","unstructured":"T. C. Hu and A. C. Tucker. Optimal computer search trees and variable-length alphabetical codes. SIAM Journal on Applied Mathematics, 21(4):514\u2013532, 1971.","journal-title":"SIAM Journal on Applied Mathematics"},{"key":"13_CR19","unstructured":"E. Knapen. Relational Programming, Program Inversion, and the Derivation of Parsing Algorithms. Master\u2019s thesis, Eindhoven University of Technology, 23 November 1993."},{"key":"13_CR20","unstructured":"R. E. Korf. Inversion of applicative programs. In Proceedings of the Seventh Intern. Joint Conference on Artificial Intelligence (IJCAI-81), pages 1007\u20131009. William Kaufmann, Inc., 1981."},{"issue":"4","key":"13_CR21","doi-asserted-by":"publisher","first-page":"583","DOI":"10.1017\/S0956796800001489","volume":"5","author":"C. Okasaki","year":"1995","unstructured":"C. Okasaki. Simple and efficient purely functional queues and deques. Journal of Functional Programming, 5(4):583\u2013592, 1995.","journal-title":"Journal of Functional Programming"},{"key":"13_CR22","doi-asserted-by":"crossref","unstructured":"C. Okasaki. Breadth-first numbering: lessons from a small exercise in algorithm design. In Proceedings of the 2000 ACM SIGPLAN International Conference on Functional Programming, pages 131\u2013136. ACM Press, September 2000.","DOI":"10.1145\/351240.351253"},{"key":"13_CR23","doi-asserted-by":"crossref","unstructured":"C. Pareja-Flores and J. \u00c1. Vel\u00e1zquez-Iturbide. Synthesis of functions by transformations and constraints. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, page 317, Amsterdam, The Netherlands, June 1997. ACM Press.","DOI":"10.1145\/258948.258986"},{"key":"13_CR24","doi-asserted-by":"publisher","first-page":"331","DOI":"10.1007\/BF01211087","volume":"9","author":"B. J. Ross","year":"1997","unstructured":"B. J. Ross. Running programs backwards: the logical inversion of imperative computation. Formal Aspects of Computing Journal, 9:331\u2013348, 1997.","journal-title":"Formal Aspects of Computing Journal"},{"key":"13_CR25","series-title":"Lect Notes Comput Sci","doi-asserted-by":"crossref","first-page":"291","DOI":"10.1007\/3-540-56625-2_19","volume-title":"Mathematics of Program Construction 1992","author":"B. Schoenmakers","year":"1993","unstructured":"B. Schoenmakers. Inorder traversal of a binary heap and its inversion in optimal time and space. In Mathematics of Program Construction 1992, number 669 in Lecture Notes in Computer Science, pages 291\u2013301. Springer-Verlag, 1993."},{"key":"13_CR26","unstructured":"J. L. van de Snepscheut. Inversion of a recursive tree traversal. Technical Report JAN 171a, California Institute of Technology, May 1991. Available online at \n                    ftp:\/\/ftp.cs.caltech.edu\/tr\/cs-tr-91-07.ps.Z\n                    \n                  ."}],"container-title":["Lecture Notes in Computer Science","Mathematics of Program Construction"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/3-540-45442-X_13","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,2,16]],"date-time":"2019-02-16T11:54:50Z","timestamp":1550318090000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/3-540-45442-X_13"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2002]]},"ISBN":["9783540438571","9783540454427"],"references-count":26,"URL":"https:\/\/doi.org\/10.1007\/3-540-45442-x_13","relation":{},"ISSN":["0302-9743"],"issn-type":[{"type":"print","value":"0302-9743"}],"subject":[],"published":{"date-parts":[[2002]]}}}