Proof with try solve[simpl; auto|congruence].
apply main_ind...
intros. exfalso. rewrite existsb_exists in e0. destruct e0 as [x [H1 H2]].
assert (H' : listd clause_denote inter TT (map delete_resolved l0) s).
eapply listd_map_pred; eauto. solve[intros; apply delete_resolved_sound; auto].
apply listd_In_inv_pred with (a:=x) in H'... eapply empty_clause_False; eauto.
intros. apply H.
autounfold with DEBUG_UNFOLD.
rewrite (@listd_sort_inter _ state).
assert (H3 : listd clause_denote inter TT l' s).
unfold l'. apply listd_filter_pred. autounfold with DEBUG_UNFOLD.
apply listd_partition_pred with (f := clause_denote) (s0 := s) in e1...
destruct e1. apply listd_map_pred with (f := clause_denote)...
intros; apply simplify_sound...
unfold us'; apply cclose_sound...
rewrite listd_app, (@listd_unfold_inter _ state); split...
apply infer_list_sound...
apply partial_mod_sound2 with (R:=nil)(R':=R)(acc:=nil)(l:=l')(ce:=cty)...
Qed.

Lemma check_clauseset_Valid_sound init units g u :
check_clauseset init = (Valid, units, g, u) ->
setd clause_denote inter TT init |-- clause_denote empty_clause.