Cut elimination for a logic with induction and co-induction