Theorem proving for all: equational reasoning in Liquid Haskell

Vazou, Niki, Breitner, Joachim, Kunkel, Rose, Van Horn, David and Hutton, Graham (2018) Theorem proving for all: equational reasoning in Liquid Haskell.

[img]
Preview
PDF - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader
Download (482kB) | Preview

Abstract

Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This article shows how equational reasoning can be performed directly and seamlessly within Haskell itself, and be checked using Liquid Haskell. In particular, language learners — to whom external theorem provers are out of reach — can benefit from having their proofs mechanically checked. Concretely, we show how the equational proofs and derivations from Hutton’s textbook can be recast as proofs in Haskell (spoiler: they look essentially the same).

Item Type: Article
Additional Information: Published in: Proceedings of the 11th ACM SIGPLAN Haskell Symposium (Haskell '18), ISBN:N 978-1-4503-5835-4 , doi: 10.1145/3242744.3242756
Schools/Departments: University of Nottingham, UK > Faculty of Science > School of Computer Science
Depositing User: Lashkova, Mrs Olga
Date Deposited: 13 Sep 2018 10:05
Last Modified: 05 Oct 2022 09:59
URI: https://eprints.nottingham.ac.uk/id/eprint/54770

Actions (Archive Staff Only)

Edit View Edit View