Linear Dependent Types and Relative Completeness

A system of linear dependent types for the lambda calculus with full higher-order recursion, called dlPCF, is introduced and proved sound and relatively complete. Completeness holds in a strong sense: dlPCF is not only able to precisely capture the functional behaviour of PCF programs (i.e. how the output relates to the input) but also some of their intensional properties, namely the complexity of evaluating them with Krivine's Machine. dlPCF is designed around dependent types and linear logic and is parametrized on the underlying language of index terms, which can be tuned so as to sacrifice completeness for tractability.

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

[2]  Daniel Leivant Discrete polymorphism , 1990, LISP and Functional Programming.

[3]  Mariangiola Dezani-Ciancaglini,et al.  Intersection Types, $\lambda$-models, and Böhm Trees , 1998 .

[4]  Bernd Grobauer,et al.  Cost recurrences for DML programs , 2001, ICFP '01.

[5]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[6]  Frank Pfenning,et al.  Refinement types for ML , 1991, PLDI '91.

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

[8]  Andre Scedrov,et al.  Bounded Linear Logic , 1991 .

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

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

[11]  Hongwei Xi,et al.  Dependent ML An approach to practical programming with dependent types , 2007, Journal of Functional Programming.

[12]  Frank S. de Boer,et al.  Verification of Sequential and Concurrent Programs , 1997, Texts and Monographs in Computer Science.

[13]  Frank Pfenning,et al.  Dependent types in practical programming , 1999, POPL '99.

[14]  Kazushige Terui,et al.  Light types for polynomial time computation in lambda calculus , 2009, Inf. Comput..

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

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

[17]  Stéphane Lengrand,et al.  Complexity of Strongly Normalising λ-Terms via Non-idempotent Intersection Types , 2011, FoSSaCS.

[18]  Radha Jagadeesan,et al.  Full Abstraction for PCF , 2000, Inf. Comput..

[19]  Antonio Bucciarelli,et al.  Some computational properties of intersection types , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

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

[21]  Jean-Yves Girard,et al.  Linear Logic , 1987, Theor. Comput. Sci..

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

[23]  Hongwei Xi Dependent Types for Program Termination Verification , 2002, High. Order Symb. Comput..

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

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

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

[27]  Martin Hofmann Programming languages capturing complexity classes , 2000, SIGA.

[28]  Ugo Dal Lago,et al.  Linear Dependent Types and Relative Completeness (Long Version) , 2011 .

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

[30]  Martin Hofmann,et al.  Bounded Linear Logic, Revisited , 2009, TLCA.

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

[32]  Ewen Denney Refinement types for specification , 1998, PROCOMET.

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

[34]  Antonio Bucciarelli,et al.  Intersection types and λ-definability , 2003, Mathematical Structures in Computer Science.

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