Definition term := term srt_ecc.Definition env := 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 : env -> term -> term -> Prop := typ _ ecc_pts.Definition typ_ppal : env -> term -> term -> Prop := typ_ppal _ ecc_pts.Definition wft : env -> term -> Prop := wf_type _ ecc_pts.Definition wf : env -> Prop := wf _ ecc_pts.Definition sn := sn srt_ecc (ctxt _ (Rule _ (head_reduct _ ecc))).Definition red := red _ (Rule _ (beta_delta_rule srt_ecc)).Definition conv := conv _ (Rule _ (beta_delta_rule srt_ecc)).

(* Specifications: *)
Lemma whnf : forall (e : env) (t : term), sn e t -> {u : term | red _ (beta_delta _) e t u & head_normal _ (beta_delta _) e u}.
Lemma bd_conv_hnf : forall (e : env) (x y : term), sn e x -> sn e y -> decide (conv_hn_inv _ (beta_delta_rule _) e x y).
Theorem ecc_is_subtype_dec : subtype_dec_CTS _ ecc.
Lemma sound_ecc_bd : rule_sound _ ecc_pts (beta_delta _).