Lune

POPL2020Top-tier venue

Liquidate your assets: reasoning about resource usage in liquid Haskell

Martin A. T. Handley, Niki Vazou, Graham Hutton

2020Year
38Citations
12Top-tier citations

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.

Ask about this paper

Ask your agent about it.

Lune has read the top-tier papers around this one, so every answer names the papers it rests on.

Questions to start from

Your agent calls

Lunesearch_papers

Ask in Lune

Free to start. No credit card required.

lune papers get 582f4e06-e25c-4f45-9629-d55255cacba3

Cited by top-tier papers12

Ask how each one uses it

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines