def replace_reversible(G):
    """
    Remove the reversable options of G.

    A left option is reversible if it has a right option which is less than G.
    In this case, that left option can be replaced with it's right option's left options.
    Essentially, this means that if left were to make a move to an option from which right
    has the ability to move to a position which is strictly better for her than G, it is a
    "no brainer" to do so, and so that left option might as well be replaced with the options
    available after right makes the obvious responce.

    Parameters
    ----------
    G : Game
        The Game of interest.
    """
    new_left_set = set()
    for G_L in G._left:
        for G_LR in G_L._right:
            if G_LR <= G:
                for G_LRL in G_LR._left:
                    new_left_set.add(G_LRL)
                break
        else:
            new_left_set.add(G_L)
    G._left = new_left_set
    new_right_set = set()
    for G_R in G._right:
        for G_RL in G_R._left:
            if G_RL >= G:
                for G_RLR in G_RL._right:
                    new_right_set.add(G_RLR)
                break
        else:
            new_right_set.add(G_R)
    G._right = new_right_set
