Hamilton-Cayley theorem