2015
DOI: 10.1145/2887747.2804303
|View full text |Cite
|
Sign up to set email alerts
|

Reasoning with the HERMIT: tool support for equational reasoning on GHC core programs

Abstract: A benefit of pure functional programming is that it encourages equational reasoning. However, the Haskell language has lacked direct tool support for such reasoning. Consequently, reasoning about Haskell programs is either performed manually, or in another language that does provide tool support (e.g. Agda or Coq). HERMIT is a Haskell-specific toolkit designed to support equational reasoning and user-guided program transformation, and to do so as part of the GHC compilation pipeline. This paper describes HERMI… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
3
3
1

Relationship

0
7

Authors

Journals

citations
Cited by 9 publications
(5 citation statements)
references
References 33 publications
0
5
0
Order By: Relevance
“…However, it is possible that much of the process could be automated to derive compilers in a mechanical manner from specifications of their correctness. Mechanisation options could range from a special-purpose library to assist in the process of equational reasoning [Mu et al 2009], to providing support for the calculation process in a general-purpose equational reasoning system [Farmer et al 2015], to a system that is customdesigned for our particular calculational approach [Handley and Hutton 2018].…”
Section: Conclusion and Further Workmentioning
confidence: 99%
“…However, it is possible that much of the process could be automated to derive compilers in a mechanical manner from specifications of their correctness. Mechanisation options could range from a special-purpose library to assist in the process of equational reasoning [Mu et al 2009], to providing support for the calculation process in a general-purpose equational reasoning system [Farmer et al 2015], to a system that is customdesigned for our particular calculational approach [Handley and Hutton 2018].…”
Section: Conclusion and Further Workmentioning
confidence: 99%
“…HERMIT [7] is a system for mechanising equational reasoning about Haskell programs. Properties are written as GHC rewrite rules in the Haskell source code and proven either interactively in the HERMIT shell or by writing a script which automates the process.…”
Section: Related Workmentioning
confidence: 99%
“…Both these tools are automatic, but unpredictable and not programmer-extensible, which has limited them to verifying much simpler properties than the ones checked here. Another tool, HERMIT [Farmer et al 2015], proves equalities by rewriting the GHC core language, guided by user specified scripts. Compared to these tools, in Liquid Haskell the proofs are Haskell programs while SMT solvers are used to automate reasoning.…”
Section: Verification In Haskellmentioning
confidence: 99%