From Undecidability.L Require Export LTerm Por Decidability Lbeta_nonrefl.
(* * Definition of L-acceptability *)
Definition pi (s t:term) := converges (s (ext t)).
Definition lacc (P : term -> Prop) :=
exists u, proc u /\ forall t, P t <-> pi u t.
(* * Properties of acceptance *)
Goal forall s1 s2 t, s1 == s2 -> (pi s1 t <-> pi s2 t).
(* * L-acceptable predicates are closed under conjunction and disjunction *)
Definition acc_conj (p q : term) := lam ((lam (q #1)) (p #0) ).
Hint Unfold acc_conj : cbv.

Lemma acc_conj_correct p q s : closed p -> closed q -> (pi (acc_conj p q) s <-> pi p s /\ pi q s).