(* The standard CBV fixpoint combinator *)
Definition Wf := (Lam (App (Var 1) (Lam (App (App (Var 1) (Var 1)) (Var 0))))).
Definition Y := Lam (App Wf Wf).
Definition Wf_ty A B := fun X => ty_lam X (ty_lam A B).

(* Specifications: *)
Lemma Wf_ty_cont : forall A B, contractive (Wf_ty A B).
Lemma Wf_typ : forall A B,
Typ (ty_lam (ty_lam A B) (ty_lam A B) :: nil) Wf (Rec (Wf_ty A B)).
Lemma Y_typ : forall A B,
Typ nil Y (ty_lam (ty_lam (ty_lam A B) (ty_lam A B)) (ty_lam A B)).