Definition removeUndefs (j l j':meminj):meminj :=
   fun b => match j b with
              None => match l b with
                         None => None | Some (b1,delta1) => j' b
                      end
            | Some(b2,delta2) => Some(b2, delta2)
            end.

Lemma RU_composememinj: forall m1 m1' m2 j k l j' k' n1' n2' (HI: mkInjections m1 m1' m2 j k l = (j',k',n1',n2')) (InjIncr: inject_incr (compose_meminj j k) l) m3 (InjSep: inject_separated (compose_meminj j k) l m1 m3) (VBj1: forall b1 b2 ofs2, j b1 = Some(b2,ofs2) -> Mem.valid_block m1 b1) (VBj2: forall b1 b2 ofs2, j b1 = Some(b2,ofs2) -> Mem.valid_block m2 b2) (VBk2: forall b1 b2 ofs2, k b1 = Some(b2,ofs2) -> Mem.valid_block m2 b1) (VBL1': forall b1 b3 ofs3, l b1 = Some (b3, ofs3) -> (b1 < n1')%positive), l = compose_meminj (removeUndefs j l j') k'.