A function f of a graph is called a complete graph invariant if two given graphs G and H are isomorphic exactly when f(G) = f(H). If additionally, f(G) is a graph isomorphic to G, then f is called a canonical form for graphs. Gurevich [Gur97] proves that any polynomial-time computable complete invariant can be transformed into a polynomial-time computable canonical form. We extend this equivale...