let n be Element of NAT ; :: thesis: for K being Field
for i0 being Element of NAT st 1 <= i0 & i0 <= n holds
(SwapDiagonal K,n,i0) @ = SwapDiagonal K,n,i0
let K be Field; :: thesis: for i0 being Element of NAT st 1 <= i0 & i0 <= n holds
(SwapDiagonal K,n,i0) @ = SwapDiagonal K,n,i0
let i0 be Element of NAT ; :: thesis: ( 1 <= i0 & i0 <= n implies (SwapDiagonal K,n,i0) @ = SwapDiagonal K,n,i0 )
assume A1:
( 1 <= i0 & i0 <= n )
; :: thesis: (SwapDiagonal K,n,i0) @ = SwapDiagonal K,n,i0
per cases
( i0 <> 1 or i0 = 1 )
;
suppose S:
i0 <> 1
;
:: thesis: (SwapDiagonal K,n,i0) @ = SwapDiagonal K,n,i0
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 & not
i = i0 ) or ( not
j = 1 & not
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
let i,
j be
Nat;
:: thesis: ( 1 <= i & i <= n & 1 <= j & j <= n implies ( ( 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 & not i = i0 ) or ( not j = 1 & not 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 ) ) ) ) )
assume B1:
( 1
<= i &
i <= n & 1
<= j &
j <= n )
;
:: thesis: ( ( 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 & not i = i0 ) or ( not j = 1 & not 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 ) ) ) )
B2:
(
i in Seg n &
j in Seg n )
by B1, FINSEQ_1:3;
A5:
(
len (SwapDiagonal K,n,i0) = n &
width (SwapDiagonal K,n,i0) = n &
Indices (SwapDiagonal K,n,i0) = [:(Seg n),(Seg n):] )
by MATRIX_1:25;
hereby :: thesis: ( ( 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 & not i = i0 ) or ( not j = 1 & not 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 ) ) ) )
assume C0:
(
i = 1 &
j = i0 )
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 1. K
[j,i] in Indices (SwapDiagonal K,n,i0)
by B2, A5, ZFMISC_1:106;
hence ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by MATRIX_1:def 7
.=
1. K
by S, C0, XA, B1
;
:: thesis: verum
end;
hereby :: thesis: ( ( 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 & not i = i0 ) or ( not j = 1 & not 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 ) ) ) )
assume C0:
(
i = i0 &
j = 1 )
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 1. K
[j,i] in Indices (SwapDiagonal K,n,i0)
by B2, A5, ZFMISC_1:106;
hence ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by MATRIX_1:def 7
.=
1. K
by S, C0, XA, B1
;
:: thesis: verum
end;
hereby :: thesis: ( ( i = i0 & j = i0 implies ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K ) & ( ( ( not i = 1 & not i = i0 ) or ( not j = 1 & not 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 ) ) ) )
assume C0:
(
i = 1 &
j = 1 )
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K
[j,i] in Indices (SwapDiagonal K,n,i0)
by B2, A5, ZFMISC_1:106;
hence ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by MATRIX_1:def 7
.=
0. K
by S, C0, XA, A1, B1
;
:: thesis: verum
end;
hereby :: thesis: ( ( ( not i = 1 & not i = i0 ) or ( not j = 1 & not 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 ) ) )
assume C0:
(
i = i0 &
j = i0 )
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K
[j,i] in Indices (SwapDiagonal K,n,i0)
by B2, A5, ZFMISC_1:106;
hence ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by MATRIX_1:def 7
.=
0. K
by S, C0, XA, B1
;
:: thesis: verum
end;
hereby :: thesis: verum
assume C0:
( ( not
i = 1 & not
i = i0 ) or ( not
j = 1 & not
j = i0 ) )
;
:: thesis: ( ( i = j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 1. K ) & ( i <> j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K ) )C1:
[j,i] in Indices (SwapDiagonal K,n,i0)
by B2, A5, ZFMISC_1:106;
C2:
now assume D0:
i = j
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 1. Kthus ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by C1, MATRIX_1:def 7
.=
1. K
by S, C0, XA, A1, B1, D0
;
:: thesis: verum end; now assume D0:
i <> j
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 0. Kthus ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by C1, MATRIX_1:def 7
.=
0. K
by S, C0, XA, A1, B1, D0
;
:: thesis: verum 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 C2;
:: thesis: verum
end;
end; hence
(SwapDiagonal K,n,i0) @ = SwapDiagonal K,
n,
i0
by AA400X, A1, S;
:: thesis: verum end; suppose S:
i0 = 1
;
:: thesis: (SwapDiagonal K,n,i0) @ = SwapDiagonal K,n,i0
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
let i,
j be
Nat;
:: thesis: ( 1 <= i & i <= n & 1 <= j & j <= n implies ( ( i = j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 1. K ) & ( i <> j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K ) ) )
assume B1:
( 1
<= i &
i <= n & 1
<= j &
j <= n )
;
:: thesis: ( ( i = j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 1. K ) & ( i <> j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K ) )
B2:
(
i in Seg n &
j in Seg n )
by B1, FINSEQ_1:3;
A5:
(
len (SwapDiagonal K,n,i0) = n &
width (SwapDiagonal K,n,i0) = n &
Indices (SwapDiagonal K,n,i0) = [:(Seg n),(Seg n):] )
by MATRIX_1:25;
C1:
[j,i] in Indices (SwapDiagonal K,n,i0)
by B2, A5, ZFMISC_1:106;
hereby :: thesis: ( i <> j implies ((SwapDiagonal K,n,i0) @ ) * i,j = 0. K )
assume C0:
i = j
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 1. Kthus ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by C1, MATRIX_1:def 7
.=
1. K
by S, C0, XB, B1
;
:: thesis: verum
end;
hereby :: thesis: verum
assume C0:
i <> j
;
:: thesis: ((SwapDiagonal K,n,i0) @ ) * i,j = 0. Kthus ((SwapDiagonal K,n,i0) @ ) * i,
j =
(SwapDiagonal K,n,i0) * j,
i
by C1, MATRIX_1:def 7
.=
0. K
by S, C0, XC, B1
;
:: thesis: verum
end;
end; hence
(SwapDiagonal K,n,i0) @ = SwapDiagonal K,
n,
i0
by AA4000, A1, S;
:: thesis: verum end; end;