reserve x,y,z for object,
  i,j,n,m for Nat,
  D for non empty set,
  s,t for FinSequence,
  a,a1,a2,b1,b2,d for Element of D,
  p, p1,p2,q,r for FinSequence of D;
reserve M,M1,M2 for Matrix of D;
reserve f for FinSequence of D;
reserve i,j,i1,j1 for Nat;
reserve k for Nat, G for Matrix of D;
reserve x,y,x1,x2,y1,y2 for object,
  i,j,k,l,n,m for Nat,
  D for non empty set,
  s,s2 for FinSequence,
  a,b,c,d for Element of D,
  q,r for FinSequence of D,
  a9,b9 for Element of D;

theorem Th57:
  for M being Matrix of D st len M>0 & width M>0 holds (M@)@=M
proof
  let M be Matrix of D;
  assume that
A1: len M>0 and
A2: width M>0;
  set N=M@;
A3: width N= len M by A2,Th54;
A4: len (N@) = width N by Def6;
A5: len N = width M by Def6;
  dom M = Seg len M & dom (N@) = Seg len (N@) by FINSEQ_1:def 3;
  then
A6: Indices (N@)=Indices M by A1,A5,A3,A4,Th54;
A7: for i,j st [i,j] in Indices (N@) holds (N@)*(i,j) = M*(i,j)
  proof
    let i,j;
    assume
A8: [i,j] in Indices (N@);
    then [j,i] in Indices N by Def6;
    then (N@)*(i,j)=N*(j,i) by Def6;
    hence thesis by A6,A8,Def6;
  end;
  width N>0 by A1,A2,Th54;
  then width (N@)=width M by A5,Th54;
  hence thesis by A3,A4,A7,Th21;
end;
