simple induction 1; intros; auto 10 with arith pts.
elim H0; intros; auto with arith pts.
apply cumul_trans with (Srt y0); auto with arith pts.
apply cumul_trans with (Prod A' B).
elim H0; intros; auto 10 with arith pts.
apply cumul_trans with (Prod y0 B); auto with arith pts.
elim H1; intros; auto 10 with arith pts.
apply cumul_trans with (Prod A' y0); auto with arith pts.
Qed.
Hypotheses (CR : church_rosser red_step)
(shn_sort : forall (e : env) (s : sort), head_normal hdr e (Srt s))
(shn_prod : forall (e : env) (A B : term), head_normal hdr e (Prod A B)).

(* Specifications: *)
Lemma commut_red_hnf_rt_cumul :
forall e : env,
commut term (rt_cumul e)
(fun x y : term => red hdr e y x /\ head_normal hdr e x).