Implicit Types m n : nat.Implicit Types x y : T.Definition iter n f x :=
  let fix loop m := if m is i.+1 then f (loop i) else x in loop n.Definition iteri n f x :=
  let fix loop m := if m is i.+1 then f i (loop i) else x in loop n.Definition iterop n op x :=
  let f i y := if i is 0 then x else op x y in iteri n f.

Lemma eq_iterop n op op' : op =2 op' -> iterop n op =2 iterop n op'.