 reserve Rseq, Rseq1, Rseq2 for Function of [:NAT,NAT:],REAL;

theorem
for D being non empty set, Rseq being Function of [:NAT,NAT:],D,
    n,m being Nat holds
 ex M be Matrix of n+1,m+1,D st
  for i,j being Nat st i <= n & j <= m holds Rseq.(i,j) = M*(i+1,j+1)
proof
   let D be non empty set, Rseq be Function of [:NAT,NAT:],D;
   let n,m be Nat;
   defpred P[Nat,Nat,object] means
    ex i1,j1 being Nat st i1=$1-1 & j1=$2-1 & $3=Rseq.(i1,j1);
A1:now let i,j be Nat;
    assume [i,j] in [:Seg(n+1),Seg(m+1):]; then
    [i,j]`1 in Seg(n+1) & [i,j]`2 in Seg(m+1) by MCART_1:10; then
    1 <= i & 1 <= j by FINSEQ_1:1; then
    reconsider i1 = i-1, j1 = j-1 as Element of NAT by NAT_1:21;
    reconsider i1, j1 as Nat;
    dom Rseq = [:NAT,NAT:] by FUNCT_2:def 1; then
    [i1,j1] in dom Rseq by ZFMISC_1:def 2; then
    reconsider x = Rseq.(i1,j1) as Element of D by FUNCT_2:5;
    take x;
    thus P[i,j,x];
   end;
   consider M be Matrix of n+1,m+1,D such that
A2: for i,j being Nat st [i,j] in Indices M holds P[i,j,M*(i,j)]
      from MATRIX_0:sch 2(A1);
   take M;
   hereby let i,j be Nat;
    assume i <= n & j <= m; then
    i < n+1 & j < m+1 by NAT_1:13; then
    i+1 in Seg(n+1) & j+1 in Seg(m+1) by FINSEQ_3:11; then
    [i+1,j+1] in [:Seg(n+1),Seg(m+1):] by ZFMISC_1:def 2; then
    [i+1,j+1] in Indices M by MATRIX_0:23; then
    consider i1,j1 be Nat such that
A4:  i1=i+1-1 & j1=j+1-1 & M*(i+1,j+1) = Rseq.(i1,j1) by A2;
    thus Rseq.(i,j) = M*(i+1,j+1) by A4;
   end;
end;
