×

A classical sequent calculus with dependent types. (English) Zbl 1485.68071

Yang, Hongseok (ed.), Programming languages and systems. 26th European symposium on programming, ESOP 2017, held as part of the European joint conferences on theory and practice of software, ETAPS 2017, Uppsala, Sweden, April 22–29, 2017. Proceedings. Berlin: Springer. Lect. Notes Comput. Sci. 10201, 777-803 (2017).
Summary: Dependent types are a key feature of type systems, typically used in the context of both richly-typed programming languages and proof assistants. Control operators, which are connected with classical logic along the proof-as-program correspondence, are known to misbehave in the presence of dependent types, unless dependencies are restricted to values. We place ourselves in the context of the sequent calculus which has the ability to smoothly provide control under the form of the \(\mu\) operator dual to the common \(\mathtt {let}\) operator, as well as to smoothly support abstract machine and continuation-passing style interpretations.
We start from the call-by-value version of the \(\lambda \mu \tilde{\mu}\) language and design a minimal language with a value restriction and a type system that includes a list of explicit dependencies and maintains type safety. We then show how to relax the value restriction and introduce delimited continuations to directly prove the consistency by means of a continuation-passing-style translation. Finally, we relate our calculus to a similar system by R. Lepigre [Lect. Notes Comput. Sci. 9632, 476–502 (2016; Zbl 1335.68059)], and present a methodology to transfer properties from this system to our own.
For the entire collection see [Zbl 1360.68021].

MSC:

68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
03B70 Logic in computer science
68N18 Functional programming and lambda calculus

Citations:

Zbl 1335.68059

References:

[1] Ahman, D.; Ghani, N.; Plotkin, GD; Jacobs, B.; Löding, C., Dependent types and fibred computational effects, Foundations of Software Science and Computation Structures, 36-54 (2016), Heidelberg: Springer, Heidelberg · Zbl 1475.68057 · doi:10.1007/978-3-662-49630-5_3
[2] Ariola, ZM; Herbelin, H.; Sabry, A., A type-theoretic foundation of delimited continuations, High.-Order Symbolic Comput., 22, 3, 233-273 (2009) · Zbl 1213.68187 · doi:10.1007/s10990-007-9006-0
[3] Barbanera, F.; Berardi, S., A symmetric lambda calculus for classical program extraction, Inf. Comput., 125, 2, 103-117 (1996) · Zbl 0853.68159 · doi:10.1006/inco.1996.0025
[4] Barthe, G.; Hatcliff, J.; Sørensen, MHB, CPS translations and applications: the cube and beyond, High.-Order Symbolic Comput., 12, 2, 125-170 (1999) · Zbl 0936.03015 · doi:10.1023/A:1010000206149
[5] Blot, V.: Hybrid realizability for intuitionistic and classical choice. In: LICS 2016, New York, USA, 5-8 July 2016 · Zbl 1394.03021
[6] Coquand, T.; Huet, G., The calculus of constructions, Inf. Comput., 76, 2, 95-120 (1988) · Zbl 0654.03045 · doi:10.1016/0890-5401(88)90005-3
[7] Curien, P.-L., Herbelin, H.: The duality of computation. In: Proceedings of ICFP 2000, SIGPLAN Notices, vol. 35, no. 9, pp. 233-243. ACM (2000) · Zbl 1321.68146
[8] Downen, P., Maurer, L., Ariola, Z.M., Jones, S.P.: Sequent calculus as a compiler intermediate language. In: ICFP 2016 (2016) · Zbl 1360.68326
[9] Ferreira, G., Oliva, P.: On various negative translations. In: van Bakel, S., Berardi, S., Berger, U. (eds.) Proceedings Third International Workshop on Classical Logic and Computation, CL&C 2010. EPTCS, Brno, Czech Republic, 21-22 August 2010, vol. 47, pp. 21-33 (2010) · Zbl 1456.03089
[10] Friedman, H.; Müller, GH; Scott, DS, Classically and intuitionistically provably recursive functions, Higher Set Theory, 21-27 (1978), Heidelberg: Springer, Heidelberg · Zbl 0396.03045 · doi:10.1007/BFb0103100
[11] Garrigue, J.; Kameyama, Y.; Stuckey, PJ, Relaxing the value restriction, Functional and Logic Programming, 196-213 (2004), Heidelberg: Springer, Heidelberg · Zbl 1122.68398 · doi:10.1007/978-3-540-24754-8_15
[12] Griffin, T.G.: A formulae-as-type notion of control. In: Proceedings of the 17th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1990, pp. 47-58. ACM, New York (1990)
[13] Harper, R.; Lillibridge, M., Polymorphic type assignment and CPS conversion, LISP Symbolic Comput., 6, 3, 361-379 (1993) · doi:10.1007/BF01019463
[14] Herbelin, H.; Urzyczyn, P., On the degeneracy of \(\Sigma \)-types in presence of computational classical logic, Typed Lambda Calculi and Applications, 209-220 (2005), Heidelberg: Springer, Heidelberg · Zbl 1114.03029 · doi:10.1007/11417170_16
[15] Herbelin, H.: A constructive proof of dependent choice, compatible with classical logic. In: Proceedings of the 27th Annual IEEE Symposium on Logic in Computer Science, LICS 2012, Dubrovnik, Croatia, 25-28 June 2012, pp. 365-374. IEEE Computer Society (2012) · Zbl 1364.03070
[16] Herbelin, H., Ghilezan, S.: An approach to call-by-name delimited continuations. In: Necula, G.C.,. Wadler, P. (eds.) Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, San Francisco, California, USA, 7-12 January 2008, pp. 383-394. ACM, January 2008 · Zbl 1295.68063
[17] Howard, W.A.: The formulae-as-types notion of construction. Privately circulated notes (1969)
[18] Krivine, J-L, Realizability in classical logic, Panoramas et synthèses, 27, 197-229 (2009) · Zbl 1206.03017
[19] Lepigre, R.; Thiemann, P., A classical realizability model for a semantical value restriction, Programming Languages and Systems, 476-502 (2016), Heidelberg: Springer, Heidelberg · Zbl 1335.68059 · doi:10.1007/978-3-662-49498-1_19
[20] Martin-Löf, P.: Constructive mathematics and computer programming. In: Proceedings of a Discussion Meeting of the Royal Society of London on Mathematical Logic and Programming Languages, pp. 167-184. Prentice-Hall, Inc., Upper Saddle River (1985)
[21] Miquel, A., Existential witness extraction in classical realizability and via a negative translation, Log. Methods Comput. Sci., 7, 2, 1-47 (2011) · Zbl 1218.03016 · doi:10.2168/LMCS-7(2:2)2011
[22] Parigot, M., Proofs of strong normalisation for second order classical natural deduction, J. Symb. Log., 62, 4, 1461-1479 (1997) · Zbl 0941.03063 · doi:10.2307/2275652
[23] Vákár, M.: A framework for dependent types and effects. CoRR, abs/1512.08009 (2015) · Zbl 1461.03014
[24] Wadler, P.: Call-by-value is dual to call-by-name. In: Runciman, C., Shivers, C. (eds.) Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, ICFP 2003, Uppsala, Sweden, 25-29 August 2003, pp. 189-201. ACM (2003) · Zbl 1315.68060
[25] Wright, A., Simple imperative polymorphism, LISP Symbolic Comput., 8, 4, 343-356 (1995) · doi:10.1007/BF01018828
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.