let n be Nat; :: thesis: for R being Ring
for M1, M2 being Matrix of n,R st M1 = M1 * M2 & M1 is invertible holds
M1 commutes_with M2

let R be Ring; :: thesis: for M1, M2 being Matrix of n,R st M1 = M1 * M2 & M1 is invertible holds
M1 commutes_with M2

let M1, M2 be Matrix of n,R; :: thesis: ( M1 = M1 * M2 & M1 is invertible implies M1 commutes_with M2 )
assume that
A1: M1 = M1 * M2 and
A2: M1 is invertible ; :: thesis: M1 commutes_with M2
A3: M1 ~ is_reverse_of M1 by A2, Def4;
A4: ( len M2 = n & width (M1 ~) = n ) by MATRIX_0:24;
A5: ( len M1 = n & width M1 = n ) by MATRIX_0:24;
M2 = (1. (R,n)) * M2 by MATRIX_3:18
.= ((M1 ~) * M1) * M2 by A3
.= (M1 ~) * M1 by A1, A5, A4, MATRIX_3:33
.= 1. (R,n) by A3 ;
hence M1 commutes_with M2 by Th7; :: thesis: verum