Definition  source j m (b2:block) (ofs2:Z) : option(block * Z) :=
if plt 1%positive (Mem.nextblock m)
then sourceN (Pos.pred (Mem.nextblock m)) j m b2 ofs2
else None.

Lemma valid_splitA: forall (m m2' m2 m1':mem) (b:block) ofs k
(SPLIT: if plt b (Mem.nextblock m)
then PMap.get b (Mem.mem_access m2') ofs k = PMap.get b (Mem.mem_access m2) ofs k
else PMap.get b (Mem.mem_access m2') ofs k = PMap.get b (Mem.mem_access m1') ofs k)
P
(HA: Mem.valid_block m b -> Mem.perm m2' b ofs k = Mem.perm m2 b ofs k -> P)
(HB: ~Mem.valid_block m b -> Mem.perm m2' b ofs k = Mem.perm m1' b ofs k -> P), P.