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 LmTF1C:
  for V being Z_Module, I being finite Subset of V, W being Submodule of V
  st for v being VECTOR of V st v in I holds
  ex a being Element of INT.Ring st a <> 0.INT.Ring & a*v in W
  ex a being Element of INT.Ring st a <> 0.INT.Ring
  & for v being VECTOR of V st v in I holds a*v in W
  proof
    let V be Z_Module, I be finite Subset of V, W be Submodule of V;
    defpred P[Nat] means
    for I being finite Subset of V st card I = $1
    & for v being VECTOR of V st v in I holds
    ex a being Element of INT.Ring st a <> 0.INT.Ring & a*v in W
    holds
    ex a being Element of INT.Ring st a <> 0.INT.Ring
    & for v being VECTOR of V st v in I holds a*v in W;
    P1: P[0]
    proof
      let I be finite Subset of V;
      assume that
      A0: card I = 0 and
      for v being VECTOR of V
      st v in I holds ex a being Element of INT.Ring st a <> 0.INT.Ring &
      a*v in W;
      reconsider a = 1.INT.Ring as Element of INT.Ring;
      take a;
      thus a <> 0.INT.Ring;
      thus for v being VECTOR of V st v in I holds a*v in W by A0;
    end;
    P2: for n being Nat st P[n] holds P[n+1]
    proof
      let n be Nat such that
      B1: P[n];
      let I be finite Subset of V;
      assume that
      A0: card I = n+1 and
      A1: for v being VECTOR of V
      st v in I holds ex a being Element of INT.Ring st a <> 0.INT.Ring &
      a*v in W;
      I is non empty by A0;
      then consider u be object such that
      B3: u in I by XBOOLE_0:def 1;
      reconsider u as VECTOR of V by B3;
      set Iu = I \ {u};
      {u} is Subset of I by B3,SUBSET_1:41;
      then B6: card(Iu) = n+1 - card({u}) by A0,CARD_2:44
      .= n+1 - 1 by CARD_1:30
      .= n;
      reconsider Iu as finite Subset of V;
      for v being VECTOR of V
      st v in Iu holds ex a being Element of INT.Ring st a <> 0.INT.Ring &
      a*v in W
      proof
        let v be VECTOR of V;
        assume v in Iu;
        then v in I & not v in {u} by XBOOLE_0:def 5;
        hence thesis by A1;
      end;
      then consider b be Element of INT.Ring such that
      A3: b <> 0.INT.Ring and
      A4: for v being VECTOR of V
      st v in Iu holds b*v in W by B1,B6;
      consider au be Element of INT.Ring such that
      A5: au <> 0.INT.Ring and
      A6: au*u in W by A1,B3;
      set a = au*b;
      take a;
      thus a <> 0.INT.Ring by A3,A5;
      thus for v being VECTOR of V st v in I holds a*v in W
      proof
        let v be VECTOR of V;
        assume D1: v in I;
        per cases;
        suppose v = u; then
          a*v = (b*au)*u .= b*(au*u) by VECTSP_1:def 16;
          hence a*v in W by A6,ZMODUL01:37;
        end;
        suppose v <> u;
          then D3: b*v in W by A4,D1,ZFMISC_1:56;
          a*v = au*(b*v) by VECTSP_1:def 16;
          hence a*v in W by D3,ZMODUL01:37;
        end;
      end;
    end;
    X1: for n being Nat holds P[n] from NAT_1:sch 2(P1,P2);
    assume
    X2: for v being VECTOR of V
    st v in I holds ex a being Element of INT.Ring st a <> 0.INT.Ring &
    a*v in W;
    card I is Nat;
    hence thesis by X1,X2;
  end;
