Total Haskell is reasonable Coq

Antal Spector-Zabusky, Joachim Breitner, Christine Rizkallah, Stephanie Weirich
2018 Proceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs - CPP 2018  
We would like to use the Coq proof assistant to mechanically verify properties of Haskell programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell programs into Coq programs via a shallow embedding. We apply our tool in three case studies -- a lawful Monad instance, "Hutton's razor", and an existing data structure library -- and prove their correctness. These examples show that this approach is viable: both that hs-to-coq applies to existing Haskell code, and
more » ... the output it produces is amenable to verification.
doi:10.1145/3167092 dblp:conf/cpp/Spector-Zabusky18 fatcat:yazpv47ixvaerk63v7zepb2q7i