Linear dependent types in a call-by-value scenario

Linear dependent types [11] allow to precisely capture both the extensional behavior and the time complexity of λ-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 dlPCFv whose types reflect the complexity of evaluating terms in the so-called CEK machine. dlPCFv 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]  Martin Hofmann,et al.  Static determination of quantitative resource usage for higher-order programs , 2010, POPL '10.

[2]  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).

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

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

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

[6]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

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

[8]  Andrea Asperti,et al.  The optimal implementation of functional programming languages , 1998, Cambridge tracts in theoretical computer science.

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

[10]  Ugo Dal Lago,et al.  Linear dependent types in a call-by-value scenario , 2014, Sci. Comput. Program..

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

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

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

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

[15]  Martin Hofmann Linear types and non-size-increasing polynomial time computation , 2003, Inf. Comput..

[16]  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.

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

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

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

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

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

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

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

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

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

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

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