Definition whnf_bd_ord (x y : approx) :=
    lexprod value (fun _ : value => value) (R_exp beta_delta)
      (fun _ : value => subterm) (f1 x) (f1 y).

(* Specifications: *)
Lemma bd_app_list_ctxt : forall (l : list term) (e : env) (u v : term), ctxt beta_delta e u v -> ctxt beta_delta e (app_list l u) (app_list l v).
Lemma bd_whnf_rec : forall (e : env) (t : term) (args : list term), sn (ctxt beta_delta) e (app_list args t) -> {u : term | red beta_delta e (app_list args t) u & head_normal beta_delta e u}.
Theorem beta_delta_whnf : forall (e : env) (t : term), sn (ctxt beta_delta) e t -> {u : term | red beta_delta e t u & head_normal beta_delta e u}.