(* 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 {A: Type}: forall (T: PTree.t A) i j x, (exists a, PTree.get i T= Some a) -> exists a, PTree.get i (PTree.set j x T) = Some a.