Advertisement

A Classical Sequent Calculus with Dependent Types

  • Étienne MiqueyEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10201)

Abstract

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 Lepigre [19], and present a methodology to transfer properties from this system to our own.

Keywords

Dependent types Sequent calculus Classical logic Control operators Call-by-value Delimited continuations Continuation-passing style translation Value restriction 

Notes

Acknowledgments

The author wish to thanks Pierre-Marie Pédrot for a discussion that led to the idea of using delimited continuations, Gabriel Scherer for his accurate observations and the constant interest he showed for this work, as well as the anonymous referees of an earlier version of this paper for their remarks.

References

  1. 1.
    Ahman, D., Ghani, N., Plotkin, G.D.: Dependent types and fibred computational effects. In: Jacobs, B., Löding, C. (eds.) FoSSaCS 2016. LNCS, vol. 9634, pp. 36–54. Springer, Heidelberg (2016). doi: 10.1007/978-3-662-49630-5_3 CrossRefGoogle Scholar
  2. 2.
    Ariola, Z.M., Herbelin, H., Sabry, A.: A type-theoretic foundation of delimited continuations. High.-Order Symbolic Comput. 22(3), 233–273 (2009)CrossRefzbMATHGoogle Scholar
  3. 3.
    Barbanera, F., Berardi, S.: A symmetric lambda calculus for classical program extraction. Inf. Comput. 125(2), 103–117 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Barthe, G., Hatcliff, J., Sørensen, M.H.B.: CPS translations and applications: the cube and beyond. High.-Order Symbolic Comput. 12(2), 125–170 (1999)CrossRefzbMATHGoogle Scholar
  5. 5.
    Blot, V.: Hybrid realizability for intuitionistic and classical choice. In: LICS 2016, New York, USA, 5–8 July 2016Google Scholar
  6. 6.
    Coquand, T., Huet, G.: The calculus of constructions. Inf. Comput. 76(2), 95–120 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 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)Google Scholar
  8. 8.
    Downen, P., Maurer, L., Ariola, Z.M., Jones, S.P.: Sequent calculus as a compiler intermediate language. In: ICFP 2016 (2016)Google Scholar
  9. 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)Google Scholar
  10. 10.
    Friedman, H.: Classically and intuitionistically provably recursive functions. In: Müller, G.H., Scott, D.S. (eds.) Higher Set Theory. LNM, vol. 669, pp. 21–27. Springer, Heidelberg (1978). doi: 10.1007/BFb0103100 CrossRefGoogle Scholar
  11. 11.
    Garrigue, J.: Relaxing the value restriction. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 196–213. Springer, Heidelberg (2004). doi: 10.1007/978-3-540-24754-8_15 CrossRefGoogle Scholar
  12. 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)Google Scholar
  13. 13.
    Harper, R., Lillibridge, M.: Polymorphic type assignment and CPS conversion. LISP Symbolic Comput. 6(3), 361–379 (1993)CrossRefzbMATHGoogle Scholar
  14. 14.
    Herbelin, H.: On the degeneracy of \(\Sigma \)-types in presence of computational classical logic. In: Urzyczyn, P. (ed.) TLCA 2005. LNCS, vol. 3461, pp. 209–220. Springer, Heidelberg (2005). doi: 10.1007/11417170_16 CrossRefGoogle Scholar
  15. 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)Google Scholar
  16. 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 2008Google Scholar
  17. 17.
    Howard, W.A.: The formulae-as-types notion of construction. Privately circulated notes (1969)Google Scholar
  18. 18.
    Krivine, J.-L.: Realizability in classical logic. Panoramas et synthèses 27, 197–229 (2009). In: Interactive Models of Computation and Program BehaviourMathSciNetzbMATHGoogle Scholar
  19. 19.
    Lepigre, R.: A classical realizability model for a semantical value restriction. In: Thiemann, P. (ed.) ESOP 2016. LNCS, vol. 9632, pp. 476–502. Springer, Heidelberg (2016). doi: 10.1007/978-3-662-49498-1_19 CrossRefGoogle Scholar
  20. 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)Google Scholar
  21. 21.
    Miquel, A.: Existential witness extraction in classical realizability and via a negative translation. Log. Methods Comput. Sci. 7(2), 1–47 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Parigot, M.: Proofs of strong normalisation for second order classical natural deduction. J. Symb. Log. 62(4), 1461–1479 (1997)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Vákár, M.: A framework for dependent types and effects. CoRR, abs/1512.08009 (2015)Google Scholar
  24. 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)Google Scholar
  25. 25.
    Wright, A.: Simple imperative polymorphism. LISP Symbolic Comput. 8(4), 343–356 (1995)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  1. 1.PI.R2 (INRIA), IRIF, Université Paris-DiderotParisFrance
  2. 2.IMERL, Facultad de IngenieríaUniversidad de la RepúblicaMontevideoUruguay

Personalised recommendations