Higher-Order Strictness Typing

  • Sjaak Smetsers
  • Marko van Eekelen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7829)


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.


Abstract Interpretation Proof Assistant Soundness Proof Strictness Analysis Strictness Typing 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Walker, D.: Substructural type systems. In: Pierce, B.C. (ed.) Advanced Topics in Types and Programming Languages, pp. 3–44. MIT Press (2004)Google Scholar
  2. 2.
    Barendsen, E., Smetsers, S.: Uniqueness typing for functional languages with graph rewriting semantics. Mathematical Structures in Computer Science 6, 579–612 (1996)MathSciNetMATHGoogle Scholar
  3. 3.
    Turner, D.N., Wadler, P., Mossin, C.: Once upon a type. In: Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture, FPCA 1995, pp. 1–11. ACM, New York (1995)CrossRefGoogle Scholar
  4. 4.
    Volpano, D., Irvine, C., Smith, G.: A sound type system for secure flow analysis. J. Comput. Secur. 4, 167–187 (1996)Google Scholar
  5. 5.
    Shkaravska, O., van Eekelen, M.C.J.D., van Kesteren, R.: Polynomial size analysis of first-order shapely functions. Logical Methods in Computer Science 5(2) (2009)Google Scholar
  6. 6.
    Aydemir, B.E., Bohannon, A., Fairbairn, M., Foster, J.N., Babu, C. S., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: The poplmark challenge. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 50–65. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Barendsen, E., Smetsers, S.: Strictness analysis via resource typing. In: Reflections on Type Theory, Lambda Calculus, and the Mind, Nijmegen, Netherlands, pp. 29–40 (December 2007)Google Scholar
  8. 8.
    Smetsers, S.: The syntactic continuity property: A computer verified proof. In: Majkic, Z., Hsieh, S.-Y., Ma, J., El Emary, I.M.M., Husain, K.S. (eds.) International Conference on Theoretical and Mathematical Foundations of Computer Science, TMFCS 2010, pp. 135–142. ISRST (2010)Google Scholar
  9. 9.
    Davis, K., Wadler, P.: Backwards strictness analysis: Proved and improved. In: Proceedings of the 1989 Glasgow Workshop on Functional Programming, London, UK, pp. 12–30. Springer (1990)Google Scholar
  10. 10.
    Kamareddine, F.: Reviewing the classical and the de Bruijn notation for λ-calculus and pure type systems. Logic and Computation 11, 11–13 (2001)MathSciNetGoogle Scholar
  11. 11.
    Coppo, M., Damiani, F., Giannini, P.: Strictness, totality, and non-standard-type inference. Theor. Comput. Sci. 272(1-2), 69–112 (2002)MathSciNetMATHCrossRefGoogle Scholar
  12. 12.
    Jensen, T.: Abstract interpretation in logical form. PhD thesis, Datalogisk Institut, Københavns Universitet (1992)Google Scholar
  13. 13.
    Benton, P.: Strictness analysis of lazy functional programs. PhD thesis, Computer Laboratory, University of Cambridge (1993)Google Scholar
  14. 14.
    Hankin, C., Métayer, D.L.: Deriving algorithms from type inference systems: Application to strictness analysis. In: POPL, pp. 202–212 (1994)Google Scholar
  15. 15.
    Holdermans, S., Hage, J.: Making “stricterness” more relevant. In: Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2010, pp. 121–130. ACM, New York (2010)CrossRefGoogle Scholar
  16. 16.
    Jones, S.L.P., Hall, C., Hammond, K., Cordy, J., Kevin, H., Partain, W., Wadler, P.: The glasgow haskell compiler: a technical overview (1992)Google Scholar
  17. 17.
    Mycroft, A.: Abstract interpretation and optimising transformations for applicative programs. PhD thesis, University of Edinburgh (1981)Google Scholar
  18. 18.
    Burn, G., Hankin, C., Abramsky, S.: The theory of strictness analysis for higher order functions. In: Ganzinger, H., Jones, N.D. (eds.) Programs as Data Objects. LNCS, vol. 217, pp. 42–62. Springer, Heidelberg (1986)CrossRefGoogle Scholar
  19. 19.
    Wadler, P.: Strictness analysis over non-flat domains. In: Abstract Interpretation of Declarative Languages. Ellis Horwood (1987)Google Scholar
  20. 20.
    Nöcker, E.: Strictness analysis using abstract reduction. In: Proc. of Conference on Functional Programming Languages and Computer Architecture, FPCA 1993, Kopenhagen, pp. 255–266. ACM Press (1993)Google Scholar
  21. 21.
    Clark, D., Hankin, C., Hunt, S.: Safety of strictness analysis via term graph rewriting. In: SAS 2000. LNCS, vol. 1824, pp. 95–114. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  22. 22.
    Leung, A., Mishra, P.: Reasoning about simple and exhaustive demand in higher-order lazy languages. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 328–351. Springer, Heidelberg (1991)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Sjaak Smetsers
    • 1
  • Marko van Eekelen
    • 1
    • 2
  1. 1.Institute for Computing and Information SciencesRadboud University NijmegenThe Netherlands
  2. 2.School of Computer ScienceOpen University of the NetherlandsThe Netherlands

Personalised recommendations