reserve x, y, y1, y2 for object;
reserve V for Z_Module;
reserve W, W1, W2 for Submodule of V;
reserve u, v for VECTOR of V;
reserve i, j, k, n for Element of NAT;
reserve V,W for finite-rank free Z_Module;
reserve T for linear-transformation of V,W;

theorem
  for R being Ring
  for V, U being LeftMod of R, V1 being Submodule of V,
      U1 being Submodule of U,
  f being linear-transformation of V, U
  st f is onto & the carrier of V1 = f" (the carrier of U1)
  holds ex F being linear-transformation of
  VectQuot(V, V1), VectQuot(U, U1) st F is bijective
  proof
    let R be Ring;
    let V, U be LeftMod of R, V1 be Submodule of V, U1 be Submodule of U,
    f be linear-transformation of V, U;
    assume AS: f is onto & the carrier of V1 = f" (the carrier of U1);
    set g = ZQMorph(U,U1);
    reconsider V1s = (Omega).V1 as strict Submodule of V by ZMODUL01:42;
    P2: g*f is onto by AS,FUNCT_2:27;
    P5: VectQuot(V, V1) = VectQuot(V, V1s) by ThStrict1;
    the carrier of ker (g*f) = f"(the carrier of ker g) by LMFirst3
    .= f"(the carrier of (Omega).U1) by LMFirst5
    .= the carrier of V1s by AS; then
    P3: ker (g*f) = V1s by ZMODUL01:45;
    P4: im (g*f) = (Omega).VectQuot(U, U1) by P2,LMFirst4
    .= VectQuot(U, U1);
    then reconsider F = Zdecom(g*f) as linear-transformation of
    VectQuot(V, V1), VectQuot(U, U1) by P3,P5;
    take F;
    Zdecom(g*f) is bijective by defdecom;
    hence F is bijective by P4;
  end;
