Advertisement

Untyped Recursion Schemes and Infinite Intersection Types

  • Takeshi Tsukada
  • Naoki Kobayashi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6014)

Abstract

A new framework for higher-order program verification has been recently proposed, in which higher-order functional programs are modelled as higher-order recursion schemes and then model-checked. As recursion schemes are essentially terms of the simply-typed lambda-calculus with recursion and tree constructors, however, it was not clear how the new framework applies to programs written in languages with more advanced type systems. To circumvent the limitation, this paper introduces an untyped version of recursion schemes and develops an infinite intersection type system that is equivalent to the model checking of untyped recursion schemes, so that the model checking can be reduced to type checking as in recent work by Kobayashi and Ong for typed recursion schemes. The type system is undecidable but we can obtain decidable subsets of the type system by restricting the shapes of intersection types, yielding a sound (but incomplete in general) model checking algorithm.

Keywords

Model Check Type System Intersection Type Tree Automaton Recursion Scheme 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Knapik, T., Niwinski, D., Urzyczyn, P.: Higher-order pushdown trees are easy. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 205–222. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Ong, C.-H.L.: On model-checking trees generated by higher-order recursion schemes. In: LICS 2006, pp. 81–90. IEEE Computer Society Press, Los Alamitos (2006)Google Scholar
  3. 3.
    Kobayashi, N.: Types and higher-order recursion schemes for verification of higher-order programs. In: Proceedings of ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pp. 416–428 (2009)Google Scholar
  4. 4.
    Kobayashi, N., Tabuchi, N., Unno, H.: Higher-order multi-parameter tree transducers and recursion schemes for program verification. In: POPL, pp. 495–507 (2010)Google Scholar
  5. 5.
    Kobayashi, N., Ong, C.-H.L.: A type system equivalent to the modal mu-calculus model checking of higher-order recursion schemes. In: Proceedings of LICS 2009, pp. 179–188. IEEE Computer Society Press, Los Alamitos (2009)Google Scholar
  6. 6.
    van Bakel, S.: Intersection type assignment systems. Theor. Comput. Sci. 151(2), 385–435 (1995)zbMATHCrossRefGoogle Scholar
  7. 7.
    Leivant, D.: Discrete polymorphism. In: LISP and Functional Programming, pp. 288–297 (1990)Google Scholar
  8. 8.
    Minsky, M.L.: Computation: Finite and infinite Machines. Prentice-Hall, Englewood Cliffs (1967)zbMATHGoogle Scholar
  9. 9.
    Kobayashi, N.: Model-checking higher-order functions. In: Proceedings of PPDP 2009. ACM Press, New York (2009)Google Scholar
  10. 10.
    Hallett, J.J., Kfoury, A.J.: Programming examples needing polymorphic recursion. Electr. Notes Theor. Comput. Sci. 136, 57–102 (2005)CrossRefMathSciNetGoogle Scholar
  11. 11.
    Terauchi, T., Aiken, A.: On typability for rank-2 intersection types with polymorphic recursion. In: LICS, pp. 111–122. IEEE Computer Society, Los Alamitos (2006)Google Scholar
  12. 12.
    Knapik, T., Niwinski, D., Urzyczyn, P.: Deciding monadic theories of hyperalgebraic trees. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol. 2044, pp. 253–267. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  13. 13.
    Aehlig, K., de Miranda, J.G., Ong, C.-H.L.: The monadic second order theory of trees given by arbitrary level-two recursion schemes is decidable. In: Urzyczyn, P. (ed.) TLCA 2005. LNCS, vol. 3461, pp. 39–54. Springer, Heidelberg (2005)Google Scholar
  14. 14.
    Bonsangue, M.M., Kok, J.N.: Infinite intersection types. Inf. Comput. 186(2), 285–318 (2003)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Berarducci, A., Dezani-Ciancaglini, M.: Infinite lambda-calculus and types. Theor. Comput. Sci. 212(1-2), 29–75 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Tatsuta, M.: Types for hereditary head normalizing terms. In: Garrigue, J., Hermenegildo, M.V. (eds.) FLOPS 2008. LNCS, vol. 4989, pp. 195–209. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  17. 17.
    Tatsuta, M.: Types for hereditary permutators. In: LICS, pp. 83–92. IEEE Computer Society, Los Alamitos (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Takeshi Tsukada
    • 1
  • Naoki Kobayashi
    • 1
  1. 1.Tohoku University 

Personalised recommendations