Linear dependent types in a call-by-value scenario

Linear dependent types were introduced recently (Dal Lago and Gaboardi, 2012) [26] as a formal system that allows to precisely capture both the extensional behavior and the time complexity of @l-terms, when the latter are evaluated by Krivine's abstract machine. In this work, we show that the same paradigm can be applied to call-by-value computation. A system of linear dependent types for Plotkin's PCF is introduced, called [email protected]?PCF"V, whose types reflect the complexity of evaluating terms in the CEK machine. [email protected]?PCF"V is proved to be sound, but also relatively complete: every true statement about the extensional and intentional behavior of terms can be derived, provided all true index term inequalities can be used as assumptions.

[1]  Harry G. Mairson,et al.  Parallel beta reduction is not elementary recursive , 1998, POPL '98.

[2]  Martin Hofmann,et al.  Multivariate amortized resource analysis , 2011, POPL '11.

[3]  Ralph Benzinger,et al.  Automated higher-order complexity analysis , 2004, Theor. Comput. Sci..

[4]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[5]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[6]  Martin Hofmann,et al.  Static determination of quantitative resource usage for higher-order programs , 2010, POPL '10.

[7]  C.-H. Luke Ong,et al.  A Type System Equivalent to the Modal Mu-Calculus Model Checking of Higher-Order Recursion Schemes , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

[8]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[9]  Hongwei Xi,et al.  Dependent Types for Program Termination Verification , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[10]  Jean-Louis Krivine,et al.  A call-by-name lambda-calculus machine , 2007, High. Order Symb. Comput..

[11]  Ugo Dal Lago,et al.  Linear Dependent Types and Relative Completeness , 2011, LICS.

[12]  Marco Gaboardi,et al.  A PolyTime Functional Language from Light Linear Logic , 2010, ESOP.

[13]  Dan R. Ghica,et al.  Geometry of synthesis III: resource management through type inference , 2011, POPL '11.

[14]  Andrew C. Myers,et al.  Language-based information-flow security , 2003, IEEE J. Sel. Areas Commun..

[15]  P. Odifreddi The theory of functions and sets of natural numbers , 1989 .

[16]  Ugo Dal Lago Context Semantics, Linear Logic and Computational Complexity , 2005, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06).

[17]  Karl Crary,et al.  Resource bound certification , 2000, POPL '00.

[18]  Ron Dinishak The optimal implementation of functional programming languages , 2000, SOEN.

[19]  Mads Rosendahl,et al.  Automatic complexity analysis , 1989, FPCA.

[20]  Jennifer Paykin,et al.  A static cost analysis for a higher-order language , 2012, PLPV.

[21]  Kazushige Terui,et al.  Light types for polynomial time computation in lambda-calculus , 2004, LICS 2004.

[22]  Andre Scedrov,et al.  Bounded Linear Logic: A Modular Approach to Polynomial-Time Computability , 1992, Theor. Comput. Sci..

[23]  Martin Odersky,et al.  Call-by-name, call-by-value, call-by-need and the linear lambda calculus , 1995, MFPS.

[24]  Sumit Gulwani,et al.  SPEED: Symbolic Complexity Bound Analysis , 2009, CAV.

[25]  Mariangiola Dezani-Ciancaglini,et al.  An extension of the basic functionality theory for the λ-calculus , 1980, Notre Dame J. Formal Log..

[26]  J. W. de Bakker,et al.  Mathematical theory of program correctness , 1980, Prentice-Hall international series in computer science.

[27]  John Lamping An algorithm for optimal lambda calculus reduction , 1989, POPL '90.

[28]  Benjamin Grégoire,et al.  Type-Based Termination with Sized Products , 2008, CSL.

[29]  Martin Hofmann,et al.  Linear types and non-size-increasing polynomial time computation , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[30]  Geoffrey Smith,et al.  A Sound Type System for Secure Flow Analysis , 1996, J. Comput. Secur..

[31]  Roberto M. Amadio,et al.  Certifying and Reasoning on Cost Annotations in C Programs , 2012, FMICS.

[32]  David Sands,et al.  Complexity Analysis for a Lazy Higher-Order Language , 1989, Functional Programming.

[33]  Ugo Dal Lago,et al.  The geometry of types , 2012, POPL.