let n be Nat; :: thesis: for K being Field
for M1, M2 being Matrix of n,K st M1 commutes_with M2 holds
M1 * M1 commutes_with M2 * M2

let K be Field; :: thesis: for M1, M2 being Matrix of n,K st M1 commutes_with M2 holds
M1 * M1 commutes_with M2 * M2

let M1, M2 be Matrix of n,K; :: thesis: ( M1 commutes_with M2 implies M1 * M1 commutes_with M2 * M2 )
A1: width M2 = n by MATRIX_1:25;
A2: len (M1 * M1) = n by MATRIX_1:25;
A3: ( width M1 = n & len M1 = n ) by MATRIX_1:25;
assume A4: M1 commutes_with M2 ; :: thesis: M1 * M1 commutes_with M2 * M2
A5: len M2 = n by MATRIX_1:25;
A6: width (M1 * M1) = n by MATRIX_1:25;
then (M1 * M1) * (M2 * M2) = ((M1 * M1) * M2) * M2 by A1, A5, MATRIX_3:35
.= (M1 * (M1 * M2)) * M2 by A3, A5, MATRIX_3:35
.= (M1 * (M2 * M1)) * M2 by A4, Def1
.= ((M1 * M2) * M1) * M2 by A1, A3, A5, MATRIX_3:35
.= ((M2 * M1) * M1) * M2 by A4, Def1
.= (M2 * (M1 * M1)) * M2 by A1, A3, MATRIX_3:35
.= M2 * ((M1 * M1) * M2) by A1, A5, A6, A2, MATRIX_3:35
.= M2 * (M1 * (M1 * M2)) by A3, A5, MATRIX_3:35
.= M2 * (M1 * (M2 * M1)) by A4, Def1
.= M2 * ((M1 * M2) * M1) by A1, A3, A5, MATRIX_3:35
.= M2 * ((M2 * M1) * M1) by A4, Def1
.= M2 * (M2 * (M1 * M1)) by A1, A3, MATRIX_3:35
.= (M2 * M2) * (M1 * M1) by A1, A5, A2, MATRIX_3:35 ;
hence M1 * M1 commutes_with M2 * M2 by Def1; :: thesis: verum