Fixpoint canonicalPTree (l : list (positive * (Z -> perm_kind -> option permission))) :=
    match l with
      | nil => PTree.empty _
      | x :: l =>
        PTree.set (fst x) (snd x) (canonicalPTree l)
    end.

(* Specifications: *)
Lemma canonicalPTree_elements : forall l x (Hin: List.In x (PTree.elements (canonicalPTree l))), List.In x l.