arXiv · 1610.07118
Verified Parallel String Matching in Haskell
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.
Explore related subjects
Keep this discovery
Niki Vazou, Jeff Polakow. 2016-10-23. Verified Parallel String Matching in Haskell. https://arxiv.org/abs/1610.07118
Cite the original work for its findings. Save a collection to share your selection of sources.