Gonthier, G., Ziliani, B., Nanevski, A., & Dreyer, D. (2013). How to Make Ad Hoc Proof Automation Less Ad Hoc. Journal of Functional Programming, 23(4), 357-401. doi:10.1017/S0956796813000051.