theorem Th31:
  for K be algebraic-closed Field for V be non trivial
  finite-dimensional VectSp of K, F be linear-transformation of V,V ex J be
non-empty (FinSequence_of_Jordan_block of K), b1 be OrdBasis of V st AutMt(F,b1
,b1) = block_diagonal(J,0.K) & for L be Scalar of K holds L is eigenvalue of F
  iff ex i st i in dom J & J.i = Jordan_block(L,len (J.i))
proof
  let K be algebraic-closed Field;
  defpred P[Nat] means for V be non trivial finite-dimensional VectSp of K st
  dim V <= $1 for F be linear-transformation of V,V ex J be non-empty (
  FinSequence_of_Jordan_block of K), b1 be OrdBasis of V st AutMt(F,b1,b1) =
block_diagonal(J,0.K) & for L be Scalar of K holds L is eigenvalue of F iff ex
  i st i in dom J & J.i = Jordan_block(L,len (J.i));
  let V be non trivial finite-dimensional VectSp of K, F be
  linear-transformation of V,V;
A1: for n st P[n] holds P[n+1]
  proof
    let n such that
A2: P[n];
    set n1=n+1;
    let V be non trivial finite-dimensional VectSp of K such that
A3: dim V <= n1;
    per cases by A3,NAT_1:8;
    suppose
      dim V<=n;
      hence thesis by A2;
    end;
    suppose
A4:   dim V=n1;
      let F be linear-transformation of V,V;
A5:   F is with_eigenvalues by VECTSP11:16;
      then consider v be Vector of V, L be Scalar of K such that
A6:   v <> 0.V & F.v = L*v by VECTSP11:def 1;
      set FL=F+(-L)*id V;
      L is eigenvalue of F by A5,A6,VECTSP11:def 2;
      then ker FL is non trivial by A5,VECTSP11:14;
      then
A7:   dim ker FL<>0 by MATRLIN2:42;
      consider m such that
A8:   UnionKers FL = ker (FL|^m) by VECTSP11:27;
      set IM = im (FL|^m);
      set KER = ker (FL|^m);
A9:   dim V=dim KER + dim IM by A8,VECTSP11:35,VECTSP_9:34;
A10:  IM is Linear_Compl of KER by A8,VECTSP11:35,VECTSP_5:37;
      reconsider FK=F|KER as linear-transformation of KER,KER by VECTSP11:29;
      consider Jk be non-empty FinSequence_of_Jordan_block of L,K, Bker be
      OrdBasis of KER such that
A11:  AutMt(FK,Bker,Bker) = block_diagonal(Jk,0.K) by Th30;
      FL|^1=FL by VECTSP11:19;
      then
A12:  ker FL is Subspace of KER by A8,VECTSP11:25;
A13:  len Jk<>0
      proof
        assume len Jk=0;
        then Len Jk = <*>NAT .= <*>REAL;
        then 0 = len block_diagonal(Jk,0.K) by MATRIXJ1:def 5,RVSUM_1:72
          .= len Bker by A11,MATRIX_0:def 2
          .= dim KER by MATRLIN2:21;
        hence thesis by A12,A7,VECTSP_9:25;
      end;
      reconsider FI=F|IM as linear-transformation of IM,IM by VECTSP11:33;
A14:  KER/\IM=(0).V by A8,VECTSP11:34;
A15:  V is_the_direct_sum_of KER,IM by A8,VECTSP11:35;
      then
A16:  KER+IM = (Omega).V by VECTSP_5:def 4;
      per cases;
      suppose
A17:    IM is trivial;
        set Bim = the OrdBasis of IM;
        0 = dim IM by A17,MATRLIN2:42
          .= len Bim by MATRLIN2:21
          .= len AutMt(FI,Bim,Bim) by MATRIX_0:def 2;
        then
A18:    AutMt(FI,Bim,Bim)={};
        Bker^Bim is OrdBasis of KER+IM by A14,MATRLIN2:26;
        then reconsider BB=Bker^Bim as OrdBasis of V by A16,MATRLIN2:4;
        take Jk,BB;
A19:    dim IM=0 implies dim IM=0;
        dim KER=0 implies dim KER=0;
        hence AutMt(F,BB,BB) = block_diagonal(<*AutMt(FK,Bker,Bker), AutMt(FI,
        Bim,Bim)*>,0.K) by A15,A19,MATRLIN2:27
          .= block_diagonal(<*AutMt(FK,Bker,Bker)*>,0.K) by A18,MATRIXJ1:40
          .= block_diagonal(Jk,0.K) by A11,MATRIXJ1:34;
        let L1 be Scalar of K;
        thus L1 is eigenvalue of F implies ex i st i in dom Jk & Jk.i =
        Jordan_block(L1,len (Jk.i))
        proof
          assume
A20:      L1 is eigenvalue of F;
A21:      L1 = L
          proof
            assume L<>L1;
            then
            FI is with_eigenvalues & L1 is eigenvalue of FI by A5,A8,A10,A20,
VECTSP11:39;
            then ex v1 be Vector of IM st v1<>0.IM & FI.v1 = L1*v1 by
VECTSP11:def 2;
            hence thesis by A17;
          end;
          take i=len Jk;
          i in Seg len Jk by A13,FINSEQ_1:3;
          hence i in dom Jk by FINSEQ_1:def 3;
          then ex k st Jk.i=Jordan_block(L,k) by Def3;
          hence thesis by A21,Def1;
        end;
        given i such that
A22:    i in dom Jk and
A23:    Jk.i = Jordan_block(L1,len (Jk.i));
        Jk.i <> {} by A22,FUNCT_1:def 9;
        then len (Jk.i) in Seg len (Jk.i) by FINSEQ_1:3;
        then [len (Jk.i),len (Jk.i)] in [:Seg len (Jk.i),Seg len (Jk.i):] by
ZFMISC_1:87;
        then
A24:    [len (Jk.i),len (Jk.i)] in Indices (Jk.i) by MATRIX_0:24;
        ex k st Jk.i=Jordan_block(L,k) by A22,Def3;
        then L = (Jk.i)*(len (Jk.i),len (Jk.i)) by A24,Def1
          .= L1 by A23,A24,Def1;
        hence thesis by A5,A6,VECTSP11:def 2;
      end;
      suppose
A25:    IM is non trivial;
        n1 <> dim IM & dim IM <= n1 by A4,A12,A7,A9,VECTSP_9:25;
        then dim IM <n1 by XXREAL_0:1;
        then dim IM <=n by NAT_1:13;
        then consider
        Ji be non-empty (FinSequence_of_Jordan_block of K), Bim be
        OrdBasis of IM such that
A26:    AutMt(FI,Bim,Bim) = block_diagonal(Ji,0.K) and
A27:    for L be Scalar of K holds L is eigenvalue of FI iff ex i st
        i in dom Ji & Ji.i = Jordan_block(L,len (Ji.i)) by A2,A25;
        Bker^Bim is OrdBasis of KER+IM by A14,MATRLIN2:26;
        then reconsider BB=Bker^Bim as OrdBasis of V by A16,MATRLIN2:4;
        set JJ=Jk^Ji;
A28:    now
          let x be object such that
A29:      x in dom JJ;
          reconsider i=x as Nat by A29;
          now
            per cases by A29,FINSEQ_1:25;
            suppose
A30:          i in dom Jk;
              then JJ.i=Jk.i by FINSEQ_1:def 7;
              hence JJ.i is non empty by A30,FUNCT_1:def 9;
            end;
            suppose
              ex j st j in dom Ji & i = len Jk +j;
              then consider j such that
A31:          j in dom Ji and
A32:          i=len Jk+j;
              JJ.i=Ji.j by A31,A32,FINSEQ_1:def 7;
              hence JJ.i is non empty by A31,FUNCT_1:def 9;
            end;
          end;
          hence JJ.x is non empty;
        end;
A33:    FI is with_eigenvalues by A25,VECTSP11:16;
A34:    dim IM=0 implies dim IM=0;
        reconsider JJ as non-empty FinSequence_of_Jordan_block of K by A28,
FUNCT_1:def 9;
        take JJ,BB;
        dim KER=0 implies dim KER=0;
        hence AutMt(F,BB,BB) = block_diagonal(<*block_diagonal(Jk,0.K),
        block_diagonal(Ji,0.K)*>,0.K) by A11,A15,A26,A34,MATRLIN2:27
          .= block_diagonal(<*block_diagonal(Jk,0.K)*>^Ji,0.K) by MATRIXJ1:36
          .= block_diagonal(JJ,0.K) by MATRIXJ1:35;
        let L1 be Scalar of K;
        thus L1 is eigenvalue of F implies ex i st i in dom JJ & JJ.i =
        Jordan_block(L1,len (JJ.i))
        proof
          assume
A35:      L1 is eigenvalue of F;
          per cases;
          suppose
A36:        L = L1;
            take i=len Jk;
A37:        dom Jk c= dom JJ by FINSEQ_1:26;
            i in Seg len Jk by A13,FINSEQ_1:3;
            then
A38:        i in dom Jk by FINSEQ_1:def 3;
            then (ex k st Jk.i = Jordan_block(L,k) )& JJ.i=Jk.i by Def3,
FINSEQ_1:def 7;
            hence thesis by A36,A38,A37,Def1;
          end;
          suppose
            L<>L1;
            then L1 is eigenvalue of FI by A5,A8,A10,A35,VECTSP11:39;
            then consider i such that
A39:        i in dom Ji and
A40:        Ji.i = Jordan_block(L1,len (Ji.i)) by A27;
            take ii=len Jk+i;
            JJ.ii=Ji.i by A39,FINSEQ_1:def 7;
            hence thesis by A39,A40,FINSEQ_1:28;
          end;
        end;
        given i such that
A41:    i in dom JJ and
A42:    JJ.i = Jordan_block(L1,len (JJ.i));
        per cases by A41,FINSEQ_1:25;
        suppose
A43:      i in dom Jk;
          then Jk.i <> {} by FUNCT_1:def 9;
          then len (Jk.i) in Seg len (Jk.i) by FINSEQ_1:3;
          then
          [len (Jk.i),len (Jk.i)] in [:Seg len (Jk.i),Seg len (Jk.i):] by
ZFMISC_1:87;
          then
A44:      [len (Jk.i),len (Jk.i)] in Indices (Jk.i) by MATRIX_0:24;
A45:      JJ.i = Jk.i by A43,FINSEQ_1:def 7;
          ex k st Jk.i = Jordan_block(L,k) by A43,Def3;
          then L = (Jk.i)*(len (Jk.i),len (Jk.i)) by A44,Def1
            .= L1 by A42,A45,A44,Def1;
          hence thesis by A5,A6,VECTSP11:def 2;
        end;
        suppose
          ex j st j in dom Ji & i = len Jk +j;
          then consider j such that
A46:      j in dom Ji and
A47:      i=len Jk+j;
          JJ.i=Ji.j by A46,A47,FINSEQ_1:def 7;
          then L1 is eigenvalue of FI by A27,A42,A46;
          then consider w be Vector of IM such that
A48:      w<>0.IM and
A49:      FI.w = L1*w by A33,VECTSP11:def 2;
A50:      0.IM = 0.V by VECTSP_4:11;
          reconsider W=w as Vector of V by VECTSP_4:10;
          L1*W = FI.w by A49,VECTSP_4:14
            .= F.W by FUNCT_1:49;
          hence thesis by A5,A48,A50,VECTSP11:def 2;
        end;
      end;
    end;
  end;
A51: P[0]
  proof
    let V be non trivial finite-dimensional VectSp of K;
    assume dim V <= 0;
    then dim V=0;
    hence thesis by MATRLIN2:42;
  end;
  for n holds P[n] from NAT_1:sch 2(A51,A1);
  then P[dim V];
  hence thesis;
end;
