Definition permMapJoin (pmap1 pmap2 pmap3: access_map) :=
forall b ofs,
permjoin ((pmap1 !! b) ofs) ((pmap2 !! b) ofs) ((pmap3 !! b) ofs).

(* Specifications: *)
Lemma permMapJoin_order:
forall p1 p2 p3
(Hjoin: permMapJoin p1 p2 p3),
forall b ofs,
Mem.perm_order'' (p3 !! b ofs) (p1 !! b ofs) /\
Mem.perm_order'' (p3 !! b ofs) (p2 !! b ofs).
Lemma permMapLt_invalid_block:
forall pmap m b ofs
(Hlt: permMapLt pmap (getMaxPerm m))
(Hinvalid: ~ Mem.valid_block m b),
(pmap !! b ofs) = None.
Lemma perm_order_valid_block:
forall pmap m b ofs p
(Hperm: Mem.perm_order'' (pmap !! b ofs) (Some p))
(Hlt: permMapLt pmap (getMaxPerm m)),
Mem.valid_block m b.