(* Definition des composantes du calcul *)

  Definition trm_v6 := term srt_v6.Definition env_v6 := env srt_v6.(* Construction du CTS *)

  Definition v6 : CTS_spec srt_v6 :=
    Build_CTS_spec _ axiom_v6 rules_v6 univ_v6 (beta_delta_rule _).(* Construction du PTS issu du CTS *)

  Definition v6_pts : PTS_sub_spec srt_v6 := cts_pts_functor _ v6.Definition le_type : red_rule srt_v6 :=
    Rule _ (Le_type _ (pts_le_type _ v6_pts)).Definition typ_v6 : env_v6 -> trm_v6 -> trm_v6 -> Prop := typ _ v6_pts.Definition wft_v6 : env_v6 -> trm_v6 -> Prop := wf_type _ v6_pts.Definition wf_v6 : env_v6 -> Prop := wf _ v6_pts.Definition v6_sn := sn srt_v6 (ctxt _ (Rule _ (head_reduct _ v6))).

(* Specifications: *)
Lemma whnf : forall (e : env_v6) (t : trm_v6), v6_sn e t -> {u : trm_v6 | red _ (beta_delta _) e t u & head_normal _ (beta_delta _) e u}.
Lemma bd_conv_hnf : forall (e : env_v6) (x y : trm_v6), v6_sn e x -> v6_sn e y -> decide (conv_hn_inv _ (beta_delta_rule _) e x y).
Theorem v6_is_subtype_dec : subtype_dec_CTS _ v6.
Lemma sound_v6_bd : rule_sound _ v6_pts (beta_delta _).