def make_multi_simple(edge_list):
    """
    Takes the edge list of a graph and returns the simple graph obtained by removing loops and multiple edges
    """
    new_edges = sorted(set([tuple(sorted(e)) for e in edge_list])) # slow remove duplicates
    new_edges = list(filter(lambda e: e[0] != e[1], new_edges)) # remove loops
    return new_edges