reserve i,j,m,n,k for Nat,
  x,y for set,
  K for Field,
  a,L for Element of K;
reserve V1,V2 for finite-dimensional VectSp of K,
  W1,W2 for Subspace of V1,
  U1 ,U2 for Subspace of V2,
  b1 for OrdBasis of V1,
  B1 for FinSequence of V1,
  b2 for OrdBasis of V2,
  B2 for FinSequence of V2,
  bw1 for OrdBasis of W1,
  bw2 for OrdBasis of W2,
  Bu1 for FinSequence of U1,
  Bu2 for FinSequence of U2;

theorem Th25:
  for J be FinSequence_of_Jordan_block of 0.K,K for M be Matrix of
len b1,len b1,K st M = block_diagonal(J,0.K) for m st for i st i in dom J holds
  len (J.i) <= m holds Mx2Tran(M,b1,b1) |^ m = ZeroMap(V1,V1)
proof
  let J be FinSequence_of_Jordan_block of 0.K,K;
  let M be Matrix of len b1,len b1,K such that
A1: M = block_diagonal(J,0.K);
  reconsider Z=ZeroMap(V1,V1) as linear-transformation of V1,V1;
  set MT=Mx2Tran(M,b1,b1);
  let m such that
A2: for i st i in dom J holds len (J.i) <= m;
A3: dom Z=the carrier of V1 & rng b1 c= the carrier of V1 by FUNCT_2:def 1
,RELAT_1:def 19;
  set MTm=MT|^m;
A4: dom MTm=the carrier of V1 by FUNCT_2:def 1;
  per cases;
  suppose
    len b1=0;
    then dim V1=0 by MATRLIN2:21;
    then (Omega).V1=(0).V1 by VECTSP_9:29;
    then
A5: the carrier of V1 = {0.V1} by VECTSP_4:def 3;
    rng MTm c= the carrier of V1 by RELAT_1:def 19;
    then rng MTm={0.V1} by A5,ZFMISC_1:33;
    then MTm = (the carrier of V1)-->0.V1 by A4,FUNCOP_1:9
      .= Z by GRCAT_1:def 7;
    hence thesis;
  end;
  suppose
A6: len b1>0;
A7: dom J=dom Len J by MATRIXJ1:def 3;
A8: len M=len b1 & len M = Sum Len J by A1,MATRIX_0:24;
A9: now
      let x be object such that
A10:  x in dom b1;
      reconsider n=x as Element of NAT by A10;
      set mm=min(Len J,n);
A11:  n in Seg Sum Len J by A8,A10,FINSEQ_1:def 3;
      then
A12:  mm in dom Len J by MATRIXJ1:def 1;
      then
A13:  (Len J).mm = len (J.mm) by MATRIXJ1:def 3;
A14:  (Len J) |mm =Len (J|mm) by MATRIXJ1:17;
A15:  now
        mm<=len Len J by A12,FINSEQ_3:25;
        then Sum (Len J|mm)<= Sum ((Len J) | (len Len J)) by A14,POLYNOM3:18;
        then
A16:    Sum (Len J|mm)<= len b1 by A8,FINSEQ_1:58;
        let k;
        assume n+k<=Sum (Len J|mm);
        then
A17:    n+k <= len b1 by A16,XXREAL_0:2;
        1<=n & n<=n+k by A11,FINSEQ_1:1,NAT_1:11;
        then 1<=n+k by XXREAL_0:2;
        hence n+k in dom b1 by A17,FINSEQ_3:25;
      end;
      defpred Q[Nat] means (MT|^($1+1)).(b1/.n)=0.V1;
      defpred P[Nat] means n+$1 < Sum(Len J|mm) implies (MT|^($1+1)).(b1/.n)=
      b1/.(n+$1+1);
      set Sm=Sum ((Len J) | (mm-'1));
A18:  (Len J).mm=(Len J)/.mm by A12,PARTFUN1:def 6;
      mm-'1=mm-1 by A11,MATRIXJ1:7;
      then mm-'1+1=mm;
      then (Len J) |mm=((Len J) | (mm-'1))^<*(Len J).mm*> by A12,FINSEQ_5:10;
      then
A19:  Sum (Len J|mm)=Sm+len (J.mm) by A14,A13,RVSUM_1:74;
A20:  Sm < n by A11,MATRIXJ1:7;
      then
A21:  n-'Sm=n-Sm by XREAL_1:233;
      then
A22:  n-'Sm<>0 by A11,MATRIXJ1:7;
A23:  now
        let k;
        assume n+k<=Sum(Len J|mm);
        then
A24:    n+k-Sm<=Sm+len (J.mm)-Sm by A19,XREAL_1:9;
        1<=n-'Sm+k by A22,NAT_1:14;
        then n-'Sm+k in Seg ((Len J)/.mm) by A18,A21,A13,A24;
        then min(Len J,n-'Sm+k+Sum ((Len J) | (mm-'1)))=mm by A12,MATRIXJ1:10;
        hence min(Len J,n+k)=mm by A21;
      end;
A25:  for k st P[k] holds P[k+1]
      proof
        let k such that
A26:    P[k];
        set k1=k+1;
A27:    the carrier of V1= dom (MT|^k1) & n+k1=n+k+1 by FUNCT_2:def 1;
        assume
A28:    n+k1<Sum(Len J|mm);
        then n+k1<Sum(Len J|min(Len J,n+k1)) & n+k1 in dom b1 by A15,A23;
        then
A29:    MT.(b1/.(n+k1)) = 0.K*(b1/.(n+k1))+ b1/.(n+k1+1) by A1,Th24
          .= 0.V1+b1/.(n+k1+1) by VECTSP_1:14
          .= b1/.(n+k1+1) by RLVECT_1:def 4;
        thus (MT|^(k1+1)).(b1/.n) = ((MT|^1)*(MT|^k1)).(b1/.n) by VECTSP11:20
          .= (MT|^1).(b1/.(n+k1)) by A26,A28,A27,FUNCT_1:13,NAT_1:13
          .= b1/.(n+k1+1) by A29,VECTSP11:19;
      end;
      n<=Sum ((Len J) |mm) by A11,MATRIXJ1:def 1;
      then
A30:  Sum (Len J|mm)-'n=Sum (Len J|mm) - n by A14,XREAL_1:233;
A31:  P[0]
      proof
        assume n+0< Sum(Len J|mm);
        then MT.(b1/.n) = 0.K*(b1/.n)+ b1/.(n+1) by A1,A10,Th24
          .= 0.V1+b1/.(n+1) by VECTSP_1:14
          .= b1/.(n+1) by RLVECT_1:def 4;
        hence thesis by VECTSP11:19;
      end;
A32:  for k holds P[k] from NAT_1:sch 2(A31,A25);
A33:  Q[Sum(Len J|mm)-'n]
      proof
        per cases;
        suppose
A34:      Sum(Len J|mm)-'n=0;
          then MT.(b1/.n) = 0.K*(b1/.n) by A1,A10,A30,Th24
            .= 0.V1 by VECTSP_1:14;
          hence thesis by A34,VECTSP11:19;
        end;
        suppose
          Sum(Len J|mm)-'n>0;
          then reconsider S1=(Sum(Len J|mm)-'n)-1 as Element of NAT by NAT_1:20
;
A35:      the carrier of V1= dom (MT|^(Sum(Len J|mm)-'n)) by FUNCT_2:def 1;
          Sum(Len J|mm)-1<Sum(Len J|mm)-0 by XREAL_1:10;
          then
A36:      (MT|^(S1+1)).(b1/.n) = b1/.(n+S1+1) by A30,A32
            .= b1/.Sum(Len J|mm) by A30;
          Sum(Len J|mm)-'n+n = Sum(Len J|mm) by A30;
          then Sum(Len J|mm) in dom b1 & min(Len J,Sum(Len J|mm))=mm by A15,A23
;
          then
A37:      MT.(b1/.Sum(Len J|mm)) = 0.K*(b1/.Sum(Len J|mm)) by A1,Th24
            .= 0.V1 by VECTSP_1:14;
          thus (MT|^(Sum(Len J|mm)-'n+1)).(b1/.n) = ((MT|^1)*(MT|^(Sum(Len J|
          mm)-'n))).(b1/.n) by VECTSP11:20
            .= (MT|^1).((MT|^(Sum(Len J|mm)-'n)).(b1/.n)) by A35,FUNCT_1:13
            .= 0.V1 by A36,A37,VECTSP11:19;
        end;
      end;
      Sm-n <n-n by A20,XREAL_1:9;
      then
A38:  len (J.mm)+(Sm-n) < len (J.mm)+0 by XREAL_1:6;
      then 0<m by A2,A7,A12,A30,A19;
      then reconsider m1=m-1 as Element of NAT by NAT_1:20;
      len (J.mm) <= m by A2,A7,A12;
      then Sum (Len J|mm)-'n<m1+1 by A30,A19,A38,XXREAL_0:2;
      then
A39:  Sum (Len J|mm)-'n <= m1 by NAT_1:13;
A40:  for k st Sum(Len J|mm)-'n <=k holds Q[k] implies Q[k+1]
      proof
        let k such that
        Sum(Len J|mm)-'n <=k;
        set k1=k+1;
        assume
A41:    Q[k];
A42:    dom (MT|^k1)=the carrier of V1 by FUNCT_2:def 1;
        thus (MT|^(k1+1)).(b1/.n) = ((MT|^1)*(MT|^k1)).(b1/.n) by VECTSP11:20
          .= (MT|^1).((MT|^k1).(b1/.n)) by A42,FUNCT_1:13
          .= MT.(0.V1) by A41,VECTSP11:19
          .= MT.(0.K*0.V1) by VECTSP_1:14
          .= 0.K*MT.(0.V1) by MOD_2:def 2
          .= 0.V1 by VECTSP_1:14;
      end;
      for k st Sum(Len J|mm)-'n <= k holds Q[k] from NAT_1:sch 8(A33,A40);
      then
A43:  (MT|^(m1+1)).(b1/.n) = 0.V1 by A39;
      thus (Z*b1).x = Z.(b1.x) by A10,FUNCT_1:13
        .= Z.(b1/.x) by A10,PARTFUN1:def 6
        .= ((the carrier of V1)-->0.V1).(b1/.x) by GRCAT_1:def 7
        .= 0.V1
        .= MTm.(b1.n) by A10,A43,PARTFUN1:def 6
        .= (MTm*b1).x by A10,FUNCT_1:13;
    end;
    dom (Z*b1)=dom b1 & dom (MTm*b1)=dom b1 by A4,A3,RELAT_1:27;
    hence thesis by A6,A9,FUNCT_1:2,MATRLIN:22;
  end;
end;
