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 Th50:
  for i0 being Element of NAT st 1<=i0 & i0<=n holds (SwapDiagonal
  (K,n,i0))@=(SwapDiagonal(K,n,i0))
proof
  let i0 be Element of NAT;
  assume
A1: 1<=i0 & i0<=n;
  per cases;
  suppose
A2: i0<> 1;
    for i,j being Nat st 1<=i & i<=n & 1<=j & j<=n holds (i=1 & j=i0
implies (SwapDiagonal(K,n,i0))@ *(i,j)=1.K)& (i=i0 & j=1 implies (SwapDiagonal(
K,n,i0))@ *(i,j)=1.K)& (i=1 & j=1 implies (SwapDiagonal(K,n,i0))@ *(i,j)= 0.K)&
(i=i0 & j=i0 implies (SwapDiagonal(K,n,i0))@ *(i,j)= 0.K)& (not ((i=1 or i=i0)
&(j=1 or j=i0)) implies (i=j implies SwapDiagonal(K,n,i0)@ *(i,j)=1.K)& (i<>j
    implies SwapDiagonal(K,n,i0)@*(i,j)=0.K))
    proof
A3:   Indices (SwapDiagonal(K,n,i0))=[: Seg n,Seg n :] by MATRIX_0:24;
      let i,j be Nat;
      assume that
A4:   1<=i and
A5:   i<=n and
A6:   1<=j and
A7:   j<=n;
A8:   i in Seg n & j in Seg n by A4,A5,A6,A7,FINSEQ_1:1;
      hereby
        assume
A9:     i=1 & j=i0;
        [j,i] in Indices (SwapDiagonal(K,n,i0)) by A8,A3,ZFMISC_1:87;
        hence (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
MATRIX_0:def 6
          .=1.K by A2,A5,A6,A7,A9,Th43;
      end;
      hereby
        assume
A10:    i=i0 & j=1;
        [j,i] in Indices (SwapDiagonal(K,n,i0)) by A8,A3,ZFMISC_1:87;
        hence (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
MATRIX_0:def 6
          .=1.K by A2,A4,A5,A7,A10,Th43;
      end;
      hereby
        assume
A11:    i=1 & j=1;
        [j,i] in Indices (SwapDiagonal(K,n,i0)) by A8,A3,ZFMISC_1:87;
        hence (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
MATRIX_0:def 6
          .= 0.K by A1,A2,A5,A11,Th43;
      end;
      hereby
        assume
A12:    i=i0 & j=i0;
        [j,i] in Indices (SwapDiagonal(K,n,i0)) by A8,A3,ZFMISC_1:87;
        hence (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
MATRIX_0:def 6
          .= 0.K by A2,A4,A5,A12,Th43;
      end;
      hereby
        assume
A13:    not ((i=1 or i=i0) &(j=1 or j=i0));
A14:    [j,i] in Indices (SwapDiagonal(K,n,i0)) by A8,A3,ZFMISC_1:87;
A15:    now
          assume
A16:      i=j;
          thus (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
A14,MATRIX_0:def 6
            .=1.K by A1,A2,A4,A5,A13,A16,Th43;
        end;
        now
          assume
A17:      i<>j;
          thus (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
A14,MATRIX_0:def 6
            .= 0.K by A1,A2,A4,A5,A6,A7,A13,A17,Th43;
        end;
        hence
        (i=j implies (SwapDiagonal(K,n,i0))@ *(i,j)=1.K)& (i<>j implies (
        SwapDiagonal(K,n,i0))@ *(i,j)= 0.K) by A15;
      end;
    end;
    hence thesis by A1,A2,Th47;
  end;
  suppose
A18: i0=1;
    for i,j being Nat st 1<=i & i<=n & 1<=j & j<=n holds (i=j implies (
SwapDiagonal(K,n,i0))@ *(i,j)=1.K)& (i<>j implies (SwapDiagonal(K,n,i0))@ *(i,j
    )= 0.K)
    proof
A19:  Indices (SwapDiagonal(K,n,i0))=[: Seg n,Seg n :] by MATRIX_0:24;
      let i,j be Nat;
      assume that
A20:  1<=i & i<=n and
A21:  1<=j & j<=n;
      i in Seg n & j in Seg n by A20,A21,FINSEQ_1:1;
      then
A22:  [j,i] in Indices (SwapDiagonal(K,n,i0)) by A19,ZFMISC_1:87;
      hereby
        assume
A23:    i=j;
        thus (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
A22,MATRIX_0:def 6
          .=1.K by A18,A20,A23,Th44;
      end;
      hereby
        assume
A24:    i<>j;
        thus (SwapDiagonal(K,n,i0))@ *(i,j)=(SwapDiagonal(K,n,i0)) *(j,i) by
A22,MATRIX_0:def 6
          .= 0.K by A18,A20,A21,A24,Th45;
      end;
    end;
    hence thesis by A18,Th46;
  end;
end;
