Remark xelements_empty:
forall (A: Type) (m: t A) i, (forall i, get i m = None) -> xelements m i nil = nil.

Lemma xelements_remove:
forall (A: Type) v (m: t A) i j,
get i m = Some v ->
exists l1 l2,
xelements m j nil = l1 ++ (prev (prev_append i j), v) :: l2
/\ xelements (remove i m) j nil = l1 ++ l2.