let D be non empty set ; :: thesis: for M1, M2 being Matrix of D st width M1 > 0 & width M2 > 0 holds
( M1 = M2 iff ( M1 @ = M2 @ & width M1 = width M2 ) )

let M1, M2 be Matrix of D; :: thesis: ( width M1 > 0 & width M2 > 0 implies ( M1 = M2 iff ( M1 @ = M2 @ & width M1 = width M2 ) ) )
assume that
A1: width M1 > 0 and
A2: width M2 > 0 ; :: thesis: ( M1 = M2 iff ( M1 @ = M2 @ & width M1 = width M2 ) )
thus ( M1 = M2 implies ( M1 @ = M2 @ & width M1 = width M2 ) ) ; :: thesis: ( M1 @ = M2 @ & width M1 = width M2 implies M1 = M2 )
assume that
A3: M1 @ = M2 @ and
A4: width M1 = width M2 ; :: thesis: M1 = M2
len M1 = width (M1 @) by A1, Th54;
then A5: len M1 = len M2 by A2, A3, Th54;
A6: 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 A7: [i,j] in Indices M1 ; :: thesis: M1 * (i,j) = M2 * (i,j)
dom M1 = Seg (len M2) by A5, FINSEQ_1:def 3
.= dom M2 by FINSEQ_1:def 3 ;
then (M2 @) * (j,i) = M2 * (i,j) by A4, A6, A7, Def6;
hence M1 * (i,j) = M2 * (i,j) by A3, A7, Def6; :: thesis: verum
end;
hence M1 = M2 by A4, A5, Th21; :: thesis: verum