Proof using.
induction l1; simpl in *; auto.
intros.
apply collate_ls_f_eq.
unfold update2.
break_if; auto.
break_and.
subst.
intuition.
Qed.

(* Specifications: *)
Lemma collate_ls_not_in_mid :
forall h h' l1 l2 (f : A -> A -> list B) m,
~ In h' (l1 ++ l2) ->
collate_ls A_eq_dec (l1 ++ l2) (update2 A_eq_dec f h' h (f h' h ++ [m])) h m = collate_ls A_eq_dec (l1 ++ h' :: l2) f h m.