Filters








6,954 Hits in 4.0 sec

Refinement types for Haskell

Niki Vazou, Eric L. Seidel, Ranjit Jhala, Dimitrios Vytiniotis, Simon Peyton-Jones
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

Niki Vazou, Eric L. Seidel, Ranjit Jhala, Dimitrios Vytiniotis, Simon Peyton-Jones
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

Ranjit Jhala
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]

Patrick Redmond, Gan Shen, Lindsey Kuper
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

Niki Vazou, Eric L. Seidel, Ranjit Jhala
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

Niki Vazou, Eric L. Seidel, Ranjit Jhala
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]

Niki Vazou, Jeff Polakow
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]

Niki Vazou and Joachim Breitner and Will Kunkel and David Van Horn and Graham Hutton
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

Jean-Philippe Bernardy, Patrik Jansson, Marcin Zalewski, Sibylle Schupp, Andreas Priesnitz
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)

Niki Vazou, Joachim Breitner, Rose Kunkel, David Van Horn, Graham Hutton
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

JEAN-PHILIPPE BERNARDY, PATRIK JANSSON, MARCIN ZALEWSKI, SIBYLLE SCHUPP
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]

Niki Vazou, Ranjit Jhala
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]

Ryan Scott, Vikraman Choudhury, Ryan Newton, Niki Vazou, Ranjit Jhala
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

Gerwin Klein, Philip Derrin, Kevin Elphinstone
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

Gerwin Klein, Philip Derrin, Kevin Elphinstone
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