Section Head_Normal_Products.
Hypothesis prod_norm : forall (e : env) (A B : term), normal R e (Prod A B).
Definition is_prod (t : term) :=
match t with
| Prod _ _ => True
| _ => False
end.
simple induction 1; auto with arith pts.
simple destruct x; simpl in |- *; intros.
inversion_clear H0; simpl in |- *; auto with arith pts.
elim H1.
elim H1.
elim H1.
elim H1.
inversion_clear H0; simpl in |- *; auto with arith pts.
elim prod_norm with e t0 t1 y; auto with arith pts.
Qed.
simple destruct t; simpl in |- *; auto with arith pts; intros; elim H.
Qed.
red in |- *; intros.
apply prod_is_norm.
apply red_is_prod with e (Prod A B); simpl in |- *; auto with arith pts.
Qed.

Lemma inv_R_prod :
forall (e : env) (A B C D : term),
conv R e (Prod A B) (Prod C D) -> conv R e C A /\ conv R (Ax C :: e) B D.