let D be non empty set ; :: thesis: for M1, M2 being Matrix of D st M1 @ = M2 @ & len M1 = len M2 holds
M1 = M2

let M1, M2 be Matrix of D; :: thesis: ( M1 @ = M2 @ & len M1 = len M2 implies M1 = M2 )
assume A1: ( M1 @ = M2 @ & len M1 = len M2 ) ; :: thesis: M1 = M2
( len (M1 @ ) = width M1 & ( for i, j being Nat holds
( [i,j] in Indices (M1 @ ) iff [j,i] in Indices M1 ) ) & ( for i, j being Nat st [j,i] in Indices M1 holds
(M1 @ ) * i,j = M1 * j,i ) ) by MATRIX_1:def 7;
then A2: width M1 = width M2 by A1, MATRIX_1:def 7;
A3: ( Indices M1 = [:(dom M1),(Seg (width M1)):] & Indices M2 = [:(dom M2),(Seg (width M2)):] ) ;
for i, j being Nat st [i,j] in Indices M1 holds
M1 * i,j = M2 * i,j
proof
let i, j be Nat; :: thesis: ( [i,j] in Indices M1 implies M1 * i,j = M2 * i,j )
assume A4: [i,j] in Indices M1 ; :: thesis: M1 * i,j = M2 * i,j
dom M1 = Seg (len M2) by A1, FINSEQ_1:def 3
.= dom M2 by FINSEQ_1:def 3 ;
then (M2 @ ) * j,i = M2 * i,j by A2, A3, A4, MATRIX_1:def 7;
hence M1 * i,j = M2 * i,j by A1, A4, MATRIX_1:def 7; :: thesis: verum
end;
hence M1 = M2 by A1, A2, MATRIX_1:21; :: thesis: verum