Definition AccessMap_II_Property  (j12 j23 j12' :meminj) (m1 m1' m2 : mem)
           (AM:ZMap.t (Z -> perm_kind -> option permission)):Prop :=
  forall b2,
    (Mem.valid_block m2 b2 -> forall k ofs2,
       match j23 b2 with
         None => PMap.get b2 AM ofs2 k  = PMap.get b2 m2.(Mem.mem_access) ofs2 k
       | Some (b3,d3) =>
         match source j12 m1 b2 ofs2 with
             Some(b1,ofs1) =>  PMap.get b2 AM ofs2 k =
                               PMap.get b1 m1'.(Mem.mem_access) ofs1 k
           | None =>  PMap.get b2 AM ofs2 k =
                      PMap.get b2 m2.(Mem.mem_access) ofs2 k
           end
        end)
     /\ (~ Mem.valid_block m2 b2 -> forall k ofs2,
           match source j12' m1' b2 ofs2 with
              Some(b1,ofs1) => PMap.get b2 AM ofs2 k =
                               PMap.get b1 m1'.(Mem.mem_access) ofs1 k
            | None =>  PMap.get b2 AM ofs2 k = None
          end).

Lemma cont_split: forall m b (A B Q: Prop) (SPLIT: (Mem.valid_block m b -> A) /\ (~Mem.valid_block m b -> B) /\ Q) (P:Prop) (HA: Mem.valid_block m b -> A -> Q -> P) (HB: ~Mem.valid_block m b -> B -> Q -> P), P.