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;

theorem
  for A being finite Subset of Rat-Module holds
  rank(Lin(A)) <= 1
  proof
    set ZS = Rat-Module;
    defpred P[Nat] means
    for A being finite Subset of ZS st card(A) = $1 holds rank(Lin(A)) <= 1;
    A1: P[0]
    proof
      let A be finite Subset of ZS such that
      B1: card(A) = 0;
      A = {}(the carrier of ZS) by B1;
      then Lin(A) = (0).ZS by ZMODUL02:67
      .= (0).Lin(A) by ZMODUL01:51;
      then (Omega).Lin(A) = (0).Lin(A);
      hence thesis by ZMODUL05:1;
    end;
    A2: for n being Nat st P[n] holds P[n+1]
    proof
      let n be Nat such that
      B1: P[n];
      let A be finite Subset of ZS such that
      B2: card(A) = n + 1;
      A <> {} by B2;
      then consider x be object such that
      B3: x in A by XBOOLE_0:7;
      reconsider x as VECTOR of ZS by B3;
      B5: card(A \ {x}) = card(A) - card{x} by B3,ZFMISC_1:31,CARD_2:44
      .= n+1 - 1 by B2,CARD_1:30
      .= n;
      B6: Lin(A \ {x}) + Lin{x} = Lin((A \ {x}) \/ {x}) by ZMODUL02:72
      .= Lin(A \/ {x}) by XBOOLE_1:39
      .= Lin(A) by B3,ZFMISC_1:40;
      per cases by B1,B5,NAT_1:25;
      suppose rank(Lin(A \ {x})) = 0;
        then
        C2: (Omega).Lin(A \ {x}) = (0).Lin(A \ {x}) by ZMODUL05:1
        .= (0).ZS by ZMODUL01:51;
        per cases;
        suppose x = 0.ZS;
          then Lin{x} = (0).ZS by ZMODUL06:22;
          then Lin(A \ {x}) + Lin{x} = (0).ZS by C2,ZMODUL01:99;
          then (Omega).Lin(A) = (0).Lin(A) by B6,ZMODUL01:51;
          hence thesis by ZMODUL05:1;
        end;
        suppose D1: x <> 0.ZS;
          reconsider Linx = Lin{x} as free Submodule of ZS;
          x in Lin(A) by B3,ZMODUL02:65;
          then reconsider xx = x as VECTOR of Lin(A);
          Lin(A) = Lin{x} by B6,C2,ZMODUL01:99
          .= Lin{xx} by ZMODUL03:20;
          then D3: (Omega).Lin(A) = Lin{xx};
          xx <> 0.Lin(A) by D1,ZMODUL01:26;
          hence thesis by D3,ZMODUL05:5;
        end;
      end;
      suppose rank(Lin(A \ {x})) = 1;
        then consider axl be VECTOR of Lin(A \ {x}) such that
        C2: axl <> 0.Lin(A \ {x}) & (Omega).Lin(A \ {x}) = Lin{axl}
        by ZMODUL05:5;
        reconsider ax = axl as VECTOR of ZS by ZMODUL01:25;
        C3: ax <> 0.ZS by C2,ZMODUL01:26;
        C4: Lin(A \ {x}) = Lin{ax} by C2,ZMODUL03:20;
        C5: {ax} is linearly-independent by C3,ZMODUL02:59;
        per cases;
        suppose x = 0.ZS;
          then Lin{x} = (0).ZS by ZMODUL06:22;
          then Lin(A \ {x}) + Lin{x} = Lin(A \ {x}) by ZMODUL01:99;
          hence thesis by B1,B5,B6;
        end;
        suppose x = ax;
          then Lin(A \ {x}) + Lin{x} = Lin(A \ {x}) by C4,ZMODUL01:95;
          hence thesis by B1,B5,B6;
        end;
        suppose D1: x <> 0.ZS & x <> ax;
          then D2: {x} is linearly-independent by ZMODUL02:59;
          {ax, x} is linearly-dependent by D1,LMThFRat32;
          then D3: {ax} \/ {x} is linearly-dependent by ENUMSET1:1;
          {ax} /\ {x} = {} by D1,XBOOLE_0:def 7,ZFMISC_1:11;
          then D4: Lin{ax} /\ Lin{x} <> (0).ZS by C5,D2,D3,ZMODUL06:23;
          consider y be VECTOR of ZS such that
          D5: y <> 0.ZS & Lin{ax} + Lin{x} = Lin{y}
          by C3,D1,D4,ZMODUL06:28;
          D6: y <> 0.Lin(A) by D5,ZMODUL01:26;
          y in Lin(A) by B6,C4,D5,ZMODUL06:20;
          then reconsider yy = y as VECTOR of Lin(A);
          (Omega).Lin(A) = Lin{yy} by B6,C4,D5,ZMODUL03:20;
          hence thesis by D6,ZMODUL05:5;
        end;
      end;
    end;
    A3: for n being Nat holds P[n] from NAT_1:sch 2(A1,A2);
    let A be finite Subset of ZS;
    set n = card(A);
    P[n] by A3;
    hence thesis;
  end;
