
theorem ThRatLat1B:
  for L being Z_Lattice, I being finite Subset of L, u being Vector of L
  st for v being Vector of L st v in I holds <; v, u ;> in RAT holds
  for v being Vector of L st v in Lin(I) holds <; v, u ;> in RAT
  proof
    let L be Z_Lattice, I be finite Subset of L, u be Vector of L;
    assume AS: for v being Vector of L st v in I holds  <; v, u ;> in RAT;
    defpred P[Nat] means
    for I be finite Subset of L
    st card(I) = $1 &
    for v being Vector of L st v in I holds <; v, u ;> in RAT holds
    for v being Vector of L st v in Lin(I) holds <; v, u ;> in RAT;
    P1: P[0]
    proof
      let I be finite Subset of L;
      assume card(I) = 0 &
      for v being Vector of L st v in I holds <; v, u ;> in RAT;
      then I = {}(the carrier of L); then
      A2: Lin(I) = (0).L by ZMODUL02:67;
      let v be Vector of L;
      assume v in Lin(I);
      then v in {0.L} by A2,VECTSP_4:def 3;
      then v = 0.L by TARSKI:def 1;
      then <; v, u ;> = 0 by ZMODLAT1:12;
      hence <; v, u ;> in RAT by RAT_1:def 2;
    end;
    P2: for n being Nat st P[n] holds P[n+1]
    proof
      let n be Nat;
      assume A0: P[n];
      let I be finite Subset of L;
      assume A1: card(I) = n+1 &
      for v being Vector of L st v in I holds <; v, u ;> in RAT;
      then I <> {};
      then consider v be object such that
      A3: v in I by XBOOLE_0:def 1;
      reconsider v as Vector of L 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 L;
      B8: for x being Vector of L st x in J holds  <; x, u ;> in RAT
      proof
        let x be Vector of L;
        assume x in J;
        then x in I by XBOOLE_1:36,TARSKI:def 3;
        hence <; x, u ;> in RAT by A1;
      end;
      thus for x being Vector of L st x in Lin(I) holds <; x, u ;> in RAT
      proof
        let x be Vector of L;
        assume x in Lin(I);
        then consider xu1, xu2 be Vector of L such that
        A10: xu1 in Lin(I \ {v}) & xu2 in Lin{v} & x = xu1 + xu2
        by A4,ZMODUL01:92;
        consider ixu2 be Element of INT.Ring such that
        A12: xu2 = ixu2 * v by A10,ZMODUL06:19;
        B11: x = (1.(INT.Ring))*xu1 + ixu2*v by A10,A12;
        set i1 = 1.(INT.Ring);
        B13: <; x,u ;> = i1*<; xu1,u ;> + ixu2* <; v,u ;> by B11,ZMODLAT1:10;
        B14: <; xu1,u ;> in RAT by A0,A5,B8,A10;
        <; v,u ;> in RAT by A1,A3;
        hence <; x, u ;> in RAT by B13,B14,RAT_1:def 2;
      end;
    end;
    X1: for n being Nat holds P[n] from NAT_1:sch 2(P1,P2);
    card (I) is Nat;
    hence thesis by X1,AS;
  end;
