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.
Similar content being viewed by others
References
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)
Accattoli, B., Dal Lago, U.: (Leftmost-outermost) beta reduction is invariant, indeed. Log. Methods Comput. Sci. 12(1:4), 1–46 (2016)
Asperti, A., Ricciotti, W.: Formalizing Turing machines. In: Logic, Language, Information and Computation, pp. 1–25. Springer (2012)
Asperti, A., Ricciotti, W.: A formalization of multi-tape Turing machines. Theor. Comput. Sci. 603, 23–42 (2015)
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics, 2nd edn. North-Holland, Amsterdam (1984)
Bauer, A.: First steps in synthetic computability theory. ENTCS 155, 5–31 (2006)
Boolos, G., Burgess, J.P., Jeffrey, R.C.: Computability and Logic, 5th edn. Cambridge University Press, Cambridge (2007)
Ciaffaglione, A.: Towards Turing computability via coinduction. Sci. Comput. Program. 126, 31–51 (2016)
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)
Dal Lago, U., Martini, S.: The weak lambda calculus as a reasonable machine. Theor. Comput. Sci. 398(1–3), 32–50 (2008)
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)
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)
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)
Hopcroft, J., Motwani, R., Ullman, J.: Introduction to Automata Theory, Languages, and Computation. Pearson, London (2013)
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)
Kozen, D.: Automata and Computability. Springer, Berlin (1997)
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)
Mogensen, T.Æ.: Efficient self-interpretations in lambda calculus. J. Funct. Program. 2(3), 345–363 (1992)
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)
Niehren, J.: Functional computation as concurrent computation. In: POPL 1996, pp. 333–343. ACM (1996)
Norrish, M.: Mechanised computability theory. In: ITP 2011, volume 6898 of LNCS, pp. 297–311. Springer (2011)
Plotkin, G.D.: Call-by-name, call-by-value and the lambda-calculus. Theor. Comput. Sci. 1(2), 125–159 (1975)
Post, E.L.: Recursively enumerable sets of positive integers and their decision problems. Bull. Am. Math. Soc. 50(5), 284–316 (1944)
Post, E.L.: A variant of a recursively unsolvable problem. Bull. Am. Math. Soc. 52(4), 264–268 (1946)
The Coq Proof Assistant. http://coq.inria.fr
Van Emde Boas, P.: Machine Models and Simulations. Handbook of Theoretical Computer Science, vol. A, pp. 1–66. MIT Press, Cambridge (1991)
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)
Author information
Authors and Affiliations
Corresponding authors
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-018-9484-2