
theorem LmTM1:
  for V being non trivial finitely-generated torsion Z_Module holds
  ex i being Element of INT.Ring st i <> 0 & for v being Vector of V
  holds i * v = 0.V
  proof
    let V be non trivial finitely-generated torsion Z_Module;
    defpred P[Nat] means
    for I being finite Subset of V st card(I) = $1
    holds ex i being Element of INT.Ring st i <> 0 &
    for v being Vector of V
    st v in Lin(I) holds i * v = 0.V;
    P1: P[0]
    proof
      let I be finite Subset of V;
      assume card(I) = 0;
      then A2: I = {}(the carrier of V);
      reconsider i = 1 as Element of INT.Ring;
      take i;
      thus i <> 0;
      thus for v being Vector of V
      st v in Lin(I) holds i * v = 0.V
      proof
        let v be Vector of V;
        assume v in Lin(I);
        then v in (0).V by A2,ZMODUL02:67;
        then v in {0.V} by VECTSP_4:def 3;
        then v = 0.V by TARSKI:def 1;
        hence i * v = 0.V by ZMODUL01:1;
      end;
    end;
    P2: for n being Nat st P[n] holds P[n+1]
    proof
      let n be Nat;
      assume A0: P[n];
      thus P[n+1]
      proof
        let I be finite Subset of V;
        assume A1: card(I) = n+1;
        then I <> {};
        then consider v be object such that
        A3: v in I by XBOOLE_0:def 1;
        reconsider v as Vector of V by A3;
        (I \ {v}) \/ {v} = I \/ {v} by XBOOLE_1:39
        .= I by A3,ZFMISC_1:40; then
        A4: Lin(I) = Lin(I \ {v}) + Lin{v} by ZMODUL02:72;
        A5: card(I \ {v}) = card(I) - card{v} by A3,CARD_2:44,ZFMISC_1:31
        .= card(I) - 1 by CARD_1:30
        .= n by A1;
        reconsider J = I \ {v} as finite Subset of V;
        consider j be Element of INT.Ring such that
        B8:j <> 0 &
        for v being Vector of V st v in Lin(J) holds j * v = 0.V by A0,A5;
        v is torsion by ZMODUL06:def 2;
        then consider k be Element of INT.Ring such that
        A8: k <> 0 & k * v = 0.V;
        reconsider i = j*k as Element of INT.Ring;
        take i;
        thus i <> 0 by A8,B8;
        thus for w being Vector of V st w in Lin(I) holds i * w = 0.V
        proof
          let w be Vector of V;
          assume w in Lin(I);
          then consider u1, u2 be Vector of V such that
          A10: u1 in Lin(I \ {v}) & u2 in Lin{v} & w = u1 + u2
          by A4,ZMODUL01:92;
          consider iu2 be Element of INT.Ring such that
          A11: u2 = iu2 * v by A10,ZMODUL06:19;
          thus i * w = i*u1+i*u2 by A10,VECTSP_1:def 14
          .= k*(j*u1) + (j*k)*u2 by VECTSP_1:def 16
          .= k*0.V + (j*k)*u2 by B8,A10
          .= k*0.V + j*(k*u2) by VECTSP_1:def 16
          .= k*0.V + j*(k*iu2 * v) by A11,VECTSP_1:def 16
          .= k*0.V + j*(iu2 * (k * v)) by VECTSP_1:def 16
          .= 0.V + j*(iu2 * 0.V) by A8,ZMODUL01:1
          .= 0.V + j*0.V by ZMODUL01:1
          .= 0.V by ZMODUL01:1;
        end;
      end;
    end;
    X1: for n being Nat holds P[n] from NAT_1:sch 2(P1,P2);
    consider I be finite Subset of V such that
    A1: Lin(I) = the ModuleStr of V by ZMODUL03:def 4;
    card I is Nat;
    then consider i be Element of INT.Ring such that
    X2: i <> 0 & for v being Vector of V
    st v in Lin(I) holds i * v = 0.V by X1;
    take i;
    thus i <> 0 by X2;
    thus for v being Vector of V holds i * v = 0.V
    proof
      let v be Vector of V;
      v in Lin(I) by A1;
      hence i * v = 0.V by X2;
    end;
  end;
