intros c0 work ds ni ai a c in_ngamma0.
elim in_ngamma0; clear in_ngamma0 c.
intros n; case n; clear n.
intros a0 nth; right; inversion_clear nth; trivial.
intros n c1 nth; left; apply In_Work with n; inversion_clear nth; assumption.
intros n i j nth; left; apply In_Disjs with n; assumption.
intros n x nth; left; apply In_Nested_Imps with n; assumption.
intros i b n bs lookup nth; left; apply In_Atomic_Imps with n bs; assumption.
intros i lookup; left; apply In_Atoms; assumption.
Qed.

Lemma in_ngamma_cons_ds_tail :
forall (work : nf_list) (i j : Int) (ds : disjs) (ni : nested_imps)
(ai : atomic_imps) (a : atoms) (c : normal_form),
in_ngamma work ds ni ai a c -> in_ngamma work ((i, j) :: ds) ni ai a c.