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_5: forall N n1 n2 j k l j' k' n1' n2' (HI: mkInjectionsN N n1 n2 j k l = (j',k',n1',n2')) (HJ1: forall b1 b2 ofs2, j b1 = Some(b2,ofs2) -> (b1 < n1)%positive) (HJ2: forall b1 b2 ofs2, j b1 = Some(b2,ofs2) -> (b2 < n2)%positive) (HK: forall b2 b3 ofs3, k b2 = Some(b3,ofs3) -> (b2 < n2)%positive) (HL: forall b1 b3 ofs3, l b1 = Some(b3,ofs3) -> (b1 < n1')%positive) b2 (HB: (b2 < n2')%positive), k' b2 = None -> ((b2 < n2)%positive /\ k b2 = None) \/ (b2 = n2 /\ l n1 = None) \/ (exists m, b2 = (n2+m)%positive /\ l ((n1+m)%positive) = None).