Liquid Haskell
   HOME

TheInfoList



OR:

Liquid Haskell is a program verifier for the
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
Haskell Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
which allows specifying correctness properties by using
refinement type In type theory, a refinement type is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinement types can express preconditions when used as function arguments or postconditions when used as return typ ...
s. Properties are verified using a
satisfiability modulo theories In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable. It generalizes the Boolean satisfiability problem (SAT) to more complex formulas involvi ...
(SMT) solver which is SMTLIB2-compliant, such as the Z3 Theorem Prover.


See also

*
Formal verification In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal met ...


References

* *


Further reading

* *


External links

* * Formal methods tools Static program analysis tools Type systems Free software programmed in Haskell Software using the BSD license {{Free-software-stub