(** ** Recognisable classes are closed under intersection *)
Hint Unfold recinter : cbv.

(* Specifications: *)
Lemma recinter_correct u v s : closed u -> closed v -> eva (recinter u v (tenc s)) <-> eva ( u (tenc s)) /\ eva (v (tenc s)).
Lemma recognisable_intersection p q : recognisable p -> recognisable q -> recognisable (intersection p q).
(** ** Decidable classes are recognisable and coregnisable *)
Lemma dec_recognisable p : decidable p -> recognisable p.
Lemma dec_rec p : decidable p -> recognisable p /\ recognisable (complement p).
(** ** Scott's theorem *)
Theorem SecondFixedPoint (s : term) : closed s -> exists t, closed t /\ s (tenc t) ≡ t.
Theorem Scott p :
(forall s t, closed s -> p s -> closed t -> t ≡ s -> p t) ->
(exists t1, closed t1 /\ p t1) -> (exists t2, closed t2 /\ ~ p t2) ->
~ decidable p.
Lemma eva_dec : ~ decidable eva.
Lemma equiv_spec_decidable : forall t, closed t -> ~ decidable (fun x => x ≡ t).