Proof with simpl; auto.
intro A; induction l... split. intro B; specialize (A B); simpl in A; destruct A as [A C]...
apply IHl... intro B. specialize (A B). simpl in A; destruct A as [A C]...
Qed.

(* Specifications: *)
Lemma factor_hyp_lem_aux delta l s :
(listd (listd pure_atom_denote un FF) inter TT l ||
listd pure_atom_denote un FF delta)%pred s ->
listd (fun atms s' => listd pure_atom_denote un FF (atms ++ delta) s')
inter TT l s.