Martin Handley
Liquidate your assets: reasoning about resource usage in liquid Haskell
Handley, Martin; Vazou, Niki; Hutton, Graham
Authors
Abstract
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about program correctness by encoding logical properties as refinement types. In this article, we show how Liquid Haskell can also be used to reason about program efficiency in the same setting. We use the system’s existing verification machinery to ensure that the results of our cost analysis are valid, together with custom invariants for particular program contexts to ensure that the results of our analysis are precise. To illustrate our approach, we analyse the efficiency of a wide range of popular data structures and algorithms, and in doing so, explore various notions of resource usage. Our experience is that reasoning about efficiency in Liquid Haskell is often just as simple as reasoning about correctness, and that the two can naturally be combined.
Citation
Handley, M., Vazou, N., & Hutton, G. Liquidate your assets: reasoning about resource usage in liquid Haskell. Presented at 47th ACM SIGPLAN Symposium on Principles of Programming Languages, New Orleans, Louisiana, USA
Presentation Conference Type | Conference Paper (published) |
---|---|
Conference Name | 47th ACM SIGPLAN Symposium on Principles of Programming Languages |
Acceptance Date | Nov 11, 2019 |
Publication Date | Dec 20, 2019 |
Deposit Date | Nov 12, 2019 |
Publicly Available Date | Jan 14, 2020 |
Journal | Proceedings of the ACM on Programming Languages |
Electronic ISSN | 2475-1421 |
Publisher | Association for Computing Machinery (ACM) |
Volume | 4 |
Article Number | 24 |
Pages | 1-27 |
Series Title | Proceedings of the ACM on Programming Languages |
DOI | https://doi.org/10.1145/3371092 |
Public URL | https://nottingham-repository.worktribe.com/output/3231921 |
Files
3371092
(447 Kb)
PDF
Publisher Licence URL
https://creativecommons.org/licenses/by/4.0/
You might also like
Quotient Haskell: Lightweight Quotient Types for All
(2024)
Journal Article
Programming language semantics: It’s easy as 1,2,3
(2023)
Journal Article
Monadic compiler calculation (functional pearl)
(2022)
Journal Article
Calculating dependently-typed compilers (functional pearl)
(2021)
Journal Article
Calculating correct compilers II: Return of the register machines
(2020)
Journal Article
Downloadable Citations
About Repository@Nottingham
Administrator e-mail: discovery-access-systems@nottingham.ac.uk
This application uses the following open-source libraries:
SheetJS Community Edition
Apache License Version 2.0 (http://www.apache.org/licenses/)
PDF.js
Apache License Version 2.0 (http://www.apache.org/licenses/)
Font Awesome
SIL OFL 1.1 (http://scripts.sil.org/OFL)
MIT License (http://opensource.org/licenses/mit-license.html)
CC BY 3.0 ( http://creativecommons.org/licenses/by/3.0/)
Powered by Worktribe © 2025
Advanced Search