reserve D for non empty set,
  i,j,k,l for Nat,
  n for Nat,
  x for set,
  a,b,c,r,r1,r2 for Real,
  p,q for FinSequence of REAL,
  MR,MR1 for Matrix of REAL;

theorem Th29:
  for M being Matrix of D for p being FinSequence of D* st len p =
len M & p.1 = M.1 & (for k st k >= 1 & k < len M holds p.(k+1) = (p.k) ^ M.(k+1
  )) holds for k st k in dom p holds len (p.k) = k * width M
proof
  let M be Matrix of D;
  let p be FinSequence of D* such that
A1: len p = len M and
A2: p.1 = M.1 and
A3: for k st k >= 1 & k < len M holds p.(k+1) = (p.k) ^ M.(k+1);
  defpred P[Nat] means
$1 >= 1 & $1 <= len M implies len (p.$1) =
  $1 * width M;
A4: for n being Nat st P[n] holds P[n + 1]
  proof
    let n be Nat;
    assume that
A5: n >= 1 & n <= len M implies len (p.n) = n * width M;
    assume that
A6: n + 1 >= 1 and
A7: n + 1 <= len M;
    now
      per cases;
      suppose
A8:     n = 0;
        then 1 in dom M by A7,FINSEQ_3:25;
        hence thesis by A2,A8,MATRIX_0:36;
      end;
      suppose
A9:     n <> 0;
A10:    n + 1 in dom M by A6,A7,FINSEQ_3:25;
        n < len M by A7,NAT_1:13;
        then p.(n + 1) = (p.n) ^ M.(n+1) by A3,A9,NAT_1:14;
        then len (p.(n + 1)) = len (p.n) + len (M.(n+1)) by FINSEQ_1:22
          .= (n * width M) + width M by A5,A7,A9,A10,MATRIX_0:36,NAT_1:13,14
          .= (n + 1) * width M;
        hence thesis;
      end;
    end;
    hence thesis;
  end;
A11: P[0];
A12: for n being Nat holds P[n] from NAT_1:sch 2(A11,A4);
  let k;
  assume k in dom p;
  then
A13: k in Seg len p by FINSEQ_1:def 3;
  then
A14: k <= len p by FINSEQ_1:1;
  k >= 1 by A13,FINSEQ_1:1;
  hence thesis by A1,A12,A14;
end;
