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 decidable_complement p : decidable p -> decidable (complement p).