A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2014; you can also visit the original URL.
The file type is application/pdf
.
Filters
Refinement types for Haskell
2014
Proceedings of the 19th ACM SIGPLAN international conference on Functional programming - ICFP '14
SMT-based checking of refinement types for call-by-value languages is a well-studied subject. ...
Thus, to be sound and precise, a refinement type system for Haskell and the corresponding verification conditions must take into account which subset of binders actually reduces to values. ...
McMillan, Andrey Rybalchenko, Philip Wadler, and the reviewers for their excellent suggestions and feedback about earlier versions of this paper. ...
doi:10.1145/2628136.2628161
dblp:conf/icfp/VazouSJVJ14
fatcat:k4x3nousrze5rfqyrcdn32awfa
Refinement types for Haskell
2014
SIGPLAN notices
SMT-based checking of refinement types for call-by-value languages is a well-studied subject. ...
Thus, to be sound and precise, a refinement type system for Haskell and the corresponding verification conditions must take into account which subset of binders actually reduces to values. ...
McMillan, Andrey Rybalchenko, Philip Wadler, and the reviewers for their excellent suggestions and feedback about earlier versions of this paper. ...
doi:10.1145/2692915.2628161
fatcat:g3rt2hu3azafhfrni5jy4ziixu
Refinement types for Haskell
2014
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification - PLPV '14
SMT-based checking of refinement types for call-by-value languages is a well-studied subject. ...
Thus, to be sound and precise, a refinement type system for Haskell and the corresponding verification conditions must take into account which subset of binders actually reduces to values. ...
McMillan, Andrey Rybalchenko, Philip Wadler, and the reviewers for their excellent suggestions and feedback about earlier versions of this paper. ...
doi:10.1145/2541568.2541569
dblp:conf/plpv/Jhala14
fatcat:7md5gsdqqbhlzlrvypu3ulyqte
Toward Hole-Driven Development with Liquid Haskell
[article]
2021
arXiv
pre-print
Liquid Haskell is an extension to the Haskell programming language that adds support for refinement types: data types augmented with SMT-decidable logical predicates that refine the set of values that ...
While GHC Haskell already has its own Agda-inspired support for typed holes, we posit that typed holes would be especially powerful and useful if combined with Liquid Haskell's refinement types and SMT ...
For example, in Liquid Haskell we could define the type of even integers by refining the Haskell type Int using the refinement type { v:Int | v mod 2 == 0 }, where v mod 2 == 0 is the refinement predicate ...
arXiv:2110.04461v1
fatcat:6lscah4ihzbjdcosec7kwvmmua
LiquidHaskell
2014
Proceedings of the 2014 ACM SIGPLAN symposium on Haskell - Haskell '14
LIQUID HASKELL naturally integrates the specification of correctness properties as logical refinements of Haskell's types. ...
Moreover, it xvi uses the abstract interpretation framework of liquid types to automatically check correctness of specifications via Satisfiability Modulo Theories (SMT) solvers requiring no explicit proofs ...
Jhala, "LiquidHaskell: Experience with Refinement Types in the Real World", Haskell, 2014. Acknowledgments The material of this chapter are adapted from the following publication: N. ...
doi:10.1145/2633357.2633366
dblp:conf/haskell/VazouSJ14
fatcat:5mmk4inrc5cihk65wbrho4hbzy
LiquidHaskell
2014
SIGPLAN notices
LIQUID HASKELL naturally integrates the specification of correctness properties as logical refinements of Haskell's types. ...
Moreover, it xvi uses the abstract interpretation framework of liquid types to automatically check correctness of specifications via Satisfiability Modulo Theories (SMT) solvers requiring no explicit proofs ...
Jhala, "LiquidHaskell: Experience with Refinement Types in the Real World", Haskell, 2014. Acknowledgments The material of this chapter are adapted from the following publication: N. ...
doi:10.1145/2775050.2633366
fatcat:tczruulo3fgepeddilt6fjgtpe
Verified Parallel String Matching in Haskell
[article]
2016
arXiv
pre-print
We use refinement types to specify correctness properties, Haskell terms to express proofs and Liquid Haskell to check correctness of proofs. ...
Our 1839LoC prototype proof shows that Liquid Haskell can be used as a fully expressive theorem prover on realistic Haskell implementations. ...
We express theorems as refinement types by refining the Proof type with appropriate refinements. For example, the following theorem states the is always equal to itself. ...
arXiv:1610.07118v1
fatcat:243isyz5yzh77bcjgolcs46rty
Functional Pearl: Theorem Proving for All (Equational Reasoning in Liquid Haskell)
[article]
2018
arXiv
pre-print
This article shows how equational reasoning can be performed directly and seamlessly within Haskell itself, and be checked using Liquid Haskell. ...
Equational reasoning is one of the key features of pure functional languages such as Haskell. ...
Measures In order to allow Haskell functions to appear in refinement types, we need to lift them to the refinement type level. ...
arXiv:1806.03541v1
fatcat:35pswnmiafgavmck2n2kaitm5m
A comparison of c++ concepts and haskell type classes
2008
Proceedings of the ACM SIGPLAN workshop on Generic programming - WGP '08
We refine these criteria into a taxonomy that captures differences between type classes in Haskell and concepts in C++, and discuss which differences are incidental and which ones are due to other language ...
The taxonomy allows for an improved understanding of language support for generic programming, and the comparison is useful for the ongoing discussions among language designers and users of both languages ...
Acknowledgments We thank Gustav Munkby for fruitful discussions on the topic. The anonymous reviewers helped improving the presentation of the paper. ...
doi:10.1145/1411318.1411324
dblp:conf/icfp/BernardyJZSP08
fatcat:piaybrji3fd4bf5ro6ghoo46wm
Theorem proving for all: equational reasoning in liquid Haskell (functional pearl)
2018
SIGPLAN notices
This article shows how equational reasoning can be performed directly and seamlessly within Haskell itself, and be checked using Liquid Haskell. ...
Equational reasoning is one of the key features of pure functional languages such as Haskell. ...
The proofs include equational reasoning for functional correctness, program optimization and program calculation. ...
doi:10.1145/3299711.3242756
fatcat:4hsqb2r5svg67ky4wcbob2o6ea
Generic programming with C++ concepts and Haskell type classes—a comparison
2010
Journal of functional programming
We refine these criteria into a taxonomy that captures commonalities and differences between type classes in Haskell and concepts in C++ and discuss which differences are incidental and which ones are ...
Languages that meet all criteria include Haskell because of its type classes and C++ with the concept feature. ...
Acknowledgements We thank Andreas Priesnitz and Gustav Munkby for fruitful discussions on the topic. ...
doi:10.1017/s095679681000016x
fatcat:trgemyxdpzdlfcat2thpro335u
Refinement Reflection (or, how to turn your favorite language into a proof assistant using SMT)
[article]
2016
arXiv
pre-print
of higher order, recursive functions to the Monoid, Applicative, Functor and Monad type class laws for a variety of instances. ...
Refinement Reflection turns your favorite programming language into a proof assistant by reflecting the code implementing a user-defined function into the function's (output) refinement type. ...
§ 5). • Finally, we have implemented refinement reflection in Liquid Haskell, a refinement type system for Haskell. ...
arXiv:1610.04641v1
fatcat:rbhguza4cvfznflzmrzmdfqsba
Deriving Law-Abiding Instances
[article]
2017
arXiv
pre-print
We present a technique for programming with refinement reflection which solves this problem by leveraging datatype-generic programming. ...
Liquid Haskell's refinement-reflection feature augments the Haskell language with theorem proving capabilities, allowing programmers to retrofit their existing code with proofs. ...
First, we briefly review Liquid Haskell refinement types and show how to formally specify laws as refinement types. ...
arXiv:1708.02328v1
fatcat:3fxnrebwsrbu5avzzdgg2ejtnq
Experience report
2009
SIGPLAN notices
We report on our experience using Haskell as an executable specification language in the formal verification of the seL4 microkernel. ...
We describe how this project differs from other efforts, and examine the effect of using Haskell in a large-scale formal verification. ...
Acknowledgments We thank Timothy Bourke, Michael Norrish, and Thomas Sewell for reading and discussing drafts of this article. ...
doi:10.1145/1631687.1596566
fatcat:f7gsyncoffbj3o7k3ns3ge4mtu
Experience report
2009
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming - ICFP '09
We report on our experience using Haskell as an executable specification language in the formal verification of the seL4 microkernel. ...
We describe how this project differs from other efforts, and examine the effect of using Haskell in a large-scale formal verification. ...
Acknowledgments We thank Timothy Bourke, Michael Norrish, and Thomas Sewell for reading and discussing drafts of this article. ...
doi:10.1145/1596550.1596566
dblp:conf/icfp/KleinDE09
fatcat:rxtf26qe4raobk7oorou22rlgm
« Previous
Showing results 1 — 15 out of 6,954 results