Skip to main content
Log in

Call-by-Value Lambda Calculus as a Model of Computation in Coq

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

We formalise a (weak) call-by-value \(\lambda \)-calculus we call L in the constructive type theory of Coq and study it as a minimal functional programming language and as a model of computation. We show key results including (1) semantic properties of procedures are undecidable, (2) the class of total procedures is not recognisable, (3) a class is decidable if it is recognisable, corecognisable, and logically decidable, and (4) a class is recognisable if and only if it is enumerable. Most of the results require a step-indexed self-interpreter. All results are verified formally and constructively, which is the challenge of the project. The verification techniques we use for procedures will apply to call-by-value functional programming languages formalised in Coq in general.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Accattoli, B., Dal Lago, U.: On the invariance of the unitary cost model for head reduction. In: LIPIcs-Leibniz International Proceedings in Informatics, volume 15. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik (2012)

  2. Accattoli, B., Dal Lago, U.: (Leftmost-outermost) beta reduction is invariant, indeed. Log. Methods Comput. Sci. 12(1:4), 1–46 (2016)

    MathSciNet  MATH  Google Scholar 

  3. Asperti, A., Ricciotti, W.: Formalizing Turing machines. In: Logic, Language, Information and Computation, pp. 1–25. Springer (2012)

  4. Asperti, A., Ricciotti, W.: A formalization of multi-tape Turing machines. Theor. Comput. Sci. 603, 23–42 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  5. Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics, 2nd edn. North-Holland, Amsterdam (1984)

    MATH  Google Scholar 

  6. Bauer, A.: First steps in synthetic computability theory. ENTCS 155, 5–31 (2006)

    MATH  Google Scholar 

  7. Boolos, G., Burgess, J.P., Jeffrey, R.C.: Computability and Logic, 5th edn. Cambridge University Press, Cambridge (2007)

    Book  MATH  Google Scholar 

  8. Ciaffaglione, A.: Towards Turing computability via coinduction. Sci. Comput. Program. 126, 31–51 (2016)

    Article  Google Scholar 

  9. Coquand, T., Mannaa, B.: The independence of Markov’s principle in type theory. In: FSCD 2016, volume 52 of LIPIcs, pp. 17:1–17:18. Schloss Dagstuhl (2016)

  10. Dal Lago, U., Martini, S.: The weak lambda calculus as a reasonable machine. Theor. Comput. Sci. 398(1–3), 32–50 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  11. Forster, Y., Smolka, G.: Weak call-by-value lambda calculus as a model of computation in Coq. In: ITP 2017, pp. 189–206. Springer, LNCS 10499 (2017)

  12. Friedberg, R.M.: Two recursively enumerable sets of incomparable degrees of unsolvability (solution of post’s problem, 1944). Proc. Natl. Acad. Sci. 43(2), 236–238 (1957)

    Article  MathSciNet  MATH  Google Scholar 

  13. Herbelin, H.: An intuitionistic logic that proves markov’s principle. In: Proceedings of the 25th Annual IEEE Symposium on Logic in Computer Science, LICS 2010, 11–14 July 2010, Edinburgh, United Kingdom, pp. 50–56 (2010)

  14. Hopcroft, J., Motwani, R., Ullman, J.: Introduction to Automata Theory, Languages, and Computation. Pearson, London (2013)

    MATH  Google Scholar 

  15. Jansen, J. M.: Programming in the \(\lambda \)-calculus: From Church to Scott and back. In: The Beauty of Functional Code, volume 8106 of LNCS, pp. 168–180. Springer (2013)

  16. Kozen, D.: Automata and Computability. Springer, Berlin (1997)

    Book  MATH  Google Scholar 

  17. Larchey-Wendling, D.: Typing total recursive functions in coq. In: Interactive Theorem Proving—8th International Conference, ITP 2017, Brasília, Brazil, September 26–29, 2017, Proceedings, pp. 371–388 (2017)

  18. Mogensen, T.Æ.: Efficient self-interpretations in lambda calculus. J. Funct. Program. 2(3), 345–363 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  19. Muchnik, A. A.: On the unsolvability of the problem of reducibility in the theory of algorithms. In: Dokl. Akad. Nauk SSSR, volume 108, p. 1 (1956)

  20. Niehren, J.: Functional computation as concurrent computation. In: POPL 1996, pp. 333–343. ACM (1996)

  21. Norrish, M.: Mechanised computability theory. In: ITP 2011, volume 6898 of LNCS, pp. 297–311. Springer (2011)

  22. Plotkin, G.D.: Call-by-name, call-by-value and the lambda-calculus. Theor. Comput. Sci. 1(2), 125–159 (1975)

    Article  MATH  Google Scholar 

  23. Post, E.L.: Recursively enumerable sets of positive integers and their decision problems. Bull. Am. Math. Soc. 50(5), 284–316 (1944)

    Article  MathSciNet  MATH  Google Scholar 

  24. Post, E.L.: A variant of a recursively unsolvable problem. Bull. Am. Math. Soc. 52(4), 264–268 (1946)

    Article  MathSciNet  MATH  Google Scholar 

  25. The Coq Proof Assistant. http://coq.inria.fr

  26. Van Emde Boas, P.: Machine Models and Simulations. Handbook of Theoretical Computer Science, vol. A, pp. 1–66. MIT Press, Cambridge (1991)

    Google Scholar 

  27. Xu, J., Zhang, X., Urban, C.: Mechanising Turing machines and computability theory in Isabelle/HOL. In: ITP 2013, volume 7998 of LNCS, pp. 147–162. Springer (2013)

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Yannick Forster or Gert Smolka.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Forster, Y., Smolka, G. Call-by-Value Lambda Calculus as a Model of Computation in Coq. J Autom Reasoning 63, 393–413 (2019). https://doi.org/10.1007/s10817-018-9484-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-018-9484-2

Keywords

Navigation