 reserve V for Z_Module;
 reserve W for Subspace of V;
 reserve v, u for Vector of V;
 reserve i for Element of INT.Ring;

theorem
  for V being torsion-free Z_Module,
  W1, W2, W3 being finite-rank free Subspace of V,
  a being Element of INT.Ring st a <> 0.INT.Ring & W3 = a (*) W1 holds
  rank(W3 + W2) = rank(W1 + W2)
  proof
    let V be torsion-free Z_Module,
    W1, W2, W3 be finite-rank free Subspace of V,
    a be Element of INT.Ring such that
    A1: a <> 0.INT.Ring & W3 = a (*) W1;
    for v being Vector of V st v in W3 + W2 holds v in W1 + W2
    proof
      let v be Vector of V such that
      B1: v in W3 + W2;
      consider v1, v2 be Vector of V such that
      B2: v1 in W3 & v2 in W2 & v = v1 + v2 by B1,ZMODUL01:92;
      v1 in W1 by B2,A1;
      hence thesis by B2,ZMODUL01:92;
    end;
    then W3 + W2 is Subspace of W1 + W2 by ZMODUL01:44;
    then A2: rank(W3 + W2) <= rank(W1 + W2) by ZMODUL05:2;
    reconsider aW = a (*) (W1 + W2) as finite-rank free Subspace of V
    by ZMODUL01:42;
    for v being Vector of V st v in a (*) (W1 + W2) holds v in W3 + W2
    proof
      let v be Vector of V such that
      B1: v in a (*) (W1 + W2);
      consider vx be Vector of (W1 + W2) such that
      B2: v = a * vx by B1;
      reconsider vvx = vx as Vector of V by ZMODUL01:25;
      vvx in W1 + W2;
      then consider v1, v2 be Vector of V such that
      B3: v1 in W1 & v2 in W2 & vvx = v1 + v2 by ZMODUL01:92;
      B4: v = a * vvx by B2,ZMODUL01:29
      .= a * v1 + a * v2 by VECTSP_1:def 14,B3;
      reconsider vv1 = v1 as Vector of W1 by B3;
      a * vv1 in a * W1;
      then B5: a * v1 in W3 by A1,ZMODUL01:29;
       a * v2 in W2 by B3,ZMODUL01:37;
      hence thesis by B4,B5,ZMODUL01:92;
    end;
    then aW is Subspace of W3 + W2 by ZMODUL01:44;
    then rank(a (*) (W1 + W2)) <= rank(W3 + W2) by ZMODUL05:2;
    then rank(W1 + W2) <= rank(W3 + W2) by A1,ThRankS1;
    hence thesis by A2,XXREAL_0:1;
  end;
