reserve i, j, m, n, k for Nat,
  x, y for set,
  K for Field,
  a,a1 for Element of K;
reserve V1,V2,V3 for finite-dimensional VectSp of K,
  f for Function of V1,V2,

  b1,b19 for OrdBasis of V1,
  B1 for FinSequence of V1,
  b2 for OrdBasis of V2,
  B2 for FinSequence of V2,

  B3 for FinSequence of V3,
  v1,w1 for Element of V1,
  R,R1,R2 for FinSequence of V1,
  p,p1,p2 for FinSequence of K;

theorem
  for f be linear-transformation of V1,V2, 
      g be linear-transformation of V2,V3 st 
    g|im f is one-to-one holds 
  rank (g*f) = rank f & nullity (g*f) = nullity f
proof
  let f be linear-transformation of V1,V2, g be linear-transformation of V2,V3
  such that
A1: g|im f is one-to-one;
  the carrier of im (g*f) = [#]im (g*f) .= (g*f).:[#]V1 by RANKNULL:def 2
    .= ((g|im f)*f).:([#]V1) by Lm8
    .= (g|im f).:(f.:[#]V1) by RELAT_1:126
    .= (g|im f).:([#]im f) by RANKNULL:def 2
    .= [#]im (g|im f) by RANKNULL:def 2
    .= the carrier of im(g|im f);
  then
A2: rank(g*f) = rank (g|im f) by VECTSP_4:29
    .= rank f by A1,RANKNULL:45;
  nullity(f) + rank (f) = dim V1 by RANKNULL:44
    .= nullity(g*f) + rank (g*f) by RANKNULL:44;
  hence thesis by A2;
end;
