Definition canonicalPMap fn n m : Maps.PMap.t (Z -> perm_kind -> option permission) :=
let l := mkBlockList n in
(fun _ _ => None, canonicalPTree (PList fn l m)).

(* Specifications: *)
Lemma canonicalPMap_sound :
forall k n m fn
(Hk : k > 0)
(Hkn : k < n),
fn (m !! (Pos.of_nat k)) = (canonicalPMap fn n m) !! (Pos.of_nat k).
Lemma canonicalPMap_default :
forall n k m fn
(Hkn : k >= n),
(canonicalPMap fn n m) !! (Pos.of_nat k) = fun _ _ => None.