Higher-Order Strictness Typing

We extend an existing first-order typing system for strictness analysis to the fully higher-order case. The resulting fully higher-order strictness typing system has an expressivity beyond that of traditional strictness analysis systems. This extension is developed with the explicit aim to formally prove that the higher-order strictness typing is sound with respect to a natural operational semantics. A key aspect of our approach is that we introduce the proof assistant in an early stage, namely during development of the proof, and as such the language theoretic concepts are designed with the aid of the theorem prover. The combination of reporting on a new result together with its formal proof, can be seen as a case study towards the achievement of the long term PoplMark Challenge. The proof framework developed for this case study can be used further in other typing systems case studies.

[1]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[2]  Fairouz Kamareddine,et al.  Reviewing the Classical and the de Bruijn Notation for [lambda]-calculus and Pure Type Systems , 2001, J. Log. Comput..

[3]  Chris Hankin,et al.  The theory of strictness analysis for higher order functions , 1985, Programs as Data Objects.

[4]  Paola Giannini,et al.  Strictness, totality, and non-standard-type inference , 2002, Theor. Comput. Sci..

[5]  Erik Barendsen,et al.  Strictness Analysis via Resource Typing , 2007 .

[6]  Sjaak Smetsers The Syntactic Continuity Property: A computer verified proof , 2010, TMFCS 2010.

[7]  Jurriaan Hage,et al.  Making “stricterness” more relevant , 2010, PEPM '10.

[8]  Philip Wadler,et al.  Backwards Strictness Analysis: Proved and Improved , 1989, Functional Programming.

[9]  Chris Hankin,et al.  Safety of Strictness Analysis via Term Graph Rewriting , 2000, SAS.

[10]  Philip Wadler,et al.  Once upon a type , 1995, FPCA '95.

[11]  Benjamin C. Pierce,et al.  Mechanized Metatheory for the Masses: The PoplMark Challenge , 2005, TPHOLs.

[12]  Chris Hankin,et al.  Deriving algorithms from type inference systems: application to strictness analysis , 1994, POPL '94.

[13]  Prateek Mishra,et al.  Reasoning about Simple and Exhaustive Demand in Highter-Order Lazy Languages , 1991, FPCA.

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

[15]  Eric Nöcker,et al.  Strictness analysis using abstract reduction , 1993, FPCA '93.

[16]  Harald Ganzinger,et al.  Programs as Data Objects , 1986, Lecture Notes in Computer Science.

[17]  Philip Wadler,et al.  The Glasgow Haskell Compiler: a technical overview , 1993 .

[18]  Erik Barendsen,et al.  Uniqueness Typing for Functional Languages with Graph Rewriting Semantics , 1996, Math. Struct. Comput. Sci..

[19]  Alan Mycroft,et al.  Abstract interpretation and optimising transformations for applicative programs , 1982 .

[20]  Marko C. J. D. van Eekelen,et al.  Polynomial Size Analysis of First-Order Shapely Functions , 2009, Log. Methods Comput. Sci..