now per cases
( width M > 0 or width M = 0 )
by NAT_1:3;
suppose A1:
width M > 0
;
:: thesis: ex b1 being Matrix of D st
( len b1 = width M & ( for i, j being Nat holds
( [i,j] in Indices b1 iff [j,i] in Indices M ) ) & ( for i, j being Nat st [j,i] in Indices M holds
b1 * i,j = M * j,i ) )deffunc H1(
Nat,
Nat)
-> Element of
D =
M * $2,$1;
consider M1 being
Matrix of
width M,
len M,
D such that A2:
for
i,
j being
Nat st
[i,j] in Indices M1 holds
M1 * i,
j = H1(
i,
j)
from MATRIX_1:sch 1();
reconsider M' =
M1 as
Matrix of
D ;
Seg (len M) = dom M
by FINSEQ_1:def 3;
then A3:
Indices M1 = [:(Seg (width M)),(dom M):]
by A1, Th24;
thus
ex
b1 being
Matrix of
D st
(
len b1 = width M & ( for
i,
j being
Nat holds
(
[i,j] in Indices b1 iff
[j,i] in Indices M ) ) & ( for
i,
j being
Nat st
[j,i] in Indices M holds
b1 * i,
j = M * j,
i ) )
:: thesis: verumproof
take
M'
;
:: thesis: ( len M' = width M & ( for i, j being Nat holds
( [i,j] in Indices M' iff [j,i] in Indices M ) ) & ( for i, j being Nat st [j,i] in Indices M holds
M' * i,j = M * j,i ) )
thus
len M' = width M
by A1, Th24;
:: thesis: ( ( for i, j being Nat holds
( [i,j] in Indices M' iff [j,i] in Indices M ) ) & ( for i, j being Nat st [j,i] in Indices M holds
M' * i,j = M * j,i ) )
thus
for
i,
j being
Nat holds
(
[i,j] in Indices M' iff
[j,i] in Indices M )
by A3, ZFMISC_1:107;
:: thesis: for i, j being Nat st [j,i] in Indices M holds
M' * i,j = M * j,i
let i,
j be
Nat;
:: thesis: ( [j,i] in Indices M implies M' * i,j = M * j,i )
assume
[j,i] in Indices M
;
:: thesis: M' * i,j = M * j,i
then
[i,j] in Indices M'
by A3, ZFMISC_1:107;
hence
M' * i,
j = M * j,
i
by A2;
:: thesis: verum
end; end; suppose A4:
width M = 0
;
:: thesis: ex b1 being Matrix of D st
( len b1 = width M & ( for i, j being Nat holds
( [i,j] in Indices b1 iff [j,i] in Indices M ) ) & ( for i, j being Nat st [j,i] in Indices M holds
b1 * i,j = M * j,i ) )reconsider M1 =
{} as
Matrix of
D by Th13;
thus
ex
b1 being
Matrix of
D st
(
len b1 = width M & ( for
i,
j being
Nat holds
(
[i,j] in Indices b1 iff
[j,i] in Indices M ) ) & ( for
i,
j being
Nat st
[j,i] in Indices M holds
b1 * i,
j = M * j,
i ) )
:: thesis: verumproof
take
M1
;
:: thesis: ( len M1 = width M & ( for i, j being Nat holds
( [i,j] in Indices M1 iff [j,i] in Indices M ) ) & ( for i, j being Nat st [j,i] in Indices M holds
M1 * i,j = M * j,i ) )
X:
Indices M1 = [:{} ,(Seg (width M1)):]
;
Seg (width M) = {}
by A4;
hence
(
len M1 = width M & ( for
i,
j being
Nat holds
(
[i,j] in Indices M1 iff
[j,i] in Indices M ) ) & ( for
i,
j being
Nat st
[j,i] in Indices M holds
M1 * i,
j = M * j,
i ) )
by A4, FINSEQ_1:4, ZFMISC_1:113, X;
:: thesis: verum
end; end; end; end;
hence
ex b1 being Matrix of D st
( len b1 = width M & ( for i, j being Nat holds
( [i,j] in Indices b1 iff [j,i] in Indices M ) ) & ( for i, j being Nat st [j,i] in Indices M holds
b1 * i,j = M * j,i ) )
; :: thesis: verum