Here is the theorem about traces.

Theorem. The following properties of traces hold:

  1. tr(A+B)=tr(A)+tr(B)
  2. tr(kA)=k tr(A)
  3. tr(AT)=tr(A)
  4. tr(AB)=tr(BA)

Proof. Properties 1,2 and 3 immediately follow from the definition of the trace. Let us prove the fourth property:

The trace of AB is the sum of diagonal entries of this matrix. By the definition of the product of two matrices, these entries are:

               A(1,1)B(1,1)+A(1,2)B(2,1)+...+A(1,n)B(n,1),
               A(2,1)B(1,2)+A(2,2)B(2,2)+...+A(2,n)B(n,2),
               ..........................................
               A(n,1)B(1,n)+A(n,2)B(2,n)+...+A(n,n)B(n,n)

Then the trace of AB is the sum of all these n2 products. We can compute the sum of these products in a different way: first compute the sum of the products in each column and then take the sum of these sums:

               A(1,1)B(1,1)+A(2,1)B(1,2)+...+A(n,1)B(1,n)+
               A(1,2)B(2,1)+A(2,2)B(2,2)+...+A(n,2)B(2,n)+
               ...........................................
               A(1,n)B(n,1)+A(2,n)B(n,2)+...+A(n,n)B(n,n)

But this is exactly the trace of BA (the sum in the first row is the first diagonal entry of BA, the sum in the second row is the second diagonal entry, etc.):

               B(1,1)A(1,1)+B(2,1)B(1,2)+...+B(n,1)A(1,n)+
               B(1,2)A(2,1)+B(2,2)A(2,2)+...+B(n,2)A(2,n)+
               ...........................................
               B(1,n)A(n,1)+B(2,n)A(n,2)+...+B(n,n)A(n,n)+

So indeed tr(AB)=tr(BA).