Section Beta_Reduction.
Inductive beta : env -> term -> term -> Prop :=
beta_intro :
forall (e : env) (M N T : term), beta e (App (Abs T M) N) (subst N M).
Hint Resolve beta_intro: pts.
apply Build_Basic_rule with beta.
red in |- *.
simple induction 1; simpl in |- *; intros.
rewrite distr_lift_subst; auto with arith pts.
red in |- *.
simple induction 1; simpl in |- *; intros.
rewrite distr_subst; auto with arith pts.
red in |- *; intros.
elim H; auto with arith pts.
Defined.
red in |- *; red in |- *; intros.
inversion_clear H.
Qed.

Lemma prod_beta_norm :
forall (e : env) (A B : term), normal beta e (Prod A B).