Implicit Types s t u v : term.Implicit Types p q : term -> Prop.Definition decidable p := 
  exists u, proc u /\ decides u p.(** ** Definition of recognisable classes *)

Definition pi s t := eva (s (tenc t)).Definition recognisable p := 
  exists u, proc u /\ forall s, p s <-> eva (u (tenc s)).(* * Complement, intersection and union of predicates *)

Definition complement p := fun t => ~ p t.Definition intersection p q := fun t => p t /\ q t.Definition union p q := fun t => p t \/ q t.

Lemma recinter_correct u v s : closed u -> closed v -> eva (recinter u v (tenc s)) <-> eva ( u (tenc s)) /\ eva (v (tenc s)).