unfold nsearch_spec in |- *.
intros i dni ai a context a_ai_disjunct goal_a_disj complete sound mon.
apply NSearch_Res with (rev_app dni NNil); try assumption.
apply le_ni_refl.
elim (cons_counter_model i dni ai a); try assumption.
intros k k_is_mon k_forces_ngamma k_notforces_goal.
apply NRefutable with k; assumption.
Qed.
(**********************************************************************)

Lemma rule_shift_work_ds :
forall (goal i j : Int) (work : nf_list) (ds : disjs)
(ni : nested_imps) (ai : atomic_imps) (a : atoms)
(context : flist),
nsearch_spec goal work ((i, j) :: ds) ni ai a context ->
nsearch_spec goal (NDisj i j :: work) ds ni ai a context.