reserve x,y for set,
  i,j,k,l,m,n for Nat,
  K for Field,
  N for without_zero finite Subset of NAT,
  a,b for Element of K,
  A,B,B1,B2,X,X1,X2 for (Matrix of K),
  A9 for (Matrix of m,n,K),
  B9 for (Matrix of m,k,K);
reserve D for non empty set,
  bD for FinSequence of D,
  b,f,g for FinSequence of K,
  MD for Matrix of D;

theorem
  for A,B be Matrix of K st width A = len B holds the_rank_of (A*B) <=
  the_rank_of A & the_rank_of (A*B) <= the_rank_of B
proof
  let A,B be Matrix of K such that
A1: width A = len B;
  set AB=A*B;
A2: width AB=width B by A1,MATRIX_3:def 4;
  per cases;
  suppose
    the_rank_of AB=0;
    hence thesis;
  end;
  suppose
A3: the_rank_of AB>0;
    set AT=A@;
A4: width AB>0 by A3,MATRIX13:74;
    then
A5: width A>0 by A1,A2,MATRIX_0:def 3;
    then
A6: len AT=width A by MATRIX_0:54;
    set BT=B@;
    set BA=BT*AT;
    width AT=len A by A5,MATRIX_0:54;
    then
A7: width AT = 0 implies len AT = 0 by A5,MATRIX_0:def 3;
    then
A8: dim Space_of_Solutions_of AT = width AT - the_rank_of AT by Th68;
A9: width BT=len B by A2,A4,MATRIX_0:54;
    then width BT = 0 implies len BT = 0 by A2,A4,MATRIX_0:def 3;
    then
A10: Space_of_Solutions_of AT is Subspace of Space_of_Solutions_of BA by A1,A6
,A9,A7,Th72;
A11: width BA=width AT by A1,A6,A9,MATRIX_3:def 4;
    then dim Space_of_Solutions_of BA = width BA - the_rank_of BA by A5,A7,Th68
,MATRIX_0:54;
    then width AT - the_rank_of AT<=width AT - the_rank_of BA by A11,A10,A8,
VECTSP_9:25;
    then the_rank_of AT >= the_rank_of BA by XREAL_1:10;
    then
A12: the_rank_of A >= the_rank_of BA by MATRIX13:84;
    width A=0 implies len A=0 by A1,A2,A4,MATRIX_0:def 3;
    then
A13: Space_of_Solutions_of B is Subspace of Space_of_Solutions_of AB by A1,A2
,A4,Th72;
    dim Space_of_Solutions_of B = width B-the_rank_of B & dim
    Space_of_Solutions_of AB=width AB-the_rank_of AB by A2,A4,Th68;
    then
A14: width B-the_rank_of B <= width B-the_rank_of AB by A2,A13,VECTSP_9:25;
    BA=AB@ by A1,A2,A4,MATRIX_3:22;
    hence thesis by A14,A12,MATRIX13:84,XREAL_1:10;
  end;
end;
