Proof with try inversion 1; auto.
intro A. remember (M.min_elt cls) as b. destruct b...
eapply listd_In_inv_pred; eauto. solve[rewrite Heqb in H; eapply pick_In; eauto].
Qed.

(* Specifications: *)
Lemma setd_mem_add c cls cls' s :
clause_denote c s -> setd clause_denote inter TT cls s ->
mem_add c cls = Some cls' ->
setd clause_denote inter TT cls' s.
Lemma one_inference_step_sound given unselected given' unselected' s :
setd clause_denote inter TT given s ->
setd clause_denote inter TT unselected s ->
one_inference_step (given, unselected) = (given', unselected') ->
setd clause_denote inter TT given' s /\
setd clause_denote inter TT unselected' s.