(*setPermBlock with a function*)
  Fixpoint setPermBlockFunc (fp : Z -> option permission) (b : block)
           (ofs : Z) (pmap : access_map) (length: nat): access_map :=
    match length with
      0 => pmap
    | S len =>
      setPerm (fp (ofs + (Z_of_nat len))%Z) b (ofs + (Z_of_nat len))%Z (setPermBlockFunc fp b ofs pmap len)
    end.

Lemma computeMap_1 : forall (pmap : access_map) (dmap : delta_map) b ofs df (p : option permission), Maps.PTree.get b dmap = Some df -> df ofs = Some p -> Maps.PMap.get b (computeMap pmap dmap) ofs = p.