Seol mar théacs é seo: Proof Methods for Corecursive Programs