def match_split_system(ss): from graph_types import graph_types, permute_ss, \ split_edges, edge_to_split, split_len, graph_to_ss n = sum(map(len, ss[0])) k = len(ss) gt = graph_types(n,k) perms = SymmetricGroup(n) ss_sig = sorted(map(split_len, ss)) for g in gt: gss = graph_to_ss(g) gss_sig = sorted(map(split_len, gss)) if gss_sig != ss_sig: continue elif any([permute_ss(p, ss) == gss for p in perms]): return g
def is_equivalent(g,h): gss,hss = map(graph_to_ss, [g,h]) n = len(g.vertices()) return any(permute_ss(p,gss) == hss for p in DihedralGroup(n))