reserve i,j,m,n,k for Nat,
  x,y for set,
  K for Field,
  a,L for Element of K;

theorem Th16:
  for K be doubleLoopStr for V be non empty ModuleStr over K for f
be nilpotent Function of V,V ex v be Vector of V st for i st i < deg f holds (f
  |^i).v <> 0.V
proof
  let K be doubleLoopStr;
  let V be non empty ModuleStr over K;
  let f be nilpotent Function of V,V;
  set D=deg f;
  defpred P[Nat] means 0<$1 & $1 < D & (f|^$1).(0.V)=0.V;
  assume
A1: for v be Vector of V ex i st i < D & (f|^i).v=0.V;
  then ex i st i < D & (f|^i).(0.V) =0.V;
  then [#]V<>{0.V} by Th15;
  then consider v be object such that
A2: v in [#]V and
A3: v<>0.V by ZFMISC_1:35;
  reconsider v as Vector of V by A2;
  consider j such that
A4: j < D and
A5: (f|^j).v =0.V by A1;
A6: j-j<D-j by A4,XREAL_1:9;
  j>0
  proof
    assume j<=0;
    then j=0;
    then 0.V = id V.v by A5,VECTSP11:18
      .= v by FUNCT_1:18;
    hence thesis by A3;
  end;
  then
A7: D-j<D-0 by XREAL_1:10;
A8: dom (f|^j)=[#]V by FUNCT_2:def 1;
A9: D-j=D-'j by A4,XREAL_1:233;
  then
A10: D=(D-'j)+j;
A11: f|^D = ZeroMap(V,V) by Def5
    .= (the carrier of V)-->0.V by GRCAT_1:def 7;
  then 0.V = (f|^D).v
    .= ((f|^(D-'j))*(f|^j)).v by A10,VECTSP11:20
    .= (f|^(D-'j)).(0.V) by A5,A8,FUNCT_1:13;
  then
A12: ex j st P[j] by A9,A6,A7;
  consider m such that
A13: P[m] & for n be Nat st P[n] holds m <= n from NAT_1:sch 5(A12);
A14: D-'m=D-m by A13,XREAL_1:233;
A15: now
    let x be object;
    assume x in dom (f|^(D-'m));
    then reconsider X=x as Vector of V by FUNCT_2:def 1;
    consider k such that
A16: k < D and
A17: (f|^k).X =0.V by A1;
    defpred F[Nat] means $1<=D & ex i st $1=k+i*m;
    k=k+0*m;
    then
A18: ex k st F[k] by A16;
A19: for i be Nat st F[i] holds i <= D;
    consider MAX be Nat such that
A20: F[MAX] and
A21: for k be Nat st F[k] holds k <= MAX from NAT_1:sch 6(A19,A18);
    consider I be Nat such that
A22: MAX=k+I*m by A20;
    now
      per cases by A20,XXREAL_0:1;
      suppose
A23:    MAX=D;
        then I<>0 by A16,A22;
        then reconsider I1=I-1 as Nat by NAT_1:20;
        D-'m=k+I1*m by A14,A22,A23;
        hence (f|^(D-'m)).X=0.V by A13,A17,VECTSP11:21;
      end;
      suppose
A24:    MAX<D;
        MAX<>0
        proof
          assume
A25:      MAX=0;
          then k=0 by A22;
          then k+1*m<D by A13;
          hence thesis by A13,A21,A25;
        end;
        then
A26:    D-MAX <D-0 by XREAL_1:10;
A27:    (f|^MAX).X=0.V & dom (f|^MAX)= the carrier of V by A13,A17,A22,
FUNCT_2:def 1,VECTSP11:21;
A28:    MAX-MAX < D-MAX by A24,XREAL_1:9;
A29:    D-MAX=D-'MAX by A24,XREAL_1:233;
        then
A30:    D=D-'MAX+MAX;
        0.V = (f|^D).X by A11
          .= ((f|^(D-'MAX))*(f|^MAX)).X by A30,VECTSP11:20
          .= (f|^(D-'MAX)).(0.V) by A27,FUNCT_1:13;
        then m <= D-'MAX by A13,A29,A28,A26;
        then
A31:    MAX+m <= MAX+(D-MAX) by A29,XREAL_1:6;
        MAX+m=k+(I+1)*m by A22;
        then MAX+m<=MAX+0 by A21,A31;
        hence (f|^(D-'m)).X=0.V by A13,XREAL_1:6;
      end;
    end;
    hence (f|^(D-'m)).x=0.V;
  end;
A32: D-m<D-0 by A13,XREAL_1:10;
  dom (f|^(D-'m))=[#]V by FUNCT_2:def 1;
  then f|^(D-'m) = (the carrier of V)-->0.V by A15,FUNCOP_1:11
    .= ZeroMap(V,V) by GRCAT_1:def 7;
  hence contradiction by A14,A32,Def5;
end;
