The main use of nauty is to determine if two graphs are isomorphic. We can demonstrate it for two given graphs with the method areIsomorphic.

i1 : G = graph {{1,2},{2,3},{3,4},{4,5},{1,5}}; |

i2 : H = graph {{1,3},{3,5},{5,2},{2,4},{4,1}}; |

i3 : areIsomorphic(G, H) o3 = true |

Further, a list of graphs can be reduced to only graphs that are non-isomorphic with the method removeIsomorphs. Here we create a list of 120 different labellings of the 5-cycle and use nauty to verify they are indeed all the same.

i4 : L = graphToString \ apply(permutations 5, P -> graph apply(5, i -> {P_i, P_((i+1)%5)})); |

i5 : N = removeIsomorphs L o5 = {Dhc} o5 : List |

i6 : stringToGraph first N o6 = Graph{0 => {1, 4}} 1 => {0, 2} 2 => {1, 3} 3 => {2, 4} 4 => {0, 3} o6 : Graph |

- areIsomorphic -- determines whether two graphs are isomorphic
- removeIsomorphs -- removes all isomorphs from a list of graphs