Definition mkInjections (m1 m1' m2:mem) (j k l: meminj)
                     :  meminj * meminj * block * block :=
  if plt (Mem.nextblock m1) (Mem.nextblock m1')
  then mkInjectionsN (Pos.to_nat (Mem.nextblock m1') - Pos.to_nat(Mem.nextblock m1))
                (Mem.nextblock m1)
                (Mem.nextblock m2) j k l
  else (j,k,Mem.nextblock m1,Mem.nextblock m2).

Lemma mkInjections_0: forall m1 m1' m2 j k l j' k' n1' n2' (HI: mkInjections m1 m1' m2 j k l = (j',k',n1',n2')), ( Pos.le (Mem.nextblock m1') (Mem.nextblock m1) /\ Mem.nextblock m1 = n1' /\ Mem.nextblock m2 = n2' /\ j' = j /\ k' = k) \/ (exists N, (N > 0)%nat /\ (Mem.nextblock m1 + (Pos.of_nat N) = n1')%positive /\ (n1' = Mem.nextblock m1') /\ (Mem.nextblock m2 + (Pos.of_nat N) = n2')%positive).