Section UIter'.
Variable X: Type.
Variable F: function X X.
Hypothesis HF: forall R, eeq (trans (F R)) (F (trans R)) .
Hypothesis HF': increasing F.
intros n R; induction n as [ | n IH ]; split; intros x y H; auto; celim H; intro H.
left; exact (proj1 IH _ _ H).
right; apply (HF' (proj1 IH)); apply (proj1 (HF (UExp F R n))); auto.
left; exact (proj2 IH _ _ H).
right; apply (proj2 (HF (UExp F R n))); apply (HF' (proj2 IH) H).
Qed.

Lemma UIter_trans: forall R, eeq (trans (UIter F R)) (UIter F (trans R)).