Definition W := (Lam (App (Var 0) (Var 0))).Definition diverge := App W W.Definition W_ty Z := fun X => ty_lam X Z.

(* Specifications: *)
Lemma W_ty_cont : forall Z, contractive (W_ty Z).
Lemma W_typ : forall Z, Typ nil W (Rec (W_ty Z)).
Lemma diverge_typ : forall t, Typ nil diverge t.