Section Find.
Context {X: Type}.
Context {D: Dis X}.
Fixpoint find (x: X) (A: list X) : option nat :=
match A with
| nil => None
| y :: A => if x == y then Some 0 else option_map S (find x A)
end.

Lemma find_map f A n x:
find x A = Some n -> exists m, find (f x) (map f A) = Some m.