(* TODO: This is obviously true. Ask Xavior to remove the definition list_norepet.*)
Axiom list_norepet_NoDup: forall {A: Type} (l: list A), list_norepet l <-> NoDup l.

Lemma PTree_gs_equiv {A: Type}: forall (T: PTree.t A) i j x, (exists a, PTree.get i T= Some a) \/ i = j <-> exists a, PTree.get i (PTree.set j x T) = Some a.