I want to provide proofs for parts of a Haskell program I'm writing as part of my thesis. So far however, I failed to find a good reference work.
Graham Hutton's introductory book Programming in Haskell (Google Books)—which I read while learning Haskell—touches on a few techniques for reasoning about programs such as
- equational reasoning
- using non-overlapping patterns
- list induction
in chapter 13 but it's not very in-depth.
Are there any books or article you can recommend which provide a more detailed overview of formal proving techniques for Haskell, or other functional, code?