intros A P xs; elim xs; simpl in |- *; auto.
intros a l H' bs cs H'0; inversion H'0; auto.
Qed.
Hint Resolve monExistsL.
Inductive GoodR (A : Set) (R : Rel A) : list A -> Set :=
| FoundG :
forall (a : A) (l : list A),
ExistsL A (fun x : A => R x a) l -> GoodR A R (a :: l)
| SearchG : forall (a : A) (l : list A), GoodR A R l -> GoodR A R (a :: l).
Hint Resolve FoundG SearchG.

(* Specifications: *)
Lemma monGoodR1 :
forall (A : Set) (R : Rel A) (xs bs : list A),
GoodR A R bs -> GoodR A R (xs ++ bs).