let n be Nat; :: thesis: for K being Ring
for M1, M2 being Matrix of n,K st M1 is Orthogonal & M1 commutes_with M2 holds
M1 @ commutes_with M2

let K be Ring; :: thesis: for M1, M2 being Matrix of n,K st M1 is Orthogonal & M1 commutes_with M2 holds
M1 @ commutes_with M2

let M1, M2 be Matrix of n,K; :: thesis: ( M1 is Orthogonal & M1 commutes_with M2 implies M1 @ commutes_with M2 )
set M3 = M1 @ ;
assume that
A1: M1 is Orthogonal and
A2: M1 commutes_with M2 ; :: thesis: M1 @ commutes_with M2
M1 is invertible by A1;
then A3: M1 ~ is_reverse_of M1 by Def4;
A4: width M2 = n by MATRIX_0:24;
A5: width M1 = n by MATRIX_0:24;
A6: ( len M2 = n & width (M1 ~) = n ) by MATRIX_0:24;
A7: ( len (M1 ~) = n & width ((M1 ~) * M2) = n ) by MATRIX_0:24;
A8: len M1 = n by MATRIX_0:24;
M2 * (M1 @) = ((1. (K,n)) * M2) * (M1 @) by MATRIX_3:18
.= (((M1 ~) * M1) * M2) * (M1 @) by A3
.= ((M1 ~) * (M1 * M2)) * (M1 @) by A5, A8, A6, MATRIX_3:33
.= ((M1 ~) * (M2 * M1)) * (M1 @) by A2
.= ((M1 ~) * (M2 * M1)) * (M1 ~) by A1
.= (((M1 ~) * M2) * M1) * (M1 ~) by A4, A8, A6, MATRIX_3:33
.= ((M1 ~) * M2) * (M1 * (M1 ~)) by A5, A8, A7, MATRIX_3:33
.= ((M1 ~) * M2) * (1. (K,n)) by A3
.= (M1 ~) * M2 by MATRIX_3:19
.= (M1 @) * M2 by A1 ;
hence M1 @ commutes_with M2 ; :: thesis: verum