Definition closed_under_proc R p := forall s t , proc s -> proc t -> p s -> R s t -> p t.

(* Specifications: *)
Lemma unrecognisable_russell : ~ recognisable (fun s => closed s /\ ~ eva (s (tenc s))).
Lemma D_pi u : pi D u <-> False.
Lemma Rice p N : semantic p -> proc N -> ~ p N -> p D -> ~ recognisable p.
Lemma Rice_pi p : closed_under_proc (fun s t => (forall u, pi s u <-> pi t u)) p -> (exists u, proc u /\ ~ p u) -> p (lambda Omega) -> ~ recognisable p.
Lemma rec_total : ~ recognisable (fun s => ~forall t, pi s t).
Lemma rec_total_cls : ~ recognisable (fun s => closed s /\ ~forall t, pi s t).
Lemma rec_total_proc : ~ recognisable (fun s => proc s /\ ~forall t, pi s t).
Lemma dec_total : ~ decidable (fun s => proc s /\ forall t, pi s t).