skip to main content
research-article
Free Access

A Classical Sequent Calculus with Dependent Types

Published:15 March 2019Publication History
Skip Abstract Section

Abstract

Dependent types are a key feature of the proof assistants based on the Curry-Howard isomorphism. It is well known that this correspondence can be extended to classical logic by enriching the language of proofs with control operators. However, they are known to misbehave in the presence of dependent types, unless dependencies are restricted to values. Moreover, while sequent calculi naturally support continuation-passing-style interpretations, there is no such presentation of a language with dependent types. The main achievement of this article is to give a sequent calculus presentation of a call-by-value language with a control operator and dependent types, and to justify its soundness through a continuation-passing-style translation.

We start from the call-by-value version of the λμ˜μ-calculus. We design a minimal language with a value restriction and a type system that includes a list of explicit dependencies to maintain 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 and present a methodology to transfer properties from this system to our own.

References

  1. Danel Ahman, Neil Ghani, and Gordon D. Plotkin. 2016. Dependent types and fibred computational effects. In Proceedings of the Foundations of Software Science and Computation Structures: 19th International Conference (FOSSACS’16), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS’16), Bart Jacobs and Christof Löding (Eds.). Springer, Berlin 36--54.Google ScholarGoogle Scholar
  2. Zena M. Ariola, Hugo Herbelin, and Amr Sabry. 2009. A type-theoretic foundation of delimited continuations. Higher-Order and Symbolic Computation 22, 3 (2009), 233--273. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Franco Barbanera and Stefano Berardi. 1996. A symmetric lambda calculus for classical program extraction. Information and Computation 125, 2 (1996), 103--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Gilles Barthe, John Hatcliff, and Morten Heine B. Sørensen. 1999. CPS translations and applications: The cube and beyond. Higher-Order and Symbolic Computation 12, 2 (1999), 125--170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Valentin Blot. 2016. Hybrid realizability for intuitionistic and classical choice. In Proceedings of the 31st Annual ACM-IEEE Symposium on Logic in Computer Science (LICS’16). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Thierry Coquand and Christine Paulin. 1990. Inductively defined types. In Proceedings of the International Conference on Computer Logic Tallinn (COLOG-88’90), Per Martin-Löf and Grigori Mints (Eds.). Springer, Berlin, 50--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Pierre-Louis Curien and Hugo Herbelin. 2000. The duality of computation. In Proceedings of ICFP 2000 (SIGPLAN Notices 35(9)). ACM, 233--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Paul Downen, Luke Maurer, Zena M. Ariola, and Simon Peyte Jones. 2016. Sequent calculus as a compiler intermediate language. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP’16). Retrieved from http://research.microsoft.com/en-us/um/people/simonpj/papers/sequent-core/scfp_ext.pdf Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gilda Ferreira and Paulo Oliva. 2010. On various negative translations. In Proceedings of the 3rd International Workshop on Classical Logic and Computation (CL&C’’’10) (EPTCS), Steffen van Bakel, Stefano Berardi, and Ulrich Berger (Eds.), Vol. 47. 21--33.Google ScholarGoogle Scholar
  10. Andrzej Filinski. 1994. Representing monads. In Proceedings of the 21st Annual ACM Symposium on Principles of Programming Languages. ACM Press, 446--457. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Daniel Fridlender and Miguel Pagano. 2015. Pure type systems with explicit substitutions. Journal of Functional Programming 25 (2015), e19.Google ScholarGoogle ScholarCross RefCross Ref
  12. Harvey Friedman. 1978. Classically and intuitionistically provably recursive functions. In Higher Set Theory: Proceedings, Gert H. Müller and Dana S. Scott (Eds.). Springer, Berlin, 21--27.Google ScholarGoogle ScholarCross RefCross Ref
  13. Carsten Führmann. 1999. Direct models for the computational lambda calculus. Electronic Notes in Theoretical Computer Science 20 (1999), 245--292.Google ScholarGoogle ScholarCross RefCross Ref
  14. Jacques Garrigue. 2004. Relaxing the value restriction. In Proceedings of Functional and Logic Programming, 7th International Symposium (FLOPS’04) (Lecture Notes in Computer Science), Yukiyoshi Kameyama and Peter J. Stuckey (Eds.), Vol. 2998. Springer, 196--213.Google ScholarGoogle ScholarCross RefCross Ref
  15. Timothy G. Griffin. 1990. A formulae-as-type notion of control. In Proceedings of the 17th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’90). ACM, New York, 47--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Robert Harper and Mark Lillibridge. 1993. Polymorphic type assignment and CPS conversion. LISP and Symbolic Computation 6, 3 (1993), 361--379. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Hugo Herbelin. 2005. On the degeneracy of sigma-types in presence of computational classical logic. In Proceedings of TLCA 2005 (LNCS), Pawel Urzyczyn (Ed.), Vol. 3461. Springer, 209--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hugo Herbelin. 2012. A constructive proof of dependent choice, compatible with classical logic. In Proceedings of the 27th Annual IEEE Symposium on Logic in Computer Science (LICS’12). IEEE Computer Society, 365--374. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Hugo Herbelin and Silvia Ghilezan. 2008. An approach to call-by-name delimited continuations. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’08), George C. Necula and Philip Wadler (Eds.). ACM, 383--394. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Felix Joachimski and Ralph Matthes. 2003. Short proofs of normalization for the simply- typed λ-calculus, permutative conversions and Gödel’s T. Archive for Mathematical Logic 42, 1 (2003), 59--87.Google ScholarGoogle ScholarCross RefCross Ref
  21. Jean-Louis Krivine. 2009. Realizability in classical logic. In interactive models of computation and program behaviour. Panoramas et synthèses 27 (2009), 197--229.Google ScholarGoogle Scholar
  22. Rodolphe Lepigre. 2016. A classical realizability model for a semantical value restriction. In Proceedings of Programming Languages and Systems - 25th European Symposium on Programming (ESOP’16), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS’16) (Lecture Notes in Computer Science), Peter Thiemann (Ed.), Vol. 9632. Springer, 476--502.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rodolphe Lepigre. 2017. Semantics and Implementation of an Extension of ML for Proving Programs. Ph.D. Dissertation. Université Savoie Mont Blanc. Retrieved from https://lepigre.fr/these/.Google ScholarGoogle Scholar
  24. P. Martin-Löf. 1985. Constructive mathematics and computer programming. In Proceedings of a Discussion Meeting of the Royal Society of London on Mathematical Logic and Programming Languages. Prentice-Hall, Upper Saddle River, NJ, 167--184. Retrieved from http://dl.acm.org/citation.cfm?id=3721.3731. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Alexandre Miquel. 2011. Existential witness extraction in classical realizability and via a negative translation. Logical Methods in Computer Science 7, 2 (2011), 1–47.Google ScholarGoogle ScholarCross RefCross Ref
  26. Étienne Miquey. 2017. A classical sequent calculus with dependent types. In Proceedings of Programming Languages and Systems: 26th European Symposium on Programming (ESOP’17), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS’17), Hongseok Yang (Ed.). Springer, Berlin, 777--803. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Étienne Miquey and Hugo Herbelin. 2018. Realizability interpretation and normalization of typed call-by-need λ-calculus with control. In Proceedings of Foundations of Software Science and Computation Structures: 21th International Conference (FOSSACS’18), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS’18).Google ScholarGoogle Scholar
  28. Étienne Miquey. 2018. A sequent calculus with dependent types for classical arithmetic. In Proceedings of the 33nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS’18). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Guillaume Munch-Maccagnoni. 2009. Focalisation and classical realisability. In Computer Science Logic’09 (Lecture Notes in Computer Science), Erich Grädel and Reinhard Kahle (Eds.), Vol. 5771. Springer, Heidelberg, 409--423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Guillaume Munch-Maccagnoni. 2014. Models of a non-associative composition. In Proceedings of Foundations of Software Science and Computation Structures: 17th International Conference (FOSSACS’14), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS’14), Anca Muscholl (Ed.). Springer, Berlin, 396--410.Google ScholarGoogle Scholar
  31. Michel Parigot. 1997. Proofs of strong normalisation for second order classical natural deduction. Journal of Symbolic Logic 62, 4 (1997), 1461--1479.Google ScholarGoogle ScholarCross RefCross Ref
  32. Christine Paulin-Mohring. 1989. Extracting F<sub>ω</sub>’s programs from proofs in the calculus of constructions. In Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’89). ACM, New York, 89--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Pierre-Marie Pédrot and Nicolas Tabareau. 2017. An effectful way to eliminate addiction to dependence. In 32nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS’17). 12.Google ScholarGoogle ScholarCross RefCross Ref
  34. Emmanuel Polonovski. 2004. Strong normalization of lambda-bar-mu-mu-tilde-calculus with explicit substitutions. In FOSSACS (Lecture Notes in Computer Science), Vol. 2987. Springer-Verlag, Barcelona, Spain, 423--437. Retrieved from https://hal.archives-ouvertes.fr/hal-00004321.Google ScholarGoogle Scholar
  35. Matthijs Vákár. 2015. A framework for dependent types and effects. CoRR abs/1512.08009 (2015). Retrieved from http://arxiv.org/abs/1512.08009.Google ScholarGoogle Scholar
  36. Matthijs Vákár. 2017. In Search of Effectful Dependent Types. Ph.D. Dissertation. University of Oxford. Retrieved from http://arxiv.org/abs/1706.07997.Google ScholarGoogle Scholar
  37. Steffen van Bakel, Luigi Liquori, Simona Ronchi della Rocca, and Pawel Urzyczyn. 1997. Comparing cubes of typed and type assignment systems. Annals of Pure and Applied Logic 86, 3 (1997), 267--303.Google ScholarGoogle ScholarCross RefCross Ref
  38. Philip Wadler. 2003. Call-by-value is dual to call-by-name. In Proceedings of the 8th ACM SIGPLAN International Conference on Functional Programming (ICFP’03), Colin Runciman and Olin Shivers (Eds.). ACM, 189--201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Andrew Wright. 1995. Simple imperative polymorphism. In LISP and Symbolic Computation. 343--356. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Classical Sequent Calculus with Dependent Types

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!