induction x1; intuition; simpl in *.
remember (split x1) as z.
destruct z.
simpl in *.
unfold collidesWith in *.
simpl in *.
case_eq (eqb b3 b1); intuition.
rewrite H1 in H0.
simpl in *.
case_eq (eqb a0 a); intuition.
rewrite H2 in H0.
simpl in *.
rewrite eqb_leibniz in H1.
rewrite eqb_leibniz in H2.
subst.
unfold eqbPair in *.
simpl in *.
repeat rewrite eqb_refl in H.
simpl in *.
trivial.
rewrite H2 in H0.
simpl in *.
discriminate.
rewrite H1 in H0.
simpl in *.
unfold eqbPair in *.
simpl in *.
rewrite H1 in H.
case_eq (eqb a0 a); intuition.
rewrite H2 in H.
simpl in *.
eapply IHx1; eauto.
rewrite H2 in H.
simpl in *.
eapply IHx1; eauto.
Qed.

(* Specifications: *)
Theorem in_impl_collidesWith :
forall (A B : Set)(eqda : EqDec A)(eqdb : EqDec B)(ls : list (A * B))(a a': A) (b : B),
In (a, b) ls ->
a <> a' ->
collidesWith _ _ ls a' b = true.
Theorem in_impl_collidesWith :
forall (A B : Set)(eqda : EqDec A)(eqdb : EqDec B)(ls : list (A * B))(a a': A) (b : B),
In (a, b) ls ->
a <> a' ->
collidesWith _ _ ls a' b = true.