How you would prove this depends upon the precise definition of "rank" you are using. I am going to use this: If L is a linear transformation from vector space X to vector space Y, the rank(L) is the dimension of L(X).

Let the rank of A be p. Then A maps to a p-dimensional subspace of . Since B is non-singular, it maps that p-dimensional subspace of [ to a p-dimensional subspace of . That is, BA maps to a p-dimensional subspace of . Therefore, rank(BA)= p.

Since C is non-singular, it maps to all of . A then maps to a p-dimensional subset of . That is, AC maps to a p-dimensional subset of . Therefore, rank(AB)= p.