Section General_Definitions.
Definition approx := (env * (term * list term))%type.
Fixpoint app_list (args : list term) : term -> term :=
fun t =>
match args with
| nil => t
| hd :: tl => app_list tl (App t hd)
end.
End General_Definitions.
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.

(* Specifications: *)
Lemma beta_rule : Basic_rule.
apply Build_Basic_rule with beta.