def opposite_sub_simplex(simplex, sub_simplex):
    """
    Get the opposite sub simplex of a given sub simplex in a simplex.

    The opposite sub simplex of a sub simplex f in a simplex T is the simplex consisting of all the vertices
    of T not in f.

    :param simplex: Simplex defined by a list of vertex indices.
    :type simplex: List[int]
    :param sub_simplex: Sub simplex defined by a list of vertex indices.
    :type sub_simplex: List[int]
    :return: Opposite sub simplex defined by a list of vertex indices.
    :rtype: List[int]

    .. rubric:: Examples

    >>> opposite_sub_simplex([0, 1, 2], [1])
    [0, 2]
    >>> opposite_sub_simplex([0, 1, 2], [0, 1])
    [2]
    >>> opposite_sub_simplex([0, 1, 2], [0, 1, 2])
    []
    """
    assert(i in simplex for i in sub_simplex)
    opposite = []
    for i in simplex:
        if i not in sub_simplex:
            opposite.append(i)
    return opposite