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.
- 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 Scholar
- 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 Scholar
Digital Library
- Franco Barbanera and Stefano Berardi. 1996. A symmetric lambda calculus for classical program extraction. Information and Computation 125, 2 (1996), 103--117. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Pierre-Louis Curien and Hugo Herbelin. 2000. The duality of computation. In Proceedings of ICFP 2000 (SIGPLAN Notices 35(9)). ACM, 233--243. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Andrzej Filinski. 1994. Representing monads. In Proceedings of the 21st Annual ACM Symposium on Principles of Programming Languages. ACM Press, 446--457. Google Scholar
Digital Library
- Daniel Fridlender and Miguel Pagano. 2015. Pure type systems with explicit substitutions. Journal of Functional Programming 25 (2015), e19.Google Scholar
Cross Ref
- 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 Scholar
Cross Ref
- Carsten Führmann. 1999. Direct models for the computational lambda calculus. Electronic Notes in Theoretical Computer Science 20 (1999), 245--292.Google Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- Robert Harper and Mark Lillibridge. 1993. Polymorphic type assignment and CPS conversion. LISP and Symbolic Computation 6, 3 (1993), 361--379. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- É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 Scholar
Digital Library
- É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 Scholar
- É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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Michel Parigot. 1997. Proofs of strong normalisation for second order classical natural deduction. Journal of Symbolic Logic 62, 4 (1997), 1461--1479.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- Andrew Wright. 1995. Simple imperative polymorphism. In LISP and Symbolic Computation. 343--356. Google Scholar
Digital Library
Index Terms
A Classical Sequent Calculus with Dependent Types
Recommendations
A sequent calculus with dependent types for classical arithmetic
LICS '18: Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer ScienceIn a recent paper [11], Herbelin developed dPAω, a calculus in which constructive proofs for the axioms of countable and dependent choices could be derived via the encoding of a proof of countable universal quantification as a stream of it components. ...
Classical By-Need
Proceedings of the 25th European Symposium on Programming Languages and Systems - Volume 9632Call-by-need calculi are complex to design and reason with. When adding control effects, the very notion of canonicity is irremediably lost, the resulting calculi being necessarily ad hoc. This calls for a design of call-by-need guided by logical rather ...






Comments