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)
We present two tools which together allow reasoning about (a sub-stantial subset of) Haskell program...
We propose a program verification method that combines random testing, model checking and interactiv...
The functional programming language Haskell is examined from the point of view of proving programs c...
Equational reasoning is one of the key features of pure functional languages such as Haskell. To dat...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
Two fundamental goals in programming are correctness and efficiency: we want our programs to produce...
Equational reasoning based verification address some of the limitations of classical testing. The Cu...
The structured approach to argumentation has seen a surge of models, introducing a multitude of ways...
A benefit of pure functional programming is that it encourages equational reasoning. However, the Ha...
Twee is an automated theorem prover for equational logic. It implements unfailing Knuth-Bendix compl...
Property-directed verification of functional programs tends to take one of two paths. First, is the ...
HaskHOL is an implementation of a HOL theorem proving capability in Haskell. Motivated by a need to ...
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about pr...
This paper presents Speculate, a tool that automatically conjectures laws involving conditional equa...
A benefit of pure functional programming is that it encourages equational reasoning. However, the Ha...
We present two tools which together allow reasoning about (a sub-stantial subset of) Haskell program...
We propose a program verification method that combines random testing, model checking and interactiv...
The functional programming language Haskell is examined from the point of view of proving programs c...
Equational reasoning is one of the key features of pure functional languages such as Haskell. To dat...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
Two fundamental goals in programming are correctness and efficiency: we want our programs to produce...
Equational reasoning based verification address some of the limitations of classical testing. The Cu...
The structured approach to argumentation has seen a surge of models, introducing a multitude of ways...
A benefit of pure functional programming is that it encourages equational reasoning. However, the Ha...
Twee is an automated theorem prover for equational logic. It implements unfailing Knuth-Bendix compl...
Property-directed verification of functional programs tends to take one of two paths. First, is the ...
HaskHOL is an implementation of a HOL theorem proving capability in Haskell. Motivated by a need to ...
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about pr...
This paper presents Speculate, a tool that automatically conjectures laws involving conditional equa...
A benefit of pure functional programming is that it encourages equational reasoning. However, the Ha...
We present two tools which together allow reasoning about (a sub-stantial subset of) Haskell program...
We propose a program verification method that combines random testing, model checking and interactiv...
The functional programming language Haskell is examined from the point of view of proving programs c...