Proof using.
intros.
pose proof (collate_ls_cases s f to m a b); break_or_hyp.
- now find_rewrite.
- break_exists; break_and.
find_rewrite.
find_apply_lem_hyp in_app_or; break_or_hyp; auto.
find_apply_hyp_hyp; congruence.
Qed.

(* Specifications: *)
Lemma collate_ls_not_related :
forall ns (f : A -> A -> list B) n h mg,
~ R h n ->
collate_ls A_eq_dec (filter_rel R_dec h ns) f h mg n h = f n h.