Fixpoint mkInjectionsN (N:nat)(n1 n2:block)(j k l: meminj)
:  meminj * meminj * block * block :=
match N with O => (j,k,n1,n2)
| S M => mkInjectionsN M (Pos.succ n1) (Pos.succ n2)
(fun b => if eq_block b n1
then Some (n2,0)
else j b)
(fun b => if eq_block b n2 then l n1 else k b)
l
end.

Lemma mkInjectionsN_0: forall N n1 n2 j k l j' k' n1' n2'
(HI: mkInjectionsN N n1 n2 j k l = (j',k',n1',n2')),
match N with O => (n1 = n1' /\ n2 = n2' /\ j' = j /\ k' = k)
| S n => (n1 + (Pos.of_nat N) = n1')%positive /\
(n2 + (Pos.of_nat N) = n2')%positive
end.