Project: Derivation of program properties from polymorphic types in modern functional languages
(German: Ableitung von Programmeigenschaften aus polymorphen Typen in modernen funktionalen 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).
Principal investigator:
Janis Voigtländer
Funding:
Deutsche Forschungsgemeinschaft (DFG), Project Number: VO 1512/1-1
The project is mainly supported with a full research position for 36 months, currently held by Daniel Seidel (at 75%).
In terms of grant money, this is the current "completion status" of the project:
Produced Software:
-
A web interface to the library developed in the POPL'09 paper is accessible here.
-
We have a library and tool for generating free theorems from Haskell types.
See the announcement here.
The library and the shell-based application built on top of it can be downloaded in source form here and here.
A web interface (supporting PDF and TEX output) to the tool is accessible here.
-
The implementation of the algorithm presented at WST'09 and FLOPS'10 is accessible here.
-
The implementation of the algorithm developed in the ATPS'09 paper is accessible here.
Recent papers:
-
D. Seidel and J. Voigtländer
Automatically Generating Counterexamples to Naive Free Theorems
In 10th International Symposium on Functional and Logic Programming (FLOPS'10), Proceedings, volume 6009 of LNCS, © Springer-Verlag, April 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).
-
J. Christiansen, D. Seidel, and J. Voigtländer
A Denotational Semantics for Curry (progress report)
Presented at 19th International Workshop on Functional and (Constraint) Logic Programming (WFLP'10).
-
D. Seidel and J. Voigtländer
Taming Selective Strictness (bib+abstract)
In 4. Arbeitstagung Programmiersprachen (ATPS'09) der GI-Fachgruppe "Programmiersprachen und Rechenkonzepte" im Rahmen der GI-Jahrestagung Informatik 2009, Proceedings, volume 154 of Lecture Notes in Informatics, pages 2916-2930, GI, 2009.
-
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.
-
D. Seidel and J. Voigtländer
Checking the Influence of Non-Termination on Free Theorems (Extended Abstract)
Presented at 10th International Workshop on Termination (WST'09).
A longer version of this work was accepted to FLOPS'10, see above.
-
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.
- J. Voigtländer
Bidirectionalization for Free! (bib+abstract)
In 36th Symposium on Principles of Programming Languages (POPL'09), Proceedings, volume 44(1) of SIGPLAN Notices, pages 165-176, © 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/1480881.1480904).
- J. Voigtländer
Asymptotic Improvement of Computations over Free Monads (bib+abstract)
In 9th International Conference on Mathematics of Program Construction (MPC'08), Proceedings, volume 5133 of LNCS, pages 388-403, © Springer-Verlag, 2008.
- J. Voigtländer
Semantics and Pragmatics of New Shortcut Fusion Rules (bib+abstract)
In 9th International Symposium on Functional and Logic Programming (FLOPS'08), Proceedings, volume 4989 of LNCS, pages 163-179, © Springer-Verlag, 2008.
- J. Voigtländer
Much Ado about Two: A Pearl on Parallel Prefix Computation (bib+abstract)
In 35th Symposium on Principles of Programming Languages (POPL'08), Proceedings, volume 43(1) of SIGPLAN Notices, pages 29-35, © ACM Press, 2008.
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/1328438.1328445).
- J. Voigtländer
Proving Correctness via Free Theorems: The Case of the destroy/build-Rule (bib+abstract)
In Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'08), Proceedings, pages 13-20, © ACM Press, 2008.
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/1328408.1328412).
-
J. Voigtländer and P. Johann
Selective strictness and parametricity in structural operational semantics, inequationally (bib+abstract)
Theoretical Computer Science, volume 388(1-3), pages 290-318, Elsevier, 2007.
The definitive version of this work is available from http://dx.doi.org/10.1016/j.tcs.2007.09.014.
Last Updated: February 2010, Janis Voigtlaender.