reserve

  k,n,m,i,j for Element of NAT,
  K for Field;
reserve L for non empty addLoopStr;
reserve G for non empty multLoopStr;

theorem Th51:
  for A being (Matrix of n,K),j0 being Element of NAT st 1<=j0 &
j0 <=n holds (for i st 1<=i & i<=n holds (A*(SwapDiagonal(K,n,j0)))*(i,j0)=A*(i
,1) & (A*(SwapDiagonal(K,n,j0)))*(i,1)=A*(i,j0))& (for i,j st j<>1 & j<>j0 & 1
  <=i & i<=n & 1<=j & j<=n holds (A*(SwapDiagonal(K,n,j0)))*(i,j)=A*(i,j))
proof
  let A be (Matrix of n,K),j0 be Element of NAT;
  assume
A1: 1<=j0 & j0 <=n;
A2: ((SwapDiagonal(K,n,j0))*(A@))@=(A@@)*((SwapDiagonal(K,n,j0))@) by Th30
    .= A*((SwapDiagonal(K,n,j0))@) by MATRIXR2:29
    .= A*(SwapDiagonal(K,n,j0)) by A1,Th50;
A3: for i st 1<=i & i<=n holds (A*(SwapDiagonal(K,n,j0)))*(i,j0)=A*(i,1) & (
  A*(SwapDiagonal(K,n,j0)))*(i,1)=A*(i,j0)
  proof
    let i;
    assume
A4: 1<=i & i<=n;
    then
A5: 1<=n by XXREAL_0:2;
    then
A6: [i,1] in Indices A by A4,MATRIX_0:31;
    [j0,i] in Indices ((SwapDiagonal(K,n,j0))*(A@)) by A1,A4,MATRIX_0:31;
    hence (A*(SwapDiagonal(K,n,j0)))*(i,j0) =(((SwapDiagonal(K,n,j0))*(A@)))*(
    j0,i) by A2,MATRIX_0:def 6
      .=(A@)*(1,i) by A1,A4,Th48
      .=A*(i,1) by A6,MATRIX_0:def 6;
A7: [i,j0] in Indices A by A1,A4,MATRIX_0:31;
    [1,i] in Indices ((SwapDiagonal(K,n,j0))*(A@)) by A4,A5,MATRIX_0:31;
    hence
    (A*(SwapDiagonal(K,n,j0)))*(i,1) =(((SwapDiagonal(K,n,j0))*(A@)))*(1,
    i) by A2,MATRIX_0:def 6
      .=(A@)*(j0,i) by A1,A4,Th48
      .=A*(i,j0) by A7,MATRIX_0:def 6;
  end;
  for i,j st j<>1 & j<>j0 & 1<=i & i<=n & 1<=j & j<=n holds (A*(
  SwapDiagonal(K,n,j0)))*(i,j)=A*(i,j)
  proof
    let i,j;
    assume that
A8: j<>1 & j<>j0 and
A9: 1<=i & i<=n & 1<=j & j<=n;
A10: [i,j] in Indices A by A9,MATRIX_0:31;
    [j,i] in Indices ((SwapDiagonal(K,n,j0))*(A@)) by A9,MATRIX_0:31;
    hence
    (A*(SwapDiagonal(K,n,j0)))*(i,j) =(((SwapDiagonal(K,n,j0))*(A@)))*(j,
    i) by A2,MATRIX_0:def 6
      .=(A@)*(j,i) by A1,A8,A9,Th48
      .=A*(i,j) by A10,MATRIX_0:def 6;
  end;
  hence thesis by A3;
end;
