intros.
elim whnf with e t; intros.
cut (cumul_hn_inv e (Srt s) x); intros.
cut (typ cts_pts_functor e x (Srt s')).
inversion_clear H1.
intros.
apply univ_hierarchy with (1 := H2).
Inversion_typ H1.
split with s2; trivial with arith pts.
apply subject_reduction_cumul with t; trivial with arith pts.
apply inv_cumul_hn with (Srt s) t; auto with arith pts.
apply typ_sn with (1 := H0).
Qed.

(* Specifications: *)
Theorem cts_prim_algos : PTS_algos cts_pts_functor.
apply Build_PTS_algos.