pith. sign in

arxiv: 1610.07118 · v1 · pith:OPAW2MLAnew · submitted 2016-10-23 · 💻 cs.PL

Verified Parallel String Matching in Haskell

classification 💻 cs.PL
keywords haskellcorrectnessparallelstringliquidmatchingmonoidproofs
0
0 comments X
read the original abstract

In this paper, we prove correctness of parallelizing a string matcher using Haskell as a theorem prover. We use refinement types to specify correctness properties, Haskell terms to express proofs and Liquid Haskell to check correctness of proofs. First, we specify and prove that a class of monoid morphisms can be parallelized via parallel monoid concatenation. Then, we encode string matching as a morphism to get a provably correct parallel transformation. Our 1839LoC prototype proof shows that Liquid Haskell can be used as a fully expressive theorem prover on realistic Haskell implementations.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.