intros x work ds ni1 ni2 ai a context sound.
unfold nsound in |- *.
intros c in_ngamma.
apply sound.
apply in_ngamma_shift_work_ni_x_ni; assumption.
Qed.
(***********************************************************************)
Remark nsound_app_work :
forall (bs work : nf_list) (ds : disjs) (ni : nested_imps)
(ai : atomic_imps) (a : atoms) (context : flist),
(forall (n : nat) (b : normal_form),
my_nth normal_form n bs b -> Derivable context (nf2form b)) ->
nsound work ds ni ai a context -> nsound (bs ++ work) ds ni ai a context.
intros bs work ds ni ai a context der_bs sound.
unfold nsound in |- *.
intros c in_ngamma.
elim (in_ngamma_work_app_rev bs work ds ni ai a c in_ngamma); clear in_ngamma.
intros in_ngamma.
apply sound; assumption.
intros nth; elim nth; clear nth.
intros n nth.
apply der_bs with n; assumption.
Qed.

(* Specifications: *)
Lemma nsound_cons_ds_tail :
forall (work : nf_list) (i j : Int) (ds : disjs) (ni : nested_imps)
(ai : atomic_imps) (a : atoms) (context : flist),
nsound work ((i, j) :: ds) ni ai a context -> nsound work ds ni ai a context.