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))).

(* Specifications: *)
Lemma whnf : forall (e : env_ecc) (t : trm_ecc), ecc_sn e t -> {u : trm_ecc | red _ (beta_delta _) e t u & head_normal _ (beta_delta _) e u}.
Lemma bd_conv_hnf : forall (e : env_ecc) (x y : trm_ecc), ecc_sn e x -> ecc_sn e y -> decide (conv_hn_inv _ (beta_delta_rule _) e x y).
Theorem ecc_is_subtype_dec : subtype_dec_CTS _ ecc.