unfold distinct in |- *.
intros.
simpl in |- *.
red in |- *; intro.
red in H; (apply (H _ _ H0); auto with algebra).
Qed.

Lemma cast_seq_preserves_distinct :
forall (A : Setoid) (n m : Nat) (v : seq n A) (H : n =' m in _),
distinct v -> distinct (cast_seq v H).