Clock optimal solver

As there're only 18 possible moves in WCA notation (instead of all 30 moves of the clock puzzle), we can easily solve the clock by brute-force search + Gaussian Elimination.
The average solution length of the optimal solver is about 10.8 moves, which is 2 moves less than randomly generated moves (14 * (1 - 1/12) = 12.83). 
It would be really nice to have comments throughout this method, or a paragraph of explanation up on top. This isn't my area of expertise, but this is all pretty opaque to me.