Definition dom (u : term) s := exists t, u (tenc s) ▷ tenc t.
Definition Extr := lambda (0 (lambda (lambda 1)) D I).

(* Specifications: *)
Lemma Extr_spec s : Extr (oenc (Some s)) ▷ tenc s /\ ~ eva (Extr (oenc None)).
Ltac fdecide P := let H := fresh "H" in assert (H : ~~ (P \/ ~ P)) by tauto; apply H; clear H; intros [H|H].
Lemma filter_predicate X (A : list X) (p : X -> Prop) :
~~ exists B, forall x, x el B <-> x el A  /\ p x.
Lemma simple_ex : exists P, simple P.
Definition m_complete P := recognisable P /\ forall Q, recognisable Q -> Q ⪯ P.