Proof with simpl; auto.
intros A B; unfold infer_list. autounfold with DEBUG_UNFOLD.
apply listd_filter_pred.
apply listd_map_pred with (f := clause_denote).
solve[intros d H1; apply simplify_sound; auto].
apply listd_fold_left... intros d cls H1 H2.
apply superpose_sound...
Qed.

Lemma insert_uniq_In {A} cmp (l : list A) a a' :
In a' (insert_uniq cmp a l) -> a = a' \/ In a' l.