Fixpoint xfind (i j : key) (m : t A) : option A :=
match i, j with
| _, xH => find i m
| xO ii, xO jj => xfind ii jj m
| xI ii, xI jj => xfind ii jj m
| _, _ => None
end.

Theorem elements_complete:
forall (m: t A) (i: key) (v: A),
List.In (i, v) (elements m) -> find i m = Some v.