 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 being finite-rank free Subspace of V
  st rank(W1 /\ W2) = rank(W1)
  holds ex a being Element of INT.Ring st a (*) W1 is Subspace of W2
  proof
    let V be torsion-free Z_Module;
    defpred P[Nat] means
    for W1, W2 being finite-rank free Subspace of V
    st rank(W1 /\ W2) = rank(W1) & rank(W1) = $1
    holds ex a being Element of INT.Ring st a (*) W1 is Subspace of W2;
    A1: P[0]
    proof
      let W1, W2 be finite-rank free Subspace of V such that
      B1: rank(W1 /\ W2) = rank(W1) & rank(W1) = 0;
      (Omega).W1 = (0).W1 by B1,ZMODUL05:1;
      then B2: (Omega).W1 is Subspace of W2 by ZMODUL01:55;
      take 1.INT.Ring;
      thus thesis by B2,Th1V;
    end;
    A2: for n being Nat st P[n] holds P[n+1]
    proof
      let n be Nat such that
      B1: P[n];
      let W1, W2 be finite-rank free Subspace of V such that
      B2: rank(W1 /\ W2) = rank(W1) & rank(W1) = n+1;
      set I = the Basis of W1;
      card(I) > 0 by ZMODUL03:def 5,B2;
      then I <> {}(the carrier of W1);
      then consider u be object such that
      B3: u in I by XBOOLE_0:7;
      reconsider u as Vector of W1 by B3;
      reconsider uu = u as Vector of V by ZMODUL01:25;
      B4: I is linearly-independent by VECTSP_7:def 3;
      reconsider II = I as linearly-independent Subset of V
      by ZMODUL03:15,VECTSP_7:def 3;
      I \ {u} is linearly-independent by B4,XBOOLE_1:36,ZMODUL02:56;
      then reconsider Iu = I \ {u} as linearly-independent Subset of V
      by ZMODUL03:15;
      (Omega).W1 = Lin(I) by VECTSP_7:def 3
      .= Lin(II) by ZMODUL03:20;
      then B5: (Omega).W1 = Lin(Iu) + Lin{uu} & Lin(Iu) /\ Lin{uu} = (0).V &
      Lin(Iu) is free & Lin{uu} is free & uu <> 0.V by B3,ThLin8;
      reconsider LIu = Lin(Iu) as finite-rank free Subspace of V;
      B6: Iu is Basis of LIu by ThLin7;
      B7: card(Iu) = card(I) - card{u} by B3,ZFMISC_1:31,CARD_2:44
      .= rank(W1) - card{u} by ZMODUL03:def 5
      .= n + 1 - 1 by B2,CARD_1:30
      .= n;
      for v being Vector of V st v in Iu holds
      (Lin(Iu) /\ W2) /\ Lin{v} <> (0).V
      proof
        let v be Vector of V such that
        C1: v in Iu;
        v in I by C1,TARSKI:def 3,XBOOLE_1:36;
        then (W1 /\ W2) /\ Lin{v} <> (0).V by B2,LmISRank41;
        then W1 /\ (W2 /\ Lin{v}) <> (0).V by ZMODUL01:104;
        then C2: W2 /\ Lin{v} <> (0).V by ZMODUL01:107;
        C3: v <> 0.V by C1,ZMODUL02:57;
        C4: v in Lin{v} by ZMODUL02:65,ZFMISC_1:31;
        v in LIu by C1,ZMODUL02:65;
        then LIu /\ Lin{v} <> (0).V by C3,ZMODUL02:66,C4,ZMODUL01:94;
        hence thesis by C2,LmISRank21;
      end;
      then rank(LIu /\ W2) = rank(LIu) by B6,ThISRank2;
      then consider a be Element of INT.Ring such that
      B9: a (*) LIu is Subspace of W2 by B1,B7,B6,ZMODUL03:def 5;
      W2 /\ Lin{uu} <> (0).V
      proof
        assume W2 /\ Lin{uu} = (0).V;
        then (W1 /\ W2) /\ Lin{uu} = W1 /\ (0).V by ZMODUL01:104
        .= (0).V by ZMODUL01:107;
        hence contradiction by B3,B2,LmISRank41;
      end;
      then consider iu being Vector of V such that
      B10: iu <> 0.V & W2 /\ Lin{uu} = Lin{iu} by B5,LmSumMod4;
      B14: iu in Lin{iu} by ZMODUL02:65,ZFMISC_1:31;
      then iu in Lin{uu} by B10,ZMODUL01:94;
      then consider i be Element of INT.Ring such that
      B11: iu = i * uu by ThLin1;
      B12: (i * a) (*) W1 is Subspace of W2
      proof
        CX: (i * a) (*) W1 is Subspace of V by ZMODUL01:42;
        for v being Vector of V st v in (i * a) (*) W1 holds v in W2
        proof
          let v be Vector of V such that
          C1: v in (i * a) (*) W1;
          consider vw be Vector of W1 such that
          C2: v = (i * a) * vw by C1;
          reconsider vvw = vw as Vector of V by ZMODUL01:25;
          vvw in (Omega).W1;
          then consider vw1, vw2 be Vector of V such that
          C3: vw1 in LIu & vw2 in Lin{uu} & vvw = vw1 + vw2 by B5,ZMODUL01:92;
          C4: v = (i * a) * vvw by C2,ZMODUL01:29
          .= (i * a) * vw1 + (i * a) * vw2 by VECTSP_1:def 14,C3
          .= a * (i * vw1) + (i * a) * vw2 by VECTSP_1:def 16
          .= a * (i * vw1) + a * (i * vw2) by VECTSP_1:def 16;
          consider i2 be Element of INT.Ring such that
          C5: vw2 = i2 * uu by C3,ThLin1;
          C6: i * vw2 = (i * i2) * uu by VECTSP_1:def 16,C5
          .= i2 * iu by B11,VECTSP_1:def 16;
          iu in W2 by B10,B14,ZMODUL01:94;
          then i * vw2 in W2 by C6,ZMODUL01:37;
          then C7: a * (i * vw2) in W2 by ZMODUL01:37;
          C8: a (*) LIu is Subspace of V by ZMODUL01:42;
          i * vw1 in LIu by C3,ZMODUL01:37;
          then reconsider ivw1 = i * vw1 as Vector of LIu;
          a * ivw1 in a * LIu;
          then a * (i * vw1) in a (*) LIu by ZMODUL01:29;
          then a * (i * vw1) in W2 by B9,C8,ZMODUL01:23;
          hence thesis by C4,C7,ZMODUL01:36;
        end;
        hence thesis by CX,ZMODUL01:44;
      end;
      take i*a;
      thus thesis by B12;
    end;
    A3: for n being Nat holds P[n] from NAT_1:sch 2(A1,A2);
    let W1, W2 be finite-rank free Subspace of V;
    assume rank(W1 /\ W2) = rank(W1);
    hence thesis by A3;
  end;
