induction ls; intuition; simpl in *.
discriminate.
inversion H0; clear H0; subst.
destruct n.
inversion H; clear H; subst.
destruct (eqd a0 a0); subst; intuition.
destruct (eqd a0 a); subst; intuition.
exfalso.
eapply H3.
eapply nth_option_In.
eauto.
Qed.

(* Specifications: *)
Theorem nth_option_some :
forall (A : Set)(ls : list A) n,
n < length ls ->
exists a, nth_option ls n = Some a.