ABSTRACT
Resource types are types that statically quantify some aspect of program execution. They come in various guises; this paper focusses on a manifestation of resource types known as non-idempotent intersection types. We use them to characterize weak normalisation for a type-erased lambda calculus for the Calculus of Inductive Construction (λe), as introduced by Gregoire and Leroy. The λe calculus consists of the lambda calculus together with constructors, pattern matching and a fixed-point operator. The characterization is then used to prove the completeness of a strong call-by-need strategy for λe. This strategy operates on open terms: rather than having evaluation stop when it reaches an abstraction, as in weak call-by-need, it computes strong normal forms by admitting reduction inside the body of abstractions and substitutions. Moreover, argument evaluation is by-need: arguments are evaluated when needed and at most once. Such a notion of reduction is of interest in areas such as partial evaluation and proof-checkers such as Coq.
- Beniamino Accattoli, Pablo Barenbaum, and Damiano Mazza. 2014. Distilling abstract machines. In ICFP'14, Gothenburg, Sweden, September 1-3, 2014. ACM, 363--376. Google ScholarDigital Library
- Beniamino Accattoli, Pablo Barenbaum, and Damiano Mazza. 2015. A Strong Distillery. In APLAS'15, Pohang, South Korea, November 30 - December 2, 2015. (LNCS), Xinyu Feng and Sungwoo Park (Eds.), Vol. 9458. Springer Verlag, 231--250.Google ScholarCross Ref
- Beniamino Accattoli and Bruno Barras. 2017. The Negligible and Yet Subtle Cost of Pattern Matching. In APLAS 2017, Suzhou, China, November 27-29, 2017, Proceedings (Lecture Notes in Computer Science), Bor-Yuh Evan Chang (Ed.), Vol. 10695. Springer, 426--447.Google Scholar
- Beniamino Accattoli and Claudio Sacerdoti Coen. 2017. On the value of variables. Inf. Comput. 255 (2017), 224--242.Google ScholarCross Ref
- Beniamino Accattoli and Giulio Guerrieri. 2016. Open Call-by-Value. In APLAS'16, Hanoi, Vietnam, November 21-23, 2016. (LNCS), Atsushi Igarashi (Ed.), Vol. 10017. Springer, 206--226.Google Scholar
- Beniamino Accattoli and Delia Kesner. 2010. The Structural lambda-Calculus. In CSL'10, 19th Annual Conference of the EACSL, Brno, Czech Republic, August 23-27, 2010. (LNCS), Anuj Dawar and Helmut Veith (Eds.), Vol. 6247. Springer Verlag, 381--395. Google ScholarDigital Library
- Zena M. Ariola and Matthias Felleisen. 1997. The Call-By-Need Lambda Calculus. Journal of Functional Programming 7, 3 (1997), 265--301. Google ScholarDigital Library
- Zena M. Ariola, Matthias Felleisen, John Maraist, Martin Odersky, and Philip Wadler. 1995. The Call-by-Need Lambda Calculus. In POPL'95, San Francisco, California, USA, January 23-25, 1995, Ron K. Cytron and Peter Lee (Eds.). ACM Press, 233--246. Google ScholarDigital Library
- Thibaut Balabonski, Pablo Barenbaum, Eduardo Bonelli, and Delia Kesner. 2017. Foundations of strong call by need. PACMPL 1, ICFP (2017), 20:1-20:29. Google ScholarDigital Library
- Alexis Bernadet. 2014. Types intersections non-idempotents pour rafiner la normalisation forte avec des informations quantitatives. Ph.D. Dissertation. École Polytechnique.Google Scholar
- Mathieu Boespflug, Maxime Dénès, and Benjamin Grégoire. 2011. Full Reduction at Full Throttle. In CPP'11, Kenting, Taiwan, December 7-9, 2011. (LNCS), Jean-Pierre Jouannaud and Zhong Shao (Eds.), Vol. 7086. Springer, 362--377. Google ScholarDigital Library
- Antonio Bucciarelli, Delia Kesner, and Daniel Ventura. 2017. Non-idempotent intersection types for the Lambda-Calculus. Logic Journal of the IGPL 25, 4 (2017), 431--464.Google ScholarCross Ref
- Stephen Chang and Matthias Felleisen. 2012. The Call-by-Need Lambda Calculus, Revisited. In ESOP 12, ETAPS 2012, Tallinn, Estonia, March 24 - April 1, 2012. (LNCS), Helmut Seidl (Ed.), Vol. 7211. Springer Verlag, 128--147. Google ScholarDigital Library
- Thierry Coquand. 1996. An Algorithm for Type-Checking Dependent Types. Sci. Comput. Program. 26, 1-3 (1996), 167--177. Google ScholarDigital Library
- Pierre Crégut. 1990. An Abstract Machine for Lambda-Terms Normalization. In LISP and Functional Programming. ACM, 333--340. Google ScholarDigital Library
- Pierre Crégut. 2007. Strongly reducing variants of the Krivine abstract machine. Higher-Order and Symbolic Computation 20, 3 (2007), 209--230. Google ScholarDigital Library
- Daniel de Carvalho. 2009. Execution Time of lambda-Terms via Denotational Semantics and Intersection Types. CoRR abs/0905.4251 (2009), 1--36.Google Scholar
- Thomas Ehrhard and Laurent Regnier. 2006. Böhm Trees, Krivine's Machine and the Taylor Expansion of Lambda-Terms. In CiE'06, Swansea, UK, June 30-July 5, 2006. (LNCS), Vol. 3988. Springer Verlag, 186--197. Google ScholarDigital Library
- Álvaro García-Pérez, Pablo Nogueira, and Juan José Moreno-Navarro. 2013. Deriving the full-reducing Krivine machine from the small-step operational semantics of normal order. In PPDP '13, Madrid, Spain, September 16-18, 2013. ACM, 85--96. Google ScholarDigital Library
- Philippa Gardner. 1994. Discovering Needed Reductions Using Type Theory. In TACS'94 (LNCS), Masami Hagiya and John C. Mitchell (Eds.), Vol. 789. Springer Verlag, 555--574. Google ScholarDigital Library
- Benjamin Grégoire and Xavier Leroy. 2002. A compiled implementation of strong reduction. In ICFP '02, Pittsburgh, Pennsylvania, USA, October 4-6, 2002., Mitchell Wand and Simon L. Peyton Jones (Eds.). ACM, 235--246. Google ScholarDigital Library
- Peter Henderson and James H. Morris. 1976. A Lazy Evaluator. In POPL '76, Atlanta, Georgia, USA, January 1976, Susan L. Graham, Robert M. Graham, Michael A. Harrison, William I. Grosky, and Jeffrey D. Ullman (Eds.). ACM Press, 95--103. Google ScholarDigital Library
- Delia Kesner. 2016. Reasoning About Call-by-need by Means of Types. In FOSSACS'16, ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016. (LNCS), Bart Jacobs and Christof Löding (Eds.), Vol. 9634. Springer Verlag, 424--441.Google ScholarCross Ref
- John Launchbury. 1993. A Natural Semantics for Lazy Evaluation. In POPL '93, Charleston,South Carolina,USA,January 1993. ACM Press, 144--154. Google ScholarDigital Library
- John Maraist, Martin Odersky, and Philip Wadler. 1998. The Call-by-Need Lambda Calculus. Journal of Functional Programming 8, 3 (1998), 275--317. Google ScholarDigital Library
- Robin Milner. 2007. Local Bigraphs and Confluence: Two Conjectures: (Extended Abstract). Electronic Notes in Theoretical Computer Science 175, 3 (2007), 65--73. Google ScholarDigital Library
- Christopher P. Wadsworth. 1971. Semantics and Pragmatics of the Lambda Calculus. Ph.D. Dissertation. Oxford University.Google Scholar
- Pattern Matching and Fixed Points: Resource Types and Strong Call-By-Need: Extended Abstract
Recommendations
Pattern matching as cut elimination
We present a typed pattern calculus with explicit pattern matching and explicit substitutions, where both the typing rules and the reduction rules are modeled on the same logical proof system, namely Gentzen sequent calculus for intuitionistic minimal ...
Recursive Definitions and Fixed-Points
An expression such as @?x(P(x)@?@f(P)), where P occurs in @f(P), does not always define P. When such expression implicitly defines P, in the sense of Beth [Beth, E. W., On Padoa's method in the theory of definitions., Indagationes Mathematicae 15 (1953),...
Least and Greatest Fixed Points in Linear Logic
The first-order theory of MALL (multiplicative, additive linear logic) over only equalities is a well-structured but weak logic since it cannot capture unbounded (infinite) behavior. Instead of accounting for unbounded behavior via the addition of the ...
Comments