Proof using.
induction ns; intros; auto.
assert (H_neq: a <> from).
intro.
subst.
contradict H.
left.
trivial.
assert (H_in': ~ In from ns).
intro.
contradict H.
right.
assumption.
simpl.
rewrite IHns; auto.
unfold update2.
break_if; auto.
break_and; subst.
intuition.
Qed.

(* Specifications: *)
Lemma collate_ls_in_in :
forall ns (f : A -> A -> list B) to m x a b,
In x (f a b) ->
In x (collate_ls A_eq_dec ns f to m a b).