Gibbons, J., & Hutton, G. (1999). Proof methods for structured corecursive programs.