intros ni ni1 ni2 work ds ai a le1 eqv2 inf complete1 complete2.
unfold deco_sound in |- *.
intros k i0 i1 j in_k.
elim (inf (NImp i0 i1 j) k in_k); clear inf in_k.
intros in1.
elim complete1 with k i0 i1 j.
intros k_is_mon k_forces_ngamma k_notforces_i0i1.
apply k_deco_sound_intro; try assumption.
apply forces_ngamma_eqv with ni1.
apply le_eqv; assumption.
assumption.
assumption.
intros in2.
elim complete2 with k i0 i1 j.
intros k_is_mon k_forces_ngamma k_notforces_i0i1.
apply k_deco_sound_intro; try assumption.
apply forces_ngamma_eqv with ni2; assumption.
assumption.
Qed.

(* Specifications: *)
Lemma deco_sound_filter_deco :
forall (i : Int) (work : nf_list) (ds : disjs) (ni : nested_imps)
(ai : atomic_imps) (a : atoms),
(forall (x : nimp) (k : kripke_tree),
In (Decorated x k) ni -> forces_t k (Atom i)) ->
deco_sound work ds ni ai a -> deco_sound (NAtom i :: work) ds ni ai a.