Example #1
0
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
Example #2
0
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))