Section ECC.
Definition trm_ecc := term srt_ecc.
Definition env_ecc := env srt_ecc.
(* Construction du CTS *)
Definition ecc : CTS_spec srt_ecc :=
Build_CTS_spec _ axiom_ecc rules_ecc univ_ecc (beta_delta_rule _).
(* Construction du PTS issu du CTS *)
Definition ecc_pts : PTS_sub_spec srt_ecc := cts_pts_functor _ ecc.
Definition le_type : red_rule srt_ecc :=
Rule _ (Le_type _ (pts_le_type _ ecc_pts)).
Definition typ_ecc : env_ecc -> trm_ecc -> trm_ecc -> Prop := typ _ ecc_pts.
Definition wft_ecc : env_ecc -> trm_ecc -> Prop := wf_type _ ecc_pts.
Definition wf_ecc : env_ecc -> Prop := wf _ ecc_pts.
Definition ecc_sn := sn srt_ecc (ctxt _ (Rule _ (head_reduct _ ecc))).
Hint Unfold le_type typ_ecc wft_ecc wf_ecc ecc_sn: pts.
(* Algorithme de mise en forme normale de tete Decidabilite du sous-typage pour les types bien formes *)
Proof beta_delta_whnf srt_ecc.
Proof
CR_WHNF_convert_hn srt_ecc ecc_sort_dec (beta_delta_rule srt_ecc)
(church_rosser_beta_delta srt_ecc) whnf.

Theorem ecc_is_subtype_dec : subtype_dec_CTS _ ecc.