Proof with eauto; try now intuition.
intros. destruct H0 as [u [H0 H0']]. eapply Rice.
- intros. hnf. intuition. eapply H. exact H2. eauto. eauto. split; intros (? & ?); exists x; firstorder.
- eauto.
- eauto.
- firstorder.
Qed.

(* Specifications: *)
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).
Theorem Rice_Theorem p :
closed_under_proc (fun s t => s ≈ t) p ->
(exists u, proc u /\ ~ p u) -> (exists u, proc u /\ p u) ->
~ decidable p.
Lemma dec_total : ~ decidable (fun s => proc s /\ forall t, pi s t).