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.