(* L'axiome:  ECC est fortement normalisant *)

  Axiom
    v6_normalise :
      forall (e : env_v6) (t T : trm_v6), typ_v6 e t T -> v6_sn e t.

(* Specifications: *)
Lemma sound_v6_beta : rule_sound _ v6_pts (beta _).
Lemma v6_is_norm_sound : norm_sound_CTS _ v6.
Theorem v6_algorithms : PTS_TC _ v6_pts.
Lemma infer_type : forall (e : env_v6) (t : trm_v6), wf_v6 e -> infer_ppal_type _ v6_pts e t.
Lemma check_wf_type : forall (e : env_v6) (t : trm_v6), wf_v6 e -> wft_dec _ v6_pts e t.
Lemma check_type : forall (e : env_v6) (t T : trm_v6), wf_v6 e -> check_dec _ v6_pts e t T.
Lemma add_type : forall (e : env_v6) (t : trm_v6), wf_v6 e -> decl_dec _ v6_pts e (Ax _ t).
Lemma add_def : forall (e : env_v6) (t T : trm_v6), wf_v6 e -> decl_dec _ v6_pts e (Def _ t T).
Lemma v6_is_norm_sound : norm_sound_CTS _ v6.
Theorem v6_algorithms : PTS_TC _ v6_pts.
Lemma infer_type : forall (e : env_v6) (t : trm_v6), wf_v6 e -> infer_ppal_type _ v6_pts e t.
Lemma check_wf_type : forall (e : env_v6) (t : trm_v6), wf_v6 e -> wft_dec _ v6_pts e t.
Lemma check_type : forall (e : env_v6) (t T : trm_v6), wf_v6 e -> check_dec _ v6_pts e t T.
Lemma add_type : forall (e : env_v6) (t : trm_v6), wf_v6 e -> decl_dec _ v6_pts e (Ax _ t).
Lemma add_def : forall (e : env_v6) (t T : trm_v6), wf_v6 e -> decl_dec _ v6_pts e (Def _ t T).