Project: Derivation of program properties from polymorphic types in modern functional and functional-logic languages
VO 1512/1-1: Ableitung von Programmeigenschaften aus polymorphen Typen in modernen funktionalen Sprachen
VO 1512/1-2: Ableitung von Programmeigenschaften aus polymorphen Typen in funktional-logischen Sprachen
Abstract:
Both programmers and programming language developers need techniques to effectively and precisely reason about the behavior of programs.
Typed functional programming languages are particularly amenable to such analysis.
In particular, the theory of relational parametricity allows to derive statements about program behavior from (polymorphic) types alone; so-called free theorems.
This theory, however, is underdeveloped for many aspects of modern functional languages.
For example, important type constructs and other features of Haskell are not taken into account appropriately, which leads to considerable restrictions with respect to potential applications.
The project aims to provide new theoretical foundations and refinements of relational parametricity while including such practically relevant features, as well as to apply the theoretical development (for example, to program transformations).
In particular, beside qualitative properties also quantitative properties (about program efficiency) should be derivable.
Beside functional languages, we also target (in the second project phase) functional-logic languages like Curry.
Principal investigator:
Janis Voigtländer
Funding:
Deutsche Forschungsgemeinschaft (DFG), Project Numbers: VO 1512/1-1 and VO 1512/1-2
The project is mainly supported with a research position for 45 person months (applied for, and granted, personal resources for the first phase were 36 months at 100%, and for the second phase are 12 months, post-doc level, at 75%).
The total funding volume for the first phase (VO 1512/1-1) was 156.201,28 Euro.
The projected funding volume for the second phase (VO 1512/1-2) is 60.700 Euro (including 10.100 Euro overhead that go to the university).
Produced Software:
-
We have a library and tool for generating free theorems from Haskell types.
See the announcement here, as well as reasonably up-to-date information here.
The library and a shell-based application built on top of it can be downloaded in source form here and here.
A web interface (supporting PNG, PDF, and TEX output) to the tool is accessible here.
-
The implementation of the algorithm presented at FLOPS'10 is accessible via a web interface here.
-
The implementation of the algorithm developed in the Acta Informatica paper is accessible via a web interface here.
-
A web interface to the library developed in the POPL'09 paper is accessible here.
- For the follow-up work at ICFP'10, a web interface is accessible here.
Recent papers:
-
D. Seidel and J. Voigtländer
Proving Properties About Functions on Lists Involving Element Tests (bib+abstract)
In 20th International Workshop on Algebraic Development Techniques (WADT'10), Revised Selected Papers, volume 7137 of LNCS, pages 270-286, © Springer-Verlag, 2012.
-
J. Christiansen and D. Seidel
Minimally Strict Polymorphic Functions
In 13th International Symposium on Principles and Practice of Declarative Programming (PPDP'11), Proceedings, pages 53-64, © ACM Press, 2011.
This (authors') version of the work is posted here by permission of ACM for your personal use; not for redistribution. The definitive version was published as indicated (cf. also http://doi.acm.org/10.1145/2003476.2003487).
-
D. Seidel and J. Voigtländer
Improvements for Free (bib+abstract)
In 9th Workshop on Quantitative Aspects of Programming Languages (QAPL'11), Post-Proceedings, volume 57 of EPTCS, pages 89-103, 2011.
-
D. Seidel and J. Voigtländer
Refined Typing to Localize the Impact of Forced Strictness on Free Theorems (bib+abstract)
Acta Informatica, volume 48(3), pages 191-211, Springer-Verlag, 2011.
The definitive version of this work is available from http://dx.doi.org/10.1007/s00236-011-0136-9.
-
J. Christiansen, D. Seidel, and J. Voigtländer
An Adequate, Denotational, Functional-Style Semantics for Typed FlatCurry without Letrec (bib+abstract)
Technical Report IAI-TR-2011-1, University of Bonn, 2011.
-
D. Seidel and J. Voigtländer
Automatically Generating Counterexamples to Naive Free Theorems (bib+abstract)
In 10th International Symposium on Functional and Logic Programming (FLOPS'10), Proceedings, volume 6009 of LNCS, pages 175-190, © Springer-Verlag, 2010.
-
J. Christiansen, D. Seidel, and J. Voigtländer
Free Theorems for Functional Logic Programs (bib+abstract)
In 4th Workshop on Programming Languages meets Program Verification (PLPV'10), Proceedings, pages 39-48, © ACM Press, 2010.
This (authors') version of the work is posted here by permission of ACM for your personal use; not for redistribution. The definitive version was published as indicated (cf. also http://doi.acm.org/10.1145/1707790.1707797). An abstract-only version appeared in volume 44(11) of SIGPLAN Notices, page 7 (http://doi.acm.org/10.1145/1816027.1816035).
-
J. Voigtländer
Free Theorems Involving Type Constructor Classes (bib+abstract)
In 14th International Conference on Functional Programming (ICFP'09), Proceedings, volume 44(9) of SIGPLAN Notices, pages 173-184, © ACM Press, 2009.
This (author's) version of the work is posted here by permission of ACM for your personal use; not for redistribution. The definitive version was published as indicated (cf. also http://doi.acm.org/10.1145/1596550.1596577).
A video of the conference presentation is available here.
-
F. Stenger and J. Voigtländer
Parametricity for Haskell with Imprecise Error Semantics (bib+abstract)
In 9th International Conference on Typed Lambda Calculi and Applications (TLCA'09), Proceedings, volume 5608 of LNCS, pages 294-308, © Springer-Verlag, 2009.
- P. Johann and J. Voigtländer
A family of syntactic logical relations for the semantics of Haskell-like languages (bib+abstract)
Information and Computation, volume 207(2), pages 341-368, Elsevier, 2009.
The definitive version of this work is available from http://dx.doi.org/10.1016/j.ic.2007.11.009.
Last Updated: September 2011, Janis Voigtlaender.