Is this providing a similar purpose to say code contracts in .NET? Albeit I am sure this is more comprehensive.
Liquid Haskell: Haskell as a Theorem Prover [pdf]
21–28 of 28 posts
Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#22Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#23What the difference with Agda? Why not it?
Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#24This is cool because it's in Haskell, but there are a bunch of great formal theorem provers, coq ( https://coq.inria.fr/ ) being one of the most famous ones.
Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#25What the difference with Agda? Why not it?
Also, Agda is an implementation of Martin-Lof type theory, which is very, very different from what SMT is.
Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#26Earlier quoted context omitted.
Thanks! This has me down a rabbit-hole because I'm now trying to find the name for a related concept: once you've learned a new idea/model, you start to notice how it applies to everything around you. I find this happening most often with algebraic ideas but the article you linked alludes to the fact that you're liable to notice this effect at play more in the days after reading about it. I want to call it overfittin…
This is the Law of the Instrument: if all you have is a hammer, then everything looks like a nail.
Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#27What the difference with Agda? Why not it?
Liquid Types use the SMT solver to automatically generate proofs, while in Agda the user needs to manually specify the proofs. Also, Agda is a verification specific language, while (Liquid) Haskell is a general purpose language, which means that with Liquid Haskell your verified code can use general language features, such as exceptions, diverging code, parallelism and all the Haskell optimized libraries.
Re: Liquid Haskell: Haskell as a Theorem Prover [pdf]
#28http://goto.ucsd.edu/~pmr/papers/rondon-liquid-types.pdf
The UCSD Programming Systems lab has also applied refinement types to dynamic languages[1] and systems programming languages[2]. The MIT Computer Assisted Programming Group has similarly used liquid types-based techniques for program synthesis[3], while a group at Purdue has been working on maching learning of complex refinement types[4,5] that are difficult to state or infer using the liquid types techniques.
[1] http://goto.ucsd.edu/~pvekris/docs/pldi16.pdf
[2] http://goto.ucsd.edu/~rjhala/papers/low_level_liquid_types.p...
[3] http://people.csail.mit.edu/polikarn/publications/pldi16.pdf
[4] https://www.microsoft.com/en-us/research/wp-content/uploads/...
[5] https://www.cs.purdue.edu/homes/zhu103/pubs/pldipaper.pdf