Formalization of the Undecidability of the Halting Problem for a Functional Language

  • Thiago Mendonça Ferreira RamosEmail author
  • César MuñozEmail author
  • Mauricio Ayala-RincónEmail author
  • Mariano MoscatoEmail author
  • Aaron Dutle
  • Anthony Narkawicz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10944)


This paper presents a formalization of the proof of the undecidability of the halting problem for a functional programming language. The computational model consists of a simple first-order functional language called PVS0 whose operational semantics is specified in the Prototype Verification System (PVS). The formalization is part of a termination analysis library in PVS that includes the specification and equivalence proofs of several notions of termination. The proof of the undecidability of the halting problem required classical constructions such as mappings between naturals and PVS0 programs and inputs. These constructs are used to disprove the existence of a PVS0 program that decides termination of other programs, which gives rise to a contradiction.


  1. 1.
    Arts, T.: Termination by absence of infinite chains of dependency pairs. In: Kirchner, H. (ed.) CAAP 1996. LNCS, vol. 1059, pp. 196–210. Springer, Heidelberg (1996). Scholar
  2. 2.
    Arts, T., Giesl, J.: Termination of term rewriting using dependency pairs. Theor. Comput. Sci. 236(1–2), 133–178 (2000)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Avelar, A.B.: Formalização da automação da terminação através de grafos com matrizes de medida. Ph.D. thesis, Universidade de Brasília, Departamento de Matemática, Brasília, Distrito Federal, Brasil (2015). In PortugueseGoogle Scholar
  4. 4.
    Forster, Y., Smolka, G.: Weak call-by-value lambda calculus as a model of computation in Coq. In: Ayala-Rincón, M., Muñoz, C.A. (eds.) ITP 2017. LNCS, vol. 10499, pp. 189–206. Springer, Cham (2017). Scholar
  5. 5.
    Krauss, A., Sternagel, C., Thiemann, R., Fuhs, C., Giesl, J.: Termination of Isabelle functions via termination of rewriting. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 152–167. Springer, Heidelberg (2011). Scholar
  6. 6.
    Larchey-Wendling, D.: Typing total recursive functions in Coq. In: Ayala-Rincón, M., Muñoz, C.A. (eds.) ITP 2017. LNCS, vol. 10499, pp. 371–388. Springer, Cham (2017). Scholar
  7. 7.
    Lee, C.S., Jones, N.D., Ben-Amram, A.M.: The size-change principle for program termination. In: Conference Record of POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 81–92 (2001)Google Scholar
  8. 8.
    Manolios, P., Vroon, D.: Termination analysis with calling context graphs. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 401–414. Springer, Heidelberg (2006). Scholar
  9. 9.
    Norrish, M.: Mechanised computability theory. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 297–311. Springer, Heidelberg (2011). Scholar
  10. 10.
    Owre, S., Rushby, J.M., Shankar, N.: PVS: a prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992). Scholar
  11. 11.
    Thiemann, R., Giesl, J.: Size-change termination for term rewriting. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, pp. 264–278. Springer, Heidelberg (2003). Scholar
  12. 12.
    Turing, A.M.: On computable numbers, with an application to the Entscheidungsproblem. Proc. London Math. Soc. 42(1), 230–265 (1937)MathSciNetCrossRefGoogle Scholar
  13. 13.
    Turing, A.M.: Checking a large routine. In: Campbell-Kelly, M. (ed.) The Early British Computer Conferences, pp. 70–72. MIT Press, Cambridge (1989)Google Scholar
  14. 14.
    Xu, J., Zhang, X., Urban, C.: Mechanising Turing machines and computability theory in Isabelle/HOL. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 147–162. Springer, Heidelberg (2013). Scholar
  15. 15.
    Yamada, A., Sternagel, C., Thiemann, R., Kusakari, K.: AC dependency pairs revisited. In: Proceedings 25th EACSL Annual Conference on Computer Science Logic, CSL 2016, LIPIcs, vol. 62, pp. 8:1–8:16. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2016)Google Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2018

Authors and Affiliations

  1. 1.University of BrasíliaBrasíliaBrazil
  2. 2.NASA Langley Research CenterHamptonUSA
  3. 3.National Institute of AerospaceHamptonUSA

Personalised recommendations