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.

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.